CFD Online Logo CFD Online URL
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Installation

[] Install OpenFOAM 3.0.1 on cluster without root access; mpi error

Register Blogs Members List Search Today's Posts Mark Forums Read

LinkBack Thread Tools Search this Thread Display Modes
Old   July 2, 2020, 19:16
Default Install OpenFOAM 3.0.1 on cluster without root access; mpi error
Join Date: Jan 2014
Posts: 32
Rep Power: 8
Madeinspace is on a distinguished road
Greetings. My apologies to start this new thread. There are several such threads but none of them worked for me.

I am trying to install OF3.0.1 on CentOS 7.8.2003 University Cluster without root access.

I followed the instructions#3 for CentOS 7.1 mentioned on the link below.

As with simillar other instructions to install OpenFOAM without the root access, I skipped step 1,2,3, and 4. The step 5,6, and 7 worked as intended. In the step#8, I first needed to load openmpi from the cluster. I then cheked the available openmpi on the cluster. The results were as below

$ module spider openmpi

The Open MPI Project is an open source MPI-3 implementation.


For detailed information about a specific "OpenMPI" package (including how to load the modules) us
e the module's full name.
Note that names that have a trailing (E) are extensions provided by other modules.
For example: $ module spider OpenMPI/4.0.3
In order to load OpenMPI/4.0.3, I first needed to load GCC/9.3.0.

module spider OpenMPI/4.0.3

OpenMPI: OpenMPI/4.0.3
The Open MPI Project is an open source MPI-3 implementation.

You will need to load all module(s) on any one of the lines below before the "OpenMPI/4.0.3" mod
ule is available to load.

So I loaded both of them
module load GCC/9.3.0
module load OpenMPI/4.0.3
Then I execute step#8 but with a little tweak as mention on the other thread. However, I am not sure if this is how it should be done. This is how step#8 looks like
module load mpi/openmpi-x86_64 || export PATH=$PATH:/usr/lib64/openmpi/bin
This is how I changed it
module load OpenMPI/4.0.3 || export PATH=$PATH:/usr/lib64/openmpi/bin
Accordingly, I also changed the alias in step#8,
echo "alias of301='module load OpenMPI/4.0.3; source \$HOME/OpenFOAM/OpenFOAM-3.0.1/etc/bashrc $FOAM_SETTINGS'" >> $HOME/.bashrc
Then I executed step 9 and 10. There were no warning or errors. Then when executing step 11.2, it stopped earlier than it should. And it had failed.

When I chedked the log file, the first error says:

In file included from common.h:106,
from dgraph_halo.c:64:
dgraph_halo.c: In function ‘dgraphHaloSync2’:
/apps/Hebbe7/software/Compiler/GCC/9.3.0/OpenMPI/4.0.3/include/mpi.h:322:57: error: static assertion failed: "MPI_Type_extent was removed in MPI-3.0. Use MPI_Type_get_extent instead."
322 | #define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(func, newfunc) _Static_assert(0, #func " was removed in MPI-3.0. Use " #newfunc " instead.")
| ^~~~~~~~~~~~~~
I don't know what causign this error but I suspect it is from the loading of OpemMPI. I tried with ohter version of OpenMPI but they all resulted the same.

I have also attached the log output of the compilation.

Could anyone please help me out here.

Best regards,

Attached Files
File Type: txt logThirdAttempt.txt.txt (81.2 KB, 1 views)
Madeinspace is offline   Reply With Quote

Old   July 4, 2020, 15:16
Fatih Ertinaz
Join Date: Feb 2011
Location: Istanbul
Posts: 62
Rep Power: 11
fertinaz is on a distinguished road
I think your choice of MPI and GCC is wrong.

OF-3.0.1 was released in December 2015. However, OpenMPI-4.x is quite new. The thing is when a new major MPI version is released, it usually doesn't maintain the backward compatibility. So, I checked ThirdParty-3.0.1 and looks like it is shipped with OpenMPI-1.10. It is better if you use that version.

Same goes for GCC as well. I'd use GCC-4.8

These versions are quite old and might not be installed in your cluster. In that case, you can contact your cluster admins. But they might complain for the very same reason Then, of course, it's always possible to compile every tool you need from scratch but that introduces some other issues such as you might have to configure your mpi to able to benefit from IB, disk space (gcc build takes up a lot of space) etc. But it's good practice.

Also, a few steps caught my attention which I believe might not be required:
  • Update PATH and LD_LIBRARY_PATH: This is not needed if the module system in your university cluster is working properly. When you load a module, your environment is updated accordingly.
  • Creating an alias in .bahrc: Since the idea is to run on a cluster, I believe you'll eventually try multi-node executions through a scheduler. If you create an alias in your bashrc as if you're running in your local environment, the process manager won't be able to source the OF environment when your job is loaded in a compute node. Therefore, a better approach is completely to ignore your bashrc file in your account and add sourcing to your job script.

Hope this helps
fertinaz is offline   Reply With Quote


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
[OpenFOAM] Native ParaView Reader Bugs tj22 ParaView 270 January 4, 2016 12:39
Ansys Fluent 13.0 UDF compilation problem in Window XP (32 bit) Yogini Fluent UDF and Scheme Programming 7 October 3, 2012 08:24
How to install CGNS under windows xp? lzgwhy Main CFD Forum 1 January 11, 2011 19:44
[swak4Foam] groovyBC: problems compiling: "flex: not found" and "undefined reference to ..." sega OpenFOAM Community Contributions 12 February 17, 2010 10:30
Version 15 on Mac OS X gschaider OpenFOAM Installation 113 December 2, 2009 11:23

All times are GMT -4. The time now is 14:19.