OpenMP: Difference between revisions

From Research Computing Center Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 37: Line 37:


===Sample script to run a shared memory job using OpenMP===
===Sample script to run a shared memory job using OpenMP===
Sample script to run a program that uses 4 OpenMP threads:
Sample script (sub.sh) to run a program that uses 4 OpenMP threads:
<pre class="gscript">
<pre class="gscript">
#!/bin/bash
#!/bin/bash
Line 43: Line 43:
export OMP_NUM_THREADS=4
export OMP_NUM_THREADS=4
time ./myprog
time ./myprog
</pre>
===Sample job submission command on zcluster===
To submit a shared memory job that uses 4 OpenMP threads to the rcc-30d queue:
<pre class="gcommand">
qsub -q rcc-30d -pe thread 4 sub.sh
</pre>
</pre>

Revision as of 15:11, 11 February 2013

Compiling OpenMP code on zcluster

The compilers installed on zcluster support shared memory applications using OpenMP. Here are the compiler options to include when using OpenMP:

Compiler Commands Option
PGI pgcc, pgCC, pgf90, etc. -mp
Intel icc, ifort -openmp
GNU gcc, gfortran, g++, gcc44, etc. -fopenmp

Defining number of OpenMP threads

The number of OpenMP threads can be specified using the environment variable OMP_NUM_THREADS. For example, to define 4 threads:

For bash/sh:

export OMP_NUM_THREADS=4

For csh/tcsh:

setenv OMP_NUM_THREADS 4

Sample script to run a shared memory job using OpenMP

Sample script (sub.sh) to run a program that uses 4 OpenMP threads:

#!/bin/bash
cd working_directory
export OMP_NUM_THREADS=4
time ./myprog

Sample job submission command on zcluster

To submit a shared memory job that uses 4 OpenMP threads to the rcc-30d queue:

qsub -q rcc-30d -pe thread 4 sub.sh