Compiling mvapich2-2.1 with pgi 15.10

I am currently trying to compile mvapich2-2.1 using pgcc 15.10. I run

export F90=; export CPP=cpp; ./configure --prefix=/home/user/local/mvapich2-2.1/pgi15
make

and it fails with (excluding most of the preceding output)

    .
    .
    .
    PGC/x86-64 Linux 15.10-0: compilation completed with warnings
      CC       adio/common/ad_iwrite_fake.lo
      CC       adio/common/ad_open.lo
      CC       adio/common/ad_opencoll.lo
      CC       adio/common/ad_opencoll_failsafe.lo
      CC       adio/common/ad_opencoll_scalable.lo
      CC       adio/common/ad_prealloc.lo
      CC       adio/common/ad_read.lo
    PGC-W-0114-More than one type specified (/gpfs0/export/opt/pgi/linux86-64/15.10/include-gcc44/sys/types.h: 230)
    PGC-W-0143-Useless typedef declaration (no declarators present) (/gpfs0/export/opt/pgi/linux86-64/15.10/include-gcc44/sys/types.h: 230)
    PGC/x86-64 Linux 15.10-0: compilation completed with warnings
      CC       adio/common/ad_read_coll.lo
    /tmp/pgccZZGhzd4sbsRT.s: Assembler messages:
    /tmp/pgccZZGhzd4sbsRT.s:1510: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:1547: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2003: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2272: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2324: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2376: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2435: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2621: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2895: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2932: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:2986: Error: suffix or operands invalid for `vpxor'
    /tmp/pgccZZGhzd4sbsRT.s:3038: Error: suffix or operands invalid for `vpxor'
    make[3]: *** [adio/common/ad_read_coll.lo] Error 1
    make[3]: Leaving directory `/gpfs0/home/user/local/src/mvapich2-2.1/src/mpi/romio'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/gpfs0/home/user/local/src/mvapich2-2.1/src/mpi/romio'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/gpfs0/home/user/local/src/mvapich2-2.1'
    make: *** [all] Error 2

How can I fix this get this to compile? Thanks.

Hi Lemonde,

You’re assembler is out-of-date and doesn’t recognize AVX-2 instructions being used on your Haswell system.

Can you try updating your binutils to a newer version (>2.24) or add the PGI flag “-tp penryn-64” to target an older processor?

  • Mat

By using “-tp penryn-64” will I be losing some speed / optimization advantage compared to updating binutils?

Thanks.

Possible, but I doubt MVAPICH really takes advantage of AVX-2 instructions.
Though other codes might so I’d recommend updating the binutils if you can.

Thanks. I took the tp penryn-64 route and it appears to have installed the libraries correctly.