Developing with Cloud9 (and others)
cloud9
The Linux machine has eight processors. It has hyperthreading enabled so sixteen threads can be run. Hyperthreading adds roughly a 30% improvement so submitting jobs with more than eight cores will see some speedup. It has 24 GB of memory and a large RAID drive.
gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) can be access as g++44
NVIDIA Tesla C1060 GPU
cloud9 also has a gpu - http://www.nvidia.com/object/product_tesla_c1060_us.html
wolkje
Dutch for cloudy, it has 12 cores and allows 24 threads. gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) can be access as g++44
radegund
named after the smallest pub in Cambridge, it has four cores and is 32 bit.
Intel C++ compiler
We have licensed the Intel C++ compiler icl. My .profile file includes the following:
# set up icc intel compiler 10.1.008 # source /opt/intel/cce/10.1.008/bin/iccvars.sh # source /opt/intel/idbe/10.1.008/bin/idbvars.sh # set up icc intel compiler 11.1.073 source /opt/intel/Compiler/11.1/073/bin/intel64/iccvars_intel64.sh source /opt/intel/Compiler/11.1/073/bin/intel64/idbvars.sh
Do an ls on the directory
/opt/intel/Compiler/11.1
to see what versions are currently available.
Portland group compiler
We have licensed this compiler on cloud9.
The user guide is at https://www.pgroup.com/doc/pgiug.pdf
pgCC is one of the few C++ compilers which includes array bounds checking as an option. The build directory sys_pgccBounds will use both the compiler bounds checking as well as the multi_arr class bounds checking.
This compiler includes a SDK for the NVIDIA Cuda we have on this machine. This is located at /usr/local/cuda/NVIDIA_GPU_Computing_SDK
To use this compiler include this in your login configuration file, .profile on my account:
PGI=/opt/pgi export PGI path=$PATH:/opt/pgi/linux86-64/10.3/bin export LM_LICENSE_FILE=$PGI/license.dat export MANPATH=$MANPATH:/opt/pgi/linux86-64/10.3/man
NB - as of 10 Mar 10 all versions of the 10 series cannot compile Cloudy. They all throw the following exception
PGC++ F-Subscript out of range for array _71947_10_GrainChTrRate (../grains.cpp: 490)
subscript=30, upper bound=29, dimension=3
Version 9.0, located at
export PATH=$PATH:$PGI/linux86-64/9.0/bin
does seem to work.
Version 11.2 can run the smoke test! This version is located at
export PATH=$PATH:$PGI/linux86-64/11.2/bin
To build the code use the source / sys_pgcc and sys_pgccBounds
mpi running
on cloud9 we build in sys_mpi_gcc - NOT icc as on bcx
to run mpirun -np 2 /home66/gary/cloudy/trunk/source/sys_mpi_gcc/cloudy.exe -r $1
for grids need -r and name of file, this example runs with 2 processors, is called runmpi2 on cloud9 bin
mpi selecting
on cloud9 we build in sys_mpi_gcc - NOT icc as on bcx
run mpi-selector to get mpi
mpi-selector --list shows openmpi-1.3.2-gcc-i386 openmpi-1.3.2-gcc-x86_64
use mpi-selector --set openmpi-1.3.2-gcc-x86_64
use mpi-selector-menu to see choices, select a default for yourself, i use 64 mpi-selector-menu Current system default: <none> Current user default: <none>
"u" and "s" modifiers can be added to numeric and "U" commands to specify "user" or "system-wide".
1. mvapich_gcc-0.9.9 2. mvapich_intel-0.9.9 3. mvapich_pgi-0.9.9 4. openmpi_gcc-1.2.2 5. openmpi_intel-1.2.2 6. openmpi_pgi-1.2.2 U. Unset default Q. Quit
Selection (1-6[us], U[us], Q): 5 Operator on the per-user or system-wide default (u/s)? u
NB - If make fails to work even after doing the above, note the following message, which appears after one uses mpi-selector-menu, but not after selecting one as a command-line argument:
WARNING: Changes made to mpi-selector defaults will not be visible until you start a new shell!
Return to DeveloperPages
Return to main wiki page
