mpich icon indicating copy to clipboard operation
mpich copied to clipboard

Errors when `make`

Open Rhythmicc opened this issue 2 years ago • 5 comments

src/mpi/coll/barrier/barrier_intra_k_dissemination.c:127:9: note: referencing argument 2 of type ‘MPIR_Request *[0]’
In file included from ./src/include/mpiimpl.h:212,
                 from src/mpi/coll/barrier/barrier_intra_k_dissemination.c:6:
./src/include/mpir_coll.h:50:5: note: in a call to function ‘MPIC_Waitall’
   50 | int MPIC_Waitall(int numreq, MPIR_Request * requests[], MPI_Status * statuses,
      |     ^~~~~~~~~~~~
  GEN      lib/libmpi.la
/usr/bin/ld: cannot find -lpsm_infinipath
/usr/bin/ld: cannot find -lnl-3
/usr/bin/ld: cannot find -lnl-route-3
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libmpi.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Rhythmicc avatar Jun 28 '23 12:06 Rhythmicc

Did you configure on a login node and make on a compute node? This is type of error usually is due to configure detected environment changed from the actual make environment.

hzhou avatar Jun 28 '23 13:06 hzhou

No, I configure it on the login node and make on the login node, and my configure command is:

./configure --prefix=/path/to/mpich --with-cross=./cross

and the cross file:

CROSS_F77_SIZEOF_INTEGER=4
CROSS_F77_SIZEOF_REAL=4
CROSS_F77_SIZEOF_DOUBLE_PRECISION=8
CROSS_F90_ADDRESS_KIND=8
CROSS_F90_OFFSET_KIND=8
CROSS_F90_INTEGER_KIND=8
CROSS_F90_REAL_MODEL=6,37
CROSS_F90_DOUBLE_MODEL=15,307
CROSS_F90_INTEGER_MODEL_MAP={9,4,4}
CROSS_F77_TRUE_VALUE=1
CROSS_F77_FALSE_VALUE=0

Rhythmicc avatar Jun 28 '23 14:06 Rhythmicc

I see. Could you try to configure and make it on a compute node instead? Sometimes the login node has the header files but not the actual libraries or library paths.

hzhou avatar Jun 28 '23 14:06 hzhou

I experimented today and found that using gcc version 13.1.1 will have this problem, both on the login node and the compute node.

Rhythmicc avatar Jun 29 '23 14:06 Rhythmicc

See if you have an existing libfabric installed. If there is, you can configure MPICH to use the external libfabric by adding configure option --with-libfabric=[path-to-libfabric]. Alternatively, you can try build and install libfabric separately then point to your libfabric using --with-libfabric=[path] option. You can either download a recent libfabric release or simply cd modules/libfabric and build from there.

hzhou avatar Jun 29 '23 14:06 hzhou