Try adding –disable-opx to the configure line to disable the OPX provider in the embedded libfabric. There must be some incompatibility with the compiler that is not detected by the configure script.

 

Ken

 

From: "Palmer, Bruce J via discuss" <discuss@mpich.org>
Reply-To: "discuss@mpich.org" <discuss@mpich.org>
Date: Wednesday, May 31, 2023 at 6:47 PM
To: "discuss@mpich.org" <discuss@mpich.org>
Cc: "Palmer, Bruce J" <Bruce.Palmer@pnnl.gov>
Subject: [mpich-discuss] Building 4.1.1

 

I’m trying to build 4.1.1 on our local cluster. I’m configuring with

 

./configure --prefix=/people/d3g293/mpich/mpich-4.1.1/install --with-device=ch4:ofi --with-libfabric=embedded --enable-threads=multiple --with-slurm CC=gcc CXX=g++

 

(I also tried --with-device=ch4:ofi:sockets) and my environment is

 

Currently Loaded Modulefiles:

  1) gcc/8.1.0             3) cmake/3.22.1          5) mkl/2019u5

  2) python/3.7.2          4) git/2.11.0(default)   6) texlive/2017

 

I keep getting errors that look like

 

In file included from ./prov/opx/include/rdma/opx/fi_opx_reliability.h:36,

                 from ./prov/opx/include/rdma/opx/fi_opx_domain.h:44,

                 from prov/opx/src/fi_opx_cntr.c:35:

./prov/opx/include/rdma/opx/fi_opx_hfi1_transport.h: At top level:

./prov/opx/include/rdma/opx/fi_opx.h:209:44: error: expected identifier or ‘(’ before ‘if’

#define OPX_COMPILE_TIME_ASSERT(cond, msg) if(0){switch(0){case 0:case cond:;}}

 

Any suggestions on how to cure this? I’ve had pretty good luck building earlier versions of MPICH (4.0.2) using this formula.

 

Bruce Palmer

Computer Scientist

Pacific Northwest National Laboratory

(509) 375-3899