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