View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001770||ThirdParty||[All Projects] Bug||public||2015-06-30 23:08||2015-10-22 15:03|
|Fixed in Version|
|Summary||0001770: openMPI not being built (openfoam 2.4.0; openmpi 1.8.5)|
|Description||Using WM_MPILIB=OPENMPI in bashrc and running ThirdParty's Allwmake, openmpi libraries are not built. After all the checking, it enter the directories within $WM_THIRD_PARTY_DIR/openmpi-1.8.5 and it keeps running distclean and no make files at all. See thirdparty_centos.log around lines 3207--3239.|
I installed Ubuntu 14.04 on a VM to check if I was able to build openmpi on a different system. Log file is also attached. See around lines 2948--2980.
I'm aware that the compilation was stopped because some other libraries could not be found, but either way, several make files are being skipped during the openmpi part of the Allwmake.
|Steps To Reproduce||Change WM_MPILIB to OPENMPI in bashrc then run ThirdParty's Allwmake.|
|Additional Information||I compared with an old successful build log (openfoam 2.0.1; openmpi 1.5.3) and the make files were called exactly where I was expecting them to be.|
|Tags||No tags attached.|
thirdparty_log.zip (47,219 bytes)
Side note: This was initially asked about here: http://www.cfd-online.com/Forums/openfoam-installation/155228-issues-openmpi-compilation.html - and it does seem to be a bug.
@Regis: I believe that you didn't properly redirect the output of the Allwmake script, namely like this:
./Allwmake > log.make 2>&1
Therefore, no error messages are present in your log files and therefore not possible to diagnose based on them alone.
Nonetheless, I've done a somewhat quick test just now on CentOS 6.6 and using the system's GCC 4.4.7 for the test (but didn't try building OpenFOAM itself). The error message that isn't seen in your log file is shown here:
config.status: creating ompi/contrib/libompitrace/Makefile
config.status: creating Makefile
config.status: creating config/Makefile
config.status: creating contrib/Makefile
config.status: error: cannot find input file: `contrib/dist/mofed/debian/changelog.in'
+ make -j 4
Making all in config
make: Entering directory `/home/ofuser/OpenFOAM/ThirdParty-2.4.0/openmpi-1.8.5/config'
make: Nothing to be done for `all'.
make: Leaving directory `/home/ofuser/OpenFOAM/ThirdParty-2.4.0/openmpi-1.8.5/config'
Making all in contrib
make: Entering directory `/home/ofuser/OpenFOAM/ThirdParty-2.4.0/openmpi-1.8.5/contrib'
make: Nothing to be done for `all'.
make: Leaving directory `/home/ofuser/OpenFOAM/ThirdParty-2.4.0/openmpi-1.8.5/contrib'
Making all in opal
make: Entering directory `/home/ofuser/OpenFOAM/ThirdParty-2.4.0/openmpi-1.8.5/opal'
make: *** No rule to make target `all'. Stop.
make: Leaving directory `/home/ofuser/OpenFOAM/ThirdParty-2.4.0/openmpi-1.8.5/opal'
make: *** [all-recursive] Error 1
I remember someone mentioning on the forum that the openmpi-1.8.5 package that is in ThirdParty-2.4.0 was a little different from the one from the Open-MPI website. I'll report back in another note as soon as I can confirm this.
The post on the forum that had pointed this out and that I didn't take a better look into this sooner: http://www.cfd-online.com/Forums/openfoam-installation/153905-mpi-compiling-version-mismatch.html#post549532 (post #5)
Detailed list of files that differ:
$ diff -Nurq openmpi-1.8.5/ ThirdParty-2.4.0/openmpi-1.8.5/
Files openmpi-1.8.5/contrib/dist/mofed/debian/changelog and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/changelog differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/changelog.in and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/changelog.in differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/compat and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/compat differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/control and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/control differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/control.in and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/control.in differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/copyright and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/copyright differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/rules and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/rules differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/rules.in and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/rules.in differ
Files openmpi-1.8.5/contrib/dist/mofed/debian/source/format and ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed/debian/source/format differ
Files openmpi-1.8.5/ompi/contrib/vt/vt/tools/vtsetup/src/vtsetup-1.0.1.src.tar.gz and ThirdParty-2.4.0/openmpi-1.8.5/ompi/contrib/vt/vt/tools/vtsetup/src/vtsetup-1.0.1.src.tar.gz differ
The steps for fixing this problem:
tar -xf openmpi-1.8.5.tar.gz
Thanks. It indeed worked what you suggested. Regarding the error output, I was saving the output using "| tee", so you're right. Sorry.
Also, I checked on my Ubuntu installation and the same was successful as well. As a side note, OpenFOAM 2.3.1 has a similar problem. Before trying 2.4.0 I tried it and couldn't get it compiled either.
|Due to the missing 'debian' dir in 'ThirdParty-2.4.0/openmpi-1.8.5/contrib/dist/mofed', the configure step is interupted and the compilation fails. I can confirm that adding the missing directory from the official openmpi-1.8.5 tarball (resp. using that tarball) fixes the issue.|
|I can confirm that too.|
|I add that the same issue is present in OpenFOAM 2.3.1, OpenMPI 1.6.5. Analogous fix (for correct version of OpenMPI) solves the problem. Tested on CentOS 6.3.|
||Do you have the same problems with either OpenFOAM-2.4.x or OpenFOAM-dev?|
@Henry: The problem isn't due to OpenFOAM itself, it's due to the Open-MPI package that is packaged in "ThirdParty-2.3.1.tgz" and "ThirdParty-2.4.0.tgz".
Somehow a few files for Open-MPI are missing from the package, as I mentioned in a comment above: http://www.openfoam.org/mantisbt/view.php?id=1770#c5036
||It is not clear why some of the files would be missing as the packs simply contain the unpacked OpenMPI packs. The only possibility is that by compiling and cleaning some of the files are removed. Have you looked into this possibility? If this is the case then the only option after building would be to delete the entire OpenMPI source directory and unpacking the source-pack.|
OK, I believe I've solved the mystery. The problem occurs from the use of the script "foamPackThirdParty", that is in OpenFOAM's "bin" folder.
The actual problem is indeed in OpenFOAM, file "bin/tools/foamListSourceFiles", near the end of the file, in the last item for "sed" it has this line:
which is the folder that is being eliminated when it shouldn't be.
As for the missing file "openmpi-1.8.5/ompi/contrib/vt/vt/tools/vtsetup/src/vtsetup-1.0.1.src.tar.gz", which doesn't seem to be very important, it's due to this line in the same script:
-a ! -name "*.tar.gz"
Therefore, at least for the near future, the fix is to simply remove the line that is removing "debian" from the file list. But beyond that, this script might need some updates.
||Excellent, thanks for finding the problem, I will remove the offending line from the script.|
Resolved by commit 2b147f41daf9ca07d0fb4c6b0576dc3d10a435f3 in OpenFOAM-2.4.x
Resolved by commit fb659522bbf75d0e344b4fa265e237146d8e796a in OpenFOAM-dev
||File Added: thirdparty_log.zip|
|2015-07-05 20:37||wyldckat||Note Added: 0005035|
|2015-07-05 20:45||wyldckat||Note Added: 0005036|
||Note Added: 0005047|
||Note Added: 0005052|
||Note Added: 0005057|
||Note Added: 0005059|
|2015-10-22 10:27||henry||Note Added: 0005470|
|2015-10-22 11:26||wyldckat||Note Added: 0005476|
|2015-10-22 11:46||henry||Note Added: 0005477|
|2015-10-22 13:15||wyldckat||Note Added: 0005478|
|2015-10-22 13:39||henry||Note Added: 0005479|
|2015-10-22 15:02||henry||Note Added: 0005481|
|2015-10-22 15:02||henry||Status||new => resolved|
|2015-10-22 15:02||henry||Resolution||open => fixed|
|2015-10-22 15:02||henry||Assigned To||=> henry|