Home Community Software Development Environment Support for compiler as MPI plugin?

This topic contains 2 replies, has 3 voices, and was last updated by  Mauri Whalen 1 year, 7 months ago.

  • Author
  • #726

    Peter Rival

    I’m trying to build HPL with the Ampere compiler kit (ampere-8.2.0-20180930) and it looks like I’ve run into an issue. HPL expects an MPI compiler, for which I’ve installed mpich-3.2.1. The build fails at the first mpicc invocation with:

    mpicc -o HPL_dlacpy.o -c -DAdd_ -DF77_INTEGER=int -DStringSunStyle -I/root/hpl-2.2/include -I/root/hpl-2.2/include/Linux_Arm ../HPL_dlacpy.c
    cc1: error: plugin support is disabled; configure with –enable-plugin

    I’m running this on an eMAG system running RHEL 8.0-beta. I can rebuild the system with RHEL 7.6 if needed but this looks at first blush to be a generic issue.

  • #727

    Beth Gordon

    Hi Peter! Sorry for the delay; I’ll see if I can reproduce this. In the meantime, have you verified that you can compile HPL with (non-Ampere) gcc?

  • #766

    Mauri Whalen

    We had help on this one from someone in the industry (would love to give them credit, and would need to make sure I could use their name)
    I realize this was a missed post – please let me know if we can help with anything else.
    Ampere Computing

    To compile and run HPL on CentOS 7 one needs at least:
    openmpi-devel mpich-devel openmpi-devel openblas-devel atlas-devel

    To compile HPL I’ve taken a patch from Fedora, which applies on HPL
    2.1 (from https://src.fedoraproject.org/cgit/rpms/hpl.git).

    Steps to compile with system compiler:

    1) Download and extract hpl-2.1 tarball
    2) Apply Fedora patch hpl-2.1-fedora.patch
    3) Prepare Makefile
    cp setup/Make.Linux_PII_CBLAS_gm Make.Linux
    sed -i -e “s?TOPdir = \$(HOME)/hpl?TOPdir = $(pwd)?g” Make.Linux
    export PATH=$PATH:/usr/lib64/openmpi/bin/
    5) Build HPL
    make arch=Linux ARCH=Linux LAlib=-lopenblas
    6) Run HPL
    cd bin/Linux
    mpirun -np 4 xhpl

    HPL uses mpicc as compiler, which invokes the following:
    gcc -I/usr/include/openmpi-aarch64 -pthread -Wl,-rpath
    -Wl,/usr/lib64/openmpi/lib -Wl,–enable-new-dtags
    -L/usr/lib64/openmpi/lib -lmpi

    So in order to compile with the Ampere toolchain we just have to set
    the CC variable in the Make.Linux file (see step 3 above) to

    CC = /compilers/ampere-8.2.0-20181015/bin/gcc
    -I/usr/include/openmpi-aarch64 -pthread -Wl,-rpath
    -Wl,/usr/lib64/openmpi/lib -Wl,–enable-new-dtags
    -L/usr/lib64/openmpi/lib -lmpi

    Then step 5 and step 6 can be used as above.

You must be logged in to reply to this topic.