First - download auryn. It's best to checkout the lastest git commit. In general, the instructions present here should work just fine for you. You may need a couple of tweaks to the Makefile if the required libraries are not present in standard locations. For example, both, the required openmpi libraries and the mpic++ binary were placed in non standard locations in the cluster configuration. Therefore, I need to specify these during the build.
For the mpic++ binary, I simply needed to add its location to the PATH variable:
Code: Select all
export PATH=$PATH:/usr/mpi/gcc/openmpi-1.4.3/bin/:~/.local/bin/:~/bin:/soft/nrn/x86_64/bin/
Similarly, to specify the correct location of the libraries required to compile Auryn, I needed to modify the LDFLAGS variable in the Makefile. In my case, it now looks like this:
Code: Select all
LDFLAGS=-L/usr/lib64/openmpi/lib/ -lboost_program_options -lboost_mpi -lboost_serialization
Once it compiles, running it is quite easy if you're running it on the same node that you had compiled it on. In our cluster, like most, we need to submit jobs that a queue scheduler handles - using the qsub command. The other issue can arise if all the nodes on the cluster aren't exactly the same - maybe with different operating system versions or library versions. If the node that the scheduler will run your simulation on differs, you may need to provide some extra information to the qsub command. For example, I need to specify the location of the required shared objects in by job file:
Code: Select all
echo "---------------------- Simulation started -----------------------------"
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/mpi/gcc/openmpi-1.4.3/lib64/ ./auryn-0.4.1/build/home/sim_background
echo "---------------------- Simulation ended -----------------------------"