This wiki is obsolete, see the NorduGrid web pages for up to date information.
LRMS Backends/Testbeds
From NorduGrid
Jump to navigationJump to search
Open Grid Scheduler (OGS/GE 2011.11p1)
Old name: Sun Grid Engine
Website: http://gridscheduler.sourceforge.net
Compute nodes
roczei@gemaster:~$ qstat -f queuename qtype resv/used/tot. load_avg arch states --------------------------------------------------------------------------------- all.q@ogsexec1 BIP 0/0/4 0.00 linux-x64 --------------------------------------------------------------------------------- all.q@ogsexec2 BIP 0/0/4 0.01 linux-x64 --------------------------------------------------------------------------------- all.q@ogsexec3 BIP 0/0/4 0.00 linux-x64 --------------------------------------------------------------------------------- all.q@ogsexec4 BIP 0/0/4 0.00 linux-x64 roczei@gemaster:~$
Queue configuration
roczei@gemaster:~$ qconf -sq all.q qname all.q hostlist ogsexec1 ogsexec2 ogsexec3 ogsexec4 seq_no 0,[ogsexec1=1],[ogsexec2=2],[ogsexec3=3],[ogsexec4=4] load_thresholds np_load_avg=1.75 suspend_thresholds NONE nsuspend 1 suspend_interval 00:05:00 priority 0 min_cpu_interval 00:05:00 processors UNDEFINED qtype BATCH INTERACTIVE ckpt_list NONE pe_list mpi openmp rerun FALSE slots 4 tmpdir /scratch/tmp shell /bin/bash prolog NONE epilog NONE shell_start_mode unix_behavior starter_method NONE suspend_method NONE resume_method NONE terminate_method NONE notify 00:00:60 owner_list NONE user_lists NONE xuser_lists NONE subordinate_list NONE complex_values NONE projects NONE xprojects NONE calendar NONE initial_state default s_rt 01:50:00 h_rt 02:00:00 s_cpu INFINITY h_cpu INFINITY s_fsize INFINITY h_fsize INFINITY s_data INFINITY h_data INFINITY s_stack INFINITY h_stack INFINITY s_core 0 h_core 0 s_rss INFINITY h_rss INFINITY s_vmem INFINITY h_vmem INFINITY roczei@gemaster:~$
Parallel enviroments
OpenMP
Open Grid Scheduler configuration
roczei@gemaster:~$ qconf -sp openmp pe_name openmp slots 16 user_lists NONE xuser_lists NONE start_proc_args NONE stop_proc_args NONE allocation_rule $pe_slots control_slaves TRUE job_is_first_task TRUE urgency_slots max accounting_summary TRUE roczei@gemaster:~$
ARC configuration
roczei@gemaster:/scratch/arc/rte/ENV/GCC$ cat OPENMP-2.5
#!/bin/bash
parallel_env_name="openmp"
case "$1" in
0 ) # local LRMS specific settings
i=0
eval jonp=\${joboption_nodeproperty_$i}
while [ ! -z $jonp ] ; do
(( i++ ))
eval jonp=\${joboption_nodeproperty_$i}
done
eval joboption_nodeproperty_$i=$parallel_env_name
;;
1 ) # nothing here
;;
2 ) # nothing here
;;
* ) # everything else is an error
return 1
;;
esac
roczei@gemaster:/scratch/arc/rte/ENV/GCC$
Configuration of sge_shepherd
roczei@gemaster:/scratch/sge$ cat jail.sh
#!/bin/bash
while IFS== read key val; do
case "$key" in
PE) PE="$val";;
NSLOTS) NSLOTS="$val";;
esac
done <environment
if [ ! -z "$PE" ]
then
if [ "$PE" = "openmp" ]
then
export OMP_NUM_THREADS=$NSLOTS
fi
fi
exec /home/ogs/bin/linux-x64/sge_shepherd $@
roczei@gemaster:/scratch/sge$ qconf -sconf | grep shepherd
shepherd_cmd /scratch/sge/jail.sh
roczei@gemaster:/scratch/sge$
MPI
Open Grid Scheduler configuration
roczei@gemaster:~$ qconf -sp mpi pe_name mpi slots 16 user_lists NONE xuser_lists NONE start_proc_args NONE stop_proc_args NONE allocation_rule $fill_up control_slaves TRUE job_is_first_task FALSE urgency_slots max accounting_summary FALSE roczei@gemaster:~$
ARC configuration
roczei@gemaster:/scratch/arc/rte/ENV/GCC/MPI$ cat OPENMPI-1.6.3
#!/bin/bash
parallel_env_name="mpi"
case "$1" in
0 ) # local LRMS specific settings
i=0
eval jonp=\${joboption_nodeproperty_$i}
while [ ! -z $jonp ] ; do
(( i++ ))
eval jonp=\${joboption_nodeproperty_$i}
done
eval joboption_nodeproperty_$i=$parallel_env_name
;;
1 ) # nothing here
export PATH=/scratch/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/scratch/openmpi/lib:/scratch/openmpi/lib/openmpi:$LD_LIBRARY_PATH
;;
2 ) # nothing here
;;
* ) # everything else is an error
return 1
;;
esac
roczei@gemaster:/scratch/arc/rte/ENV/GCC/MPI$
OpenMPI and Grid Engine integration
- http://www.open-mpi.org/faq/?category=running#run-n1ge-or-sge
- http://arc.liv.ac.uk/SGE/howto/hostbased-ssh.html
- http://gridscheduler.sourceforge.net/howto/qrsh_qlogin_ssh.html
Configuration of consumable resources
roczei@gemaster:~$ qconf -se ogsexec1 | grep complex_values complex_values exclusive=true,h_vmem=4G,slots=4 roczei@gemaster:~$ qconf -se ogsexec2 | grep complex_values complex_values exclusive=true,h_vmem=4G,slots=4 roczei@gemaster:~$ qconf -se ogsexec3 | grep complex_values complex_values exclusive=true,h_vmem=4G,slots=4 roczei@gemaster:~$ qconf -se ogsexec4 | grep complex_values complex_values exclusive=true,h_vmem=4G,slots=4 roczei@gemaster:~$ qconf -sc | grep h_vmem h_vmem h_vmem MEMORY <= YES YES 1G 0 roczei@gemaster:~$ qconf -sc | grep exclusive exclusive excl BOOL EXCL YES YES 0 1000 roczei@gemaster:~$ clear
Configuration of the ARC client
roczei@gemaster:~/.arc$ cat client.conf [common] [computing/gemaster] url=https://gemaster.grid.niif.hu:60000/arex infointerface=org.nordugrid.wsrfglue2 submissioninterface=org.ogf.bes default=yes roczei@gemaster:~/.arc$
Test jobs
You can download the test files from here.
MPI
<JobDefinition
xmlns="http://schemas.ggf.org/jsdl/2005/11/jsdl"
xmlns:posix="http://schemas.ggf.org/jsdl/2005/11/jsdl-posix">
<JobDescription>
<JobIdentification>
<JobName>MPI test job</JobName>
</JobIdentification>
<Application>
<posix:POSIXApplication>
<posix:Executable>/scratch/openmpi/bin/mpirun</posix:Executable>
<posix:Argument>-np</posix:Argument>
<posix:Argument>16</posix:Argument>
<posix:Argument>/scratch/arc/examples/mpi/connectivity</posix:Argument>
<posix:Argument>-v</posix:Argument>
<posix:Output>out.txt</posix:Output>
<posix:Error>err.txt</posix:Error>
</posix:POSIXApplication>
</Application>
<DataStaging>
<FileName>out.txt</FileName>
<DeleteOnTermination>false</DeleteOnTermination>
</DataStaging>
<DataStaging>
<FileName>err.txt</FileName>
<DeleteOnTermination>false</DeleteOnTermination>
</DataStaging>
<Resources>
<SlotRequirement>
<NumberOfSlots>16</NumberOfSlots>
</SlotRequirement>
<RunTimeEnvironment>
<Software>
<Name>ENV/GCC/MPI/OPENMPI</Name>
<Version require="eq">1.6.3</Version>
</Software>
</RunTimeEnvironment>
</Resources>
</JobDescription>
</JobDefinition>
OpenMP
<JobDefinition
xmlns="http://schemas.ggf.org/jsdl/2005/11/jsdl"
xmlns:posix="http://schemas.ggf.org/jsdl/2005/11/jsdl-posix">
<JobDescription>
<JobIdentification>
<JobName>OpenMP test job</JobName>
</JobIdentification>
<Application>
<posix:POSIXApplication>
<posix:Executable>/scratch/arc/examples/openmp/omp_mm</posix:Executable>
<posix:Output>out.txt</posix:Output>
<posix:Error>err.txt</posix:Error>
</posix:POSIXApplication>
</Application>
<DataStaging>
<FileName>out.txt</FileName>
<DeleteOnTermination>false</DeleteOnTermination>
</DataStaging>
<DataStaging>
<FileName>err.txt</FileName>
<DeleteOnTermination>false</DeleteOnTermination>
</DataStaging>
<Resources>
<SlotRequirement>
<NumberOfSlots>4</NumberOfSlots>
</SlotRequirement>
<RunTimeEnvironment>
<Software>
<Name>ENV/GCC/OPENMP</Name>
<Version require="eq">2.5</Version>
</Software>
</RunTimeEnvironment>
</Resources>
</JobDescription>
</JobDefinition>
Exclusive execution
<JobDefinition
xmlns="http://schemas.ggf.org/jsdl/2005/11/jsdl"
xmlns:posix="http://schemas.ggf.org/jsdl/2005/11/jsdl-posix">
<JobDescription>
<JobIdentification>
<JobName>Exclusive test job</JobName>
</JobIdentification>
<Application>
<posix:POSIXApplication>
<posix:Executable>/bin/sleep</posix:Executable>
<posix:Argument>30</posix:Argument>
<posix:Output>out.txt</posix:Output>
<posix:Error>err.txt</posix:Error>
</posix:POSIXApplication>
</Application>
<DataStaging>
<FileName>out.txt</FileName>
<DeleteOnTermination>false</DeleteOnTermination>
</DataStaging>
<DataStaging>
<FileName>err.txt</FileName>
<DeleteOnTermination>false</DeleteOnTermination>
</DataStaging>
<Resources>
<ExclusiveExecution>true</ExclusiveExecution>
</Resources>
</JobDescription>
</JobDefinition>