Alternate Build Possibilities?

Asked by Adam Carlyle

Hello,

I am trying to help a end-user get ESYS-particle running on a small Linux cluster here at our institution. I can successfully compile and install the code on my local Debian machine with your instructions, and can run a simple test case.

However, because of cluster system administration policies, I don't anticipate being able to follow your pre-subscribed build process on our cluster. For example, I lack access to the directories where the ESYS install puts its shared libraries and binaries. Also, it may not be possible to install all necessary prerequisite packages on the cluster.

Do you have any information on possible alternate build procedures for ESYS-particle? Do you feel this would be prudent, or even possible? The best solution for this end-user would be an architecturally-compatible static executable that he could build on his own machine and just copy over to the cluster for use. That notwithstanding, a means of specifying an alternate install path for shared libraries and binaries generated by ESYS would allow him to install the code into his own directories.

Any information along these lines would be helpful.

Many Thanks,
-Adam Carlyle

Question information

Language:
English Edit question
Status:
Solved
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Solved by:
Dion Weatherley
Solved:
Last query:
Last reply:
Revision history for this message
Best Dion Weatherley (d-weatherley) said :
#1

Hi Adam,

Thanks for the question. I don't recommend compiling a statically linked executable on another PC and porting it to the cluster. That is usually a very troublesome approach for most software packages.

The good news is that it is possible during the "configure" stage to specify an alternative path to install ESyS-Particle binaries and shared libraries. The configure script also provides some options for specifying non-standard paths for ESyS-Particle dependencies. For a full listing of the available options, type "./configure --help".

Supposing you were installing ESyS-Particle on a cluster with OpenMPI (and the other dependencies) installed in the default location(s), the following would install ESyS-Particle in the /home/user/ESyS/ directory:

./configure CC=mpicc CXX=mpic++ --prefix=/home/user/ESyS
make
make install

You will then need to add /home/user/ESyS/bin to your PATH, /home/user/ESyS/lib to your LD_LIBRARY_PATH and /home/user/ESyS/lib/python2.X/site-packages to your PYTHONPATH.

If some/all of the dependencies are not installed on your cluster, you will need to download the source code for each of these and install them locally also. The procedure should be very similar for most of these i.e. specify the installation path via the --prefix argument when you configure those packages. To inform ESyS-Particle where you installed these, you may need to add the path(s) to their shared libraries and headers using the configure LDFLAGS and CPPFLAGS variables.

For example, if you installed cppunit under /home/user/cppunit/ and boost under /home/user/boost/, a configure command like the following might work:

./configure CC=mpicc CXX=mpic++ --prefix=/home/user/ESyS CPPFLAGS="-I/home/user/cppunit/include -I/home/user/boost/include" LDFLAGS="-L/home/user/cppunit/lib -L/home/user/boost/lib"

For more information, refer to "./configure --help" and if you need more assistance please do not hesitate to ask!

Good luck!

Dion.

Revision history for this message
Adam Carlyle (acarlyle) said :
#2

Thanks Dion Weatherley, that solved my question.