Difference between revisions of "Brief Introduction to HPC Computing"
From HPC users
Jump to navigationJump to search
Line 23: | Line 23: | ||
== Importance of specifying reasonable resources == | == Importance of specifying reasonable resources == | ||
== how to use local storage for I/O intense serial jobs (or parallel jobs that run on a single host) == | == how to use local storage for I/O intense serial jobs (or parallel jobs that run on a single host) == | ||
A proper job submission script, here called <tt>myProg_tempdir.sge</tt>, that takes care of creating the folder <tt>my_data</tt> needed by the program | |||
<tt>myExample_tempdir</tt> in order to store its output in a temporal directory on the executing host reads | |||
<nowiki> | |||
#!/bin/bash | |||
####### which shell to use | |||
#$ -S /bin/bash | |||
####### change to directory where job was submitted from | |||
#$ -cwd | |||
####### maximum walltime of the job (hh:mm:ss) | |||
#$ -l h_rt=0:10:0 | |||
####### memory per job slot | |||
#$ -l h_vmem=100M | |||
####### since working with local storage, no need to request disk space | |||
####### name of the job | |||
#$ -N tmpdir_test | |||
####### change current working directory to the local /scratch/<jobId>.<x>.<qInst> | |||
####### directory, available as TMPDIR on the executing host with HOSTNAME | |||
cd $TMPDIR | |||
####### write details to <jobName>.o<jobId> output file | |||
echo "HOSTNAME = " $HOSTNAME | |||
echo "TMPDIR = " $TMPDIR | |||
####### create output directory on executing host (parent folder is TMPDIR) | |||
mkdir my_data | |||
####### run program | |||
$HOME/wmwr/my_examples/tempdir_example/myExample_tempdir | |||
####### copy the output to the directory the job was submitted from | |||
cp -a ./my_data $HOME/wmwr/my_examples/tempdir/ | |||
</nowiki> |
Revision as of 15:25, 14 May 2013
A brief introduction to the usage of the HPC facilities, targeted at new and unexperienced HPC users is given below. The introduction is based on various minimal examples that illustrate how to compile serial and parallel programs as well as how to submit and monitor actual jobs using SGE.
A simple serial program
write/compile simple non-parallel program
where and how to compile
how to include libraries
submit/monitor jobs
specifying resources
single jobs
job arrays
basic error-tracking
A simple parallel program
compile simple parallel program
example using openMpi
example using intel mph
submit/monitor jobs
specify resources
basic error-tracking
Misc
Importance of specifying reasonable resources
how to use local storage for I/O intense serial jobs (or parallel jobs that run on a single host)
A proper job submission script, here called myProg_tempdir.sge, that takes care of creating the folder my_data needed by the program myExample_tempdir in order to store its output in a temporal directory on the executing host reads
#!/bin/bash ####### which shell to use #$ -S /bin/bash ####### change to directory where job was submitted from #$ -cwd ####### maximum walltime of the job (hh:mm:ss) #$ -l h_rt=0:10:0 ####### memory per job slot #$ -l h_vmem=100M ####### since working with local storage, no need to request disk space ####### name of the job #$ -N tmpdir_test ####### change current working directory to the local /scratch/<jobId>.<x>.<qInst> ####### directory, available as TMPDIR on the executing host with HOSTNAME cd $TMPDIR ####### write details to <jobName>.o<jobId> output file echo "HOSTNAME = " $HOSTNAME echo "TMPDIR = " $TMPDIR ####### create output directory on executing host (parent folder is TMPDIR) mkdir my_data ####### run program $HOME/wmwr/my_examples/tempdir_example/myExample_tempdir ####### copy the output to the directory the job was submitted from cp -a ./my_data $HOME/wmwr/my_examples/tempdir/