1710
Comment:
|
3922
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
At Zeuthen a cluster of 16 dual opteron machines is available. It is integrated into the SGE batch system. The documentation in ["Batch System Usage"] applies to it. | There are 4 dedicated parallel clusters (blade centers) in testing mode, but you can also run parallel MPI jobs in the SGE farm. The documentation in [[Batch_System_Usage]] applies there. |
Line 7: | Line 7: |
Applications for the cluster must be compiled on a 64 bit machine, at the moment, this means either lx64 or linfini. There are MPI versions for the GCC, Intel and PGI compilers installed: | === Openmpi === Since SL5, all batch worker nodes have the openmpi implementation of the MPI standard installed. Recently the machines were upgraded to the default SL5.4 packages of openmpi. For 64 bit applications use the installation in /usr/lib64/openmpi/1.3.2-gcc/bin, for 32 bit use the binaries from /usr/lib/openmpi/1.3.2-gcc/bin . |
Line 9: | Line 11: |
/usr/local/ibgd/mpi/osu/gcc/mvapich-0.9.5/bin/mpicc | Additional openmpi versions are installed to support the Intel and PGI compilers: {{{ /usr/lib64/openmpi-1.3.2-intel/bin /usr/lib64/openmpi-1.3.2-pgi/bin }}} |
Line 11: | Line 17: |
/usr/local/ibgd/mpi/osu/intel/mvapich-0.9.5/bin/mpicc | If you don't want to specify the full path to your preferred MPI implementation, configure a default by using the ini command or running mpi-selector-menu on a build machine. |
Line 13: | Line 19: |
/usr/local/ibgd/mpi/osu/pgi/mvapich-0.9.5/bin/mpicc | ==== Building applications ==== 64 bit MPI Applications can be compiled on any 64 bit SL5 machine, e.g. sl5-64.ifh.de. ==== Running your application ==== To run an MPI program outside the batch system, you must specify a machinefile listing all the machines and the number of cores your application should run on. A typical machine file looks like this: {{{ pax0c slots=8 pax0d slots=8 pax0e slots=8 pax0f slots=8 }}} The command line would look like this: {{{ /usr/lib64/openmpi/1.3.2-gcc/bin/mpirun -np 32 -machinefile ./machinefile --mca btl "^udapl" ./program }}} More information on openmpi is in the openmpi FAQ: http://www.open-mpi.org/faq/ === Mvapich / Mvapich2 === Three additional mpi implementations are installed on all pax machines: {{{ /usr/lib64/mvapich/1.1.0-gcc/bin /usr/lib64/mvapich2/1.2-gcc/bin /usr/lib64/mvapich2/1.2-intel/bin }}} To use mvapich, add one of those versions to your path, compile your application with that mpi compiler and run it as specified here: http://mvapich.cse.ohio-state.edu/support/user_guide_mvapich2-1.4.html#x1-160005.2 The machine file format is different from the one for openmpi, you must list the host name for every core you want to use, e.g. if you want to run four processes, two processes on each of pax19 and pax18: {{{ pax18 pax19 pax18 pax19 }}} == Batch System Access == === Old Farm === A job script designated for a parallel job needs to specify the parallel environment and the number of required CPUs. The parameter looks like this for up to 8 slots on a single node: #$ -pe multicore-mpi 8 For more MPI processes, use -pe mpi. |
Line 16: | Line 63: |
Compilers for C++ and Fortran are available as well. | Be sure to call the right mpirun version for your architecture. If you application was compiled for 64 bit, use |
Line 18: | Line 65: |
/usr/lib64/openmpi/1.3.2-gcc/bin/mpirun --mca btl "^udapl" -np $NSLOTS yourapp | |
Line 19: | Line 67: |
== Batch System Access == | The mca option is needed to disable the udapl btl plugin that currently does not work. |
Line 21: | Line 69: |
A job script designated for a parallel job needs to specify the parallel environment and the number of required CPUs. The parameter looks like this: | === New Test Farm === The new farm uses SGE 6.2. You have to initialize it first: |
Line 23: | Line 72: |
#$ -pe mpich-ppn2 4 | ini sge62 |
Line 25: | Line 74: |
It is important to request the right limit for memory with the parameter h_vmem. The machines have 3673204k of RAM and by default two jobs are executed on one node, so the maximal amount of memory is 1650M per process. | Then you can select one of the pax blade centers like this in your job script: |
Line 27: | Line 76: |
#$ -pe pax? 64 If you want to use mvapich2 instead of openmpi from a batch job, you must first create the file ~/.mpd.conf that contains of one line like this: MPD_SECRETWORD=password Then use this in your job script: {{{ #$ -pe pax2-mvapich2 16 export MPD_CON_EXT="sge_$JOB_ID.$SGE_TASK_ID" /usr/lib64/mvapich2/1.2-gcc/bin/mpiexec -n $NSLOTS your_program }}} |
|
Line 31: | Line 92: |
Be aware that the batch system renews the AFS token, but only on the node that starts the first process (node 0). That's why you should access the AFS from that node. An example scenario looks like this: | == BLAS library == Both ATLAS ans Goto``BLAS are available. |
Line 33: | Line 95: |
1. Copy data from AFS to node 0. 1. Copy it with scp to the nodes that need it to the directory $TMPDIR, the machine names are in $TMPDIR/machines 1. Run your MPI job. 1. Copy the results with scp from the local discs to node 0. 1. Copy the data from node 0 to AFS. |
* ATLAS is in /opt/products/atlas * libgoto is in /usr/lib or /usr/lib64 respectively. == Further documentation == [[http://www-zeuthen.desy.de/technisches_seminar/texte/Technisches_Seminar_Waschk.pdf|HPC-Clusters at DESY Zeuthen]] , 11/22/06, technical seminar |
Usage of the Linux Clusters at DESY Zeuthen
There are 4 dedicated parallel clusters (blade centers) in testing mode, but you can also run parallel MPI jobs in the SGE farm. The documentation in Batch_System_Usage applies there.
Building Applications
Openmpi
Since SL5, all batch worker nodes have the openmpi implementation of the MPI standard installed. Recently the machines were upgraded to the default SL5.4 packages of openmpi. For 64 bit applications use the installation in /usr/lib64/openmpi/1.3.2-gcc/bin, for 32 bit use the binaries from /usr/lib/openmpi/1.3.2-gcc/bin .
Additional openmpi versions are installed to support the Intel and PGI compilers:
/usr/lib64/openmpi-1.3.2-intel/bin /usr/lib64/openmpi-1.3.2-pgi/bin
If you don't want to specify the full path to your preferred MPI implementation, configure a default by using the ini command or running mpi-selector-menu on a build machine.
Building applications
64 bit MPI Applications can be compiled on any 64 bit SL5 machine, e.g. sl5-64.ifh.de.
Running your application
To run an MPI program outside the batch system, you must specify a machinefile listing all the machines and the number of cores your application should run on. A typical machine file looks like this:
pax0c slots=8 pax0d slots=8 pax0e slots=8 pax0f slots=8
The command line would look like this:
/usr/lib64/openmpi/1.3.2-gcc/bin/mpirun -np 32 -machinefile ./machinefile --mca btl "^udapl" ./program
More information on openmpi is in the openmpi FAQ: http://www.open-mpi.org/faq/
Mvapich / Mvapich2
Three additional mpi implementations are installed on all pax machines:
/usr/lib64/mvapich/1.1.0-gcc/bin /usr/lib64/mvapich2/1.2-gcc/bin /usr/lib64/mvapich2/1.2-intel/bin
To use mvapich, add one of those versions to your path, compile your application with that mpi compiler and run it as specified here: http://mvapich.cse.ohio-state.edu/support/user_guide_mvapich2-1.4.html#x1-160005.2
The machine file format is different from the one for openmpi, you must list the host name for every core you want to use, e.g. if you want to run four processes, two processes on each of pax19 and pax18:
pax18 pax19 pax18 pax19
Batch System Access
Old Farm
A job script designated for a parallel job needs to specify the parallel environment and the number of required CPUs. The parameter looks like this for up to 8 slots on a single node:
#$ -pe multicore-mpi 8
For more MPI processes, use -pe mpi.
Be sure to call the right mpirun version for your architecture. If you application was compiled for 64 bit, use
/usr/lib64/openmpi/1.3.2-gcc/bin/mpirun --mca btl "^udapl" -np $NSLOTS yourapp
The mca option is needed to disable the udapl btl plugin that currently does not work.
New Test Farm
The new farm uses SGE 6.2. You have to initialize it first:
ini sge62
Then you can select one of the pax blade centers like this in your job script:
#$ -pe pax? 64
If you want to use mvapich2 instead of openmpi from a batch job, you must first create the file ~/.mpd.conf that contains of one line like this:
MPD_SECRETWORD=password
Then use this in your job script:
#$ -pe pax2-mvapich2 16 export MPD_CON_EXT="sge_$JOB_ID.$SGE_TASK_ID" /usr/lib64/mvapich2/1.2-gcc/bin/mpiexec -n $NSLOTS your_program
AFS Access
The application binary must be available to all nodes, that's why it should be placed in an AFS directory.
BLAS library
Both ATLAS ans GotoBLAS are available.
- ATLAS is in /opt/products/atlas
- libgoto is in /usr/lib or /usr/lib64 respectively.
Further documentation
HPC-Clusters at DESY Zeuthen , 11/22/06, technical seminar