LLNL / UnifyFS

UnifyFS: A file system for burst buffers
Other
102 stars 31 forks source link

PMI2 support is not compatible with Cray PMI #743

Closed MichaelBrim closed 1 year ago

MichaelBrim commented 1 year ago

System information

  $ ./configure --enable-pmi --enable-mpi-mount CC=cc CXX=CC MPICC=cc MPICXX=CC MPIFC=ftn

## --------- ##
## Platform. ##
## --------- ##

hostname = login2.crusher.olcf.ornl.gov
uname -m = x86_64
uname -r = 5.3.18-150300.59.68_11.0.76-cray_shasta_c
uname -s = Linux
uname -v = #1 SMP Sun May 29 15:23:06 UTC 2022 (2104b1c)

/usr/bin/uname -p = x86_64

UnifyFS Version | v1.0

Describe the problem you're observing

The current PMI2 implementation assumes the existence of the function PMI2_Job_GetRank(). This function does not exist in the Cray PMI2 implementation, and does not seem to be part of the official PMI2 standard.

Describe how to reproduce the problem

See above configure command for OLCF crusher. This was using PrgEnv-gnu (gcc-11.2.0).

Include any warning or errors or releveant debugging data

Here is the relevant portion of the compiler error for common/src/unifyfs_keyval.c

libtool: compile:  cc -DHAVE_CONFIG_H -I. -I../../../../../client/src -I../.. -I../../client -I../../../../../client/include -I../../../../../common/src -I/ccs/proj/csc30
0/mjbrim/spack/crusher/env/gcc-11.2.0/mochi-margo-0.9.7/view/include -Wall -Wno-strict-aliasing -Werror -DSYSCONFDIR=/gpfs/alpine/csc300/proj-shared/crusher/unifyfs-insta
ll/mjbrim/gcc-11.2.0/dev.pmi2.mpimount.cc/etc -I/ccs/proj/csc300/mjbrim/spack/crusher/sw/gcc-11.2.0/cray-sles15-zen3/gcc-11.2.0/mercury-2.1.0-crlapshuwjkzgo7pnpqaocrdug26
rsb3/include -I/ccs/proj/csc300/mjbrim/spack/crusher/sw/gcc-11.2.0/cray-sles15-zen3/gcc-11.2.0/json-c-0.15-eontierfa6h2jb4mhwwmxacx5dro4354/include -I/ccs/proj/csc300/mjb
rim/spack/crusher/sw/gcc-11.2.0/cray-sles15-zen3/gcc-11.2.0/json-c-0.15-eontierfa6h2jb4mhwwmxacx5dro4354/include/json-c -I/ccs/proj/csc300/mjbrim/spack/crusher/sw/gcc-11.
2.0/cray-sles15-zen3/gcc-11.2.0/argobots-1.1-nsmph2wbkrus4zx4jemebzhabx7qgr7y/include -I/ccs/proj/csc300/mjbrim/spack/crusher/sw/gcc-11.2.0/cray-sles15-zen3/gcc-11.2.0/mo
chi-margo-0.9.7-sokzqwdhxitpattiohvgxoluo42wwsil/include -DUSE_PMI2 -g -O2 -MT libunifyfs_la-unifyfs_keyval.lo -MD -MP -MF .deps/libunifyfs_la-unifyfs_keyval.Tpo -c ../..
/../../../client/src/../../common/src/unifyfs_keyval.c  -fPIC -DPIC -o .libs/libunifyfs_la-unifyfs_keyval.o
../../../../../client/src/../../common/src/unifyfs_keyval.c: In function 'unifyfs_pmi2_init':
../../../../../client/src/../../common/src/unifyfs_keyval.c:161:14: error: implicit declaration of function 'PMI2_Job_GetRank'; did you mean 'PMI2_Job_GetId'? [-Werror=im
plicit-function-declaration]
  161 |         rc = PMI2_Job_GetRank(&rank);
      |              ^~~~~~~~~~~~~~~~
      |              PMI2_Job_GetId

cc1: all warnings being treated as errors
make[3]: *** [Makefile:1131: libunifyfs_la-unifyfs_keyval.lo] Error 1
MichaelBrim commented 1 year ago

Fixed in #749