VI4IO / io-500-dev

IO-500
37 stars 22 forks source link

MPI compiler requested, but could not use MPI #80

Open yanqingfu opened 3 years ago

yanqingfu commented 3 years ago

[root@ssc-vm-1061 var]# git clone https://github.com/IO500/io500.git Cloning into 'io500'... remote: Enumerating objects: 813, done. remote: Counting objects: 100% (813/813), done. remote: Compressing objects: 100% (245/245), done. remote: Total 813 (delta 583), reused 773 (delta 555), pack-reused 0 Receiving objects: 100% (813/813), 251.35 KiB | 0 bytes/s, done. Resolving deltas: 100% (583/583), done. [root@ssc-vm-1061 var]# cd io500 [root@ssc-vm-1061 io500]# ./prepare.sh This script downloads the code for the benchmarks It will also attempt to build the benchmarks It will output OK at the end if builds succeed

Getting IOR and mdtest /var/io500/build /var/io500 Cloning into 'ior'... remote: Enumerating objects: 93, done. remote: Counting objects: 100% (93/93), done. remote: Compressing objects: 100% (66/66), done. remote: Total 3535 (delta 49), reused 50 (delta 27), pack-reused 3442 Receiving objects: 100% (3535/3535), 2.05 MiB | 0 bytes/s, done. Resolving deltas: 100% (2514/2514), done. Note: checking out 'bd76b45ef9db'.

You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

HEAD is now at bd76b45... Integrated comparison checks into CompareData() which prevents additi… (#254) /var/io500 Preparing parallel find /var/io500/build /var/io500 Cloning into 'pfind'... remote: Enumerating objects: 15, done. remote: Counting objects: 100% (15/15), done. remote: Compressing objects: 100% (10/10), done. remote: Total 309 (delta 6), reused 12 (delta 5), pack-reused 294 Receiving objects: 100% (309/309), 68.01 KiB | 0 bytes/s, done. Resolving deltas: 100% (193/193), done. Note: checking out '9d77056adce6'.

You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

HEAD is now at 9d77056... Merge branch 'master' of github.com:VI4IO/pfind /var/io500 /var/io500/build/ior /var/io500 autoreconf: Entering directory .' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I config autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: running: /usr/bin/autoconf --force autoreconf: running: /usr/bin/autoheader --force autoreconf: running: automake --add-missing --copy --force-missing configure.ac:15: installing 'config/config.guess' configure.ac:15: installing 'config/config.sub' configure.ac:18: installing 'config/install-sh' configure.ac:18: installing 'config/missing' contrib/Makefile.am: installing 'config/depcomp' parallel-tests: installing 'config/test-driver' autoreconf: Leaving directory.' checking metadata... yes checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for mpicc... no checking for mpixlc_r... no checking for mpixlc... no checking for hcc... no checking for mpxlc_r... no checking for mpxlc... no checking for sxmpicc... no checking for mpifcc... no checking for mpgcc... no checking for mpcc... no checking for cmpicc... no checking for cc... cc checking for gcc... (cached) cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking dependency style of cc... gcc3 checking for function MPI_Init... no checking for function MPI_Init in -lmpi... no checking for function MPI_Init in -lmpich... no configure: error: in /var/io500/build/ior': configure: error: MPI compiler requested, but could not use MPI. Seeconfig.log' for more details

config.log

JulianKunkel commented 3 years ago

Hi, it appears that ior cannot find mpi. It is an ior or system issue not an io500 benchmark specific one. Given that the system compiler seems with gcc rather old 4.5 and Red Hat as well, maybe there is another issue. To test it, it would be good to go into the build ior directory, then load the required mpi module (which mpi are you using?). The Ior configure has some options to set the mpi. You can try to point them to your mpi. If I know more about the mpi, we might be able to update the configure to detect it automatically.

itsalljokay commented 2 years ago

This error occurred for me when I used a Spack installed version of OpenMPI instead of system native OpenMPI.

Example: module load gcc-11.2.0-gcc-4.8.5-yqde46k module load openmpi-4.1.2-gcc-11.2.0-vu4zflq ./prepare.sh Would result in “configure: error: MPI compiler requested, but could not use MPI.”

However, using the native OpenMPI, I had no issues. module load gcc-11.2.0-gcc-4.8.5-yqde46k export PATH="$PATH:/PATH_TO_MY_MPI/bin" ./prepare.sh Resulted in complete build with no errors.

As you can see, oddly enough, my GCC instance was Spack installed and loaded via module command as well, but did not cause any errors.