Using native MPI libraries
I was trying to build for Altix 4000, i found a patch for compiling with intel icc10 , i dont want to build the WM.../lib/openmpi/libPstrem.so nor link with the WM../src/openmpi/lib/*,
Instead we have our own mpi implementation (sgi mpi libraries) , any idea which files/lines I have to change or create (in rules or bashrc and .bashrc ) ... Any help will be greatly appreciated http://www.cfd-online.com/OpenFOAM_D...part/happy.gif |
In the bashrc you'll have to s
In the bashrc you'll have to see another default mpi implementation.
In the .bashrc you'll have to set the path/libs accordingly and set variables such as SGIMPI_ARCH_PATH=... In the wmake/rule/linuxXXXX/ you'll need to add a rule for mplibSGIMPI In src/Pstream/Allwmake you'll need to ajust the if [ ... ] to include your implementation. Good luck with rebuilding. |
thanks I never will guess the
thanks I never will guess the src/Pstream/Allwmake part i will try during the weekend i hope it works !
|
Hi foamers i am follow your s
Hi foamers i am follow your steps , lets see
I think i am close, to test I link with the mpi implented by altix and the gcc 4.2.0 the Pstream is built using our libmpi from sgi altix ldd libPstream.so returns ... libmpi.so => /lrz/sys/mpi_altix/lib/libmpi.so (0x2000000800080000) ... It compiles the whole buch of libraries in lib/linuxIA64Gcc with no error -- all of them -- and these are linked in turn with the new libPstream.so. However, when it tries to compile the applications (cd solver; ./wmake all ...)it dies with the 1st one (i tried to compile some others at ramdon ) i get the following from the linker /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `MPI::Is_initialized()' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `op_intercept(void*, void*, int*, unsigned int*)' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Comm::mpi_comm_map' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `MPI:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifp::Init(void (*)(void const*, void*, int, MPI::Datatype const&), bool)' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `MPI:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifp::Free()' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Comm::ignored_status' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Intracomm::current_op' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Request::ignored_status' collect2: ld returned 1 exit status It is clear that libPstream is missing some functions, any idea how come this happened and if there is a solution |
Hi foamers i am following you
Hi foamers i am following your steps , lets see
I think i am close, to test I link with the mpi implented by altix and the gcc 4.2.0 the Pstream is built using our libmpi from sgi altix ldd libPstream.so returns ... libmpi.so => /lrz/sys/mpi_altix/lib/libmpi.so (0x2000000800080000) ... It compiles the whole buch of libraries in lib/linuxIA64Gcc with no error -- all of them -- and these are linked in turn with the new libPstream.so. However, when it tries to compile the applications (cd solver; ./wmake all ...)it dies with the 1st one (i tried to compile some others at ramdon ) i get the following from the linker /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `MPI::Is_initialized()' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `op_intercept(void*, void*, int*, unsigned int*)' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Comm::mpi_comm_map' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `MPI:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifp::Init(void (*)(void const*, void*, int, MPI::Datatype const&), bool)' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `MPI:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifp::Free()' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Comm::ignored_status' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Intracomm::current_op' /lrz/sys/mpi_altix/lib/libPstream.so: undefined reference to `PMPI::Request::ignored_status' collect2: ld returned 1 exit status It is clear that libPstream is missing some functions, any idea how come this happened and if there is a solution |
This (linking the libraries, n
This (linking the libraries, not linking the applications) happens because when linking a library the linker says "can't find this symbol, propably someone else will take care of it", but when linking an application it must find a definition for _every_ symbol.
Maybe there are some additionaly libs that have to be linked to PStream (mip_cxx.so or such stuff). Check the examples that come with your MPI-implementation Another brute force-way to find the offenders is grep PMPI::Comm::ignored_status /usr/lib (or wherever you expect them to be found) |
thanks i found which librari
[SOlVED] thanks i found which libraries were missing for c++ http://www.cfd-online.com/OpenFOAM_D...part/happy.gif
|
How did you solve that?
|
Similar error here whilie trying the compile applications with intel mpi:
Code:
/data/leuven/300/vsc30098/OpenFOAM/OpenFOAM-1.7.x/lib/linux64IccDPOpt/intel_mpi/libPstream.so: undefined reference to `MPI_Waitall' Thanks. |
How Solved
Quote:
|
Quote:
It's easier if you provide more details about your problem. Specifically which MPI version and OpenFOAM versions that you're using, along with any changes you might have already done in trying to fix this, so that it's easier to diagnose the problem. |
Linking libraries
4 Attachment(s)
Quote:
I would provide the max possible details for your convenience. My Foam version of 2.3.0. Major settings in /OpenFOAM/etc/cshrc (file attached) are: Code:
set foamInstall = /lustre/scratch/rsoni/$WM_PROJECT Code:
wmake libso mpi Other files settings related file such as /OpenFOAM/etc/config/settings.csh, ~/.cshrc etc. System is having intel compiler by default. So, I execute following command before compiling to avoid error of type 'This intel math.h is for intel compilers only'. Code:
module unload intel_11.1.073 Compilation screen output log is attached at https://www.dropbox.com/s/6754u4qxm4...utLog.txt?dl=0 Other system configuration: uname -m Code:
x86_64 Code:
linux64 Code:
icc (ICC) 11.1 20100806 Code:
gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] |
Greetings Rahul,
The first note I want to make is that you can redirect all of the output (standard+error outputs) into a single file in csh by using ">&", for example: Code:
./Allwmake >& log.make From the "screenOutputLog.txt", the following error is still occurring: Code:
/opt/intel/Compiler/11.1/073/include/math.h:27:3: error: #error "This Intel <math.h> is for use with only the Intel compilers!"\ As for the other files, in the file "system-cshrc.txt" that you provided, has the following line: Code:
setenv FOAM_SETTINGS 'WM_NCOMPPROCS=4 WM_MPLIB=OPENMPI WM_ARCH_OPTION=64' Another detail in that file "system-cshrc.txt", is that these lines will not work from here: Code:
setenv WM_CC 'mpicc'
Another detail that is intriguing me is that the files you've provided have a log of backslashes '\'. Is that because of how you copied the information from the remote connection or perhaps due to the text editor that you are using remotely? Because the original lines above are shown as follows from the files you've provided: Code:
setenv WM_CC 'mpicc'\ After you've solved these details, hopefully the build will work as intended. Best regards, Bruno |
Results after suggested changes
Quote:
Following things I have done: 1. unloaded the intel compiler, In fact marked it to not to load later as well. 2. Changed Code:
setenv FOAM_SETTINGS 'WM_NCOMPPROCS=4 WM_MPLIB=SGIMPI WM_ARCH_OPTION=64' Code:
#setenv WM_CC 'mpicc'\ Code:
csh Code:
service0 OpenFOAM/OpenFOAM-2.3.0> mpi-selector-menu Code:
./Allwmake >& make.log Still logfile is showing several errors especially related to openmpi, undefined references and declarations. Also, it still shows inclusion of openmpi-1.6.5. |
Quick answer: Whenever you change the main ".cshrc" or ".bashrc" files, you should start a new terminal, to ensure you have a clean environment. Therefore, when you executed csh, it very likely inherited the shell environment from the parent csh shell from which you launched the new one.
OK, but a new error rose up, which is due to the old GCC version that you're trying to use (GCC 4.3): Code:
primitives/triad/triad.C:36: error: expected initializer before ‘<’ token Based on the GCC version and environment that you're using, I'm guessing that you're dealing with CentOS 5.x or RHEL 5.x. You can find detailed instructions on how to build a custom GCC version with OpenFOAM 2.3.0 here: http://openfoamwiki.net/index.php/In...EL#CentOS_5.10 From there you will need to:
|
SUSE Enterprise OS
Quote:
cat /proc/version Code:
Linux version 2.6.32.12-0.7-default (geeko@buildhost) (gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1 SMP 2010-05-20 11:14:20 +0200 Code:
icc (ICC) 11.1 20100806 Code:
LSB Version: core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch Code:
x86_64 |
Quick answer: Sorry, I didn't manage to get my hands on a trial version of SLES or SLED 11, I only managed SLED/SLES 12 (which have GCC 4.4), for which I wrote instructions here: http://openfoamwiki.net/index.php/In...nux_Enterprise
|
Incompatible file inclusion issue
2 Attachment(s)
Quote:
Sorry to bother again. As per the link http://openfoamwiki.net/index.php/In...EL#CentOS_5.10, I have successfully moved up to step 13. However, stucking at step 14 while doing makeCGAL with Code:
./makeCGAL gmp-5.1.2 mpfr-3.1.2 > & log.CGAL How, to force it to use only 64 libraries. The prominent snippets of log are: Code:
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib/libXext.so - not found The make and log file for your reference is attached. Please take a look. Attachment 52399 Attachment 52400 |
Partially Solved
Quote:
Some nice person's previous post in the forum helped me handling the error. Actually, I am installing OpenFOAM in remote cluster. And, there I need minimal installation. Pre/post processing I have to do locally. So, I believed most of the thirdparty packages that are troubling me are not actually required. And, troubling because of not having root/administrative privilege. Here https://www.cfd-online.com/Forums/op...myhexmesh.html, I found that troublemaking CGAL package which eventually requires gmp and mpfr are required for foamHexMesh tutorial which I don't require at least for time being at least. So, tried some hacks to prevent make of foamyHexMesh. Certainly, commented following lines in OpenFOAM/OpenFOAM-2.3.0/applications/utilities/mesh/generation/Allwmake file: Code:
Code:
Code:
'/lustre/scratch/rsoni/OpenFOAM/OpenFOAM-2.3.0/platforms/linux64Gcc48DPOpt/lib/libcompressibleTwoPhaseSystem.so' is up to date. |
Help
Can anyone help me resolve the said issues.
|
Quick answer: Sorry, I didn't manage to get anything done this past weekend due to an annoying cold.
The error regarding "SRFIcoFoam.C" is very strange, because OpenFOAM 2.3.0 does not have that file anywhere in its source code. Which seems to suggest that this file refers to some custom code that was likely designed for some other version of OpenFOAM and not for 2.3.0. Therefore, I strongly suggest that you first pull out the folder that contains that file, from the OpenFOAM standard folders. Because it would be preferable that you first manage to have OpenFOAM 2.3.0 fully built and only then move to the next issue regarding custom code. Furthermore, it would be helpful to know a bit more about that custom code, in order to know how to diagnose it and change it to properly work with OpenFOAM 2.3.0. |
[solved]
Sorry to bother everyone but it was not primarily an error. I found that the SRFIcoFoam codes were modified to suit installation. This was done by people from where I obtained the OpenFOAM source. I also found that SRFIcoFoam is not an important solver (at least for me) as it no more available with new versions of the OpenFOAM. So, I decided to drop it off. I simply deleted the SRFIcoFoam source directory and everything then worked fine.
Code:
cd $WM_PROJECT_DIR/applications/solvers/incompressible |
All times are GMT -4. The time now is 04:40. |