Beruflich Dokumente
Kultur Dokumente
Date: 17/01/2012
Activity: SA1.5
Document link:
PUBLIC 1 / 45
This work is co-funded by the EC EMI project under the FP7 Collaborative Projects Grant Agreement Nr.
INFSO-RI-261611.
Copyright notice:
Copyright © EGI.eu. This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. To
view a copy of this license, see CreativeCommons license or send a letter to Creative Commons, 171 Second Street, Suite 300, San
Francisco, California, 94105, USA. The work must be attributed by attaching the following reference to the copied elements: “Copyright ©
EGI.eu (www.egi.eu). Using this document in a way and/or for purposes not foreseen in the license, requires the prior written permission
of the copyright holders. The information contained in this document represents the views of the copyright holders as of the date such
views are published.
Delivery Slip
Name Partner/ Date Signature
Activity
From
Verified
Reviewed by
Approved by
Document Log
Issue Date Comment Author/Partner
0-1 28/06/2007 Initial Draft Javier Lopez - CESGA Esteban Freire - CESGA
1-0 29/06/2007 Ready for comments Javier Lopez - CESGA
Updated to reflect the comments from John
1-1 16/07/2007 Esteban Freire – CESGA
Walsh (TCD)
1-2 20/07/2007 Minor changes Javier Lopez - CESGA
Minor changes. Updated to reflect the
1-3 04/10/2007 Esteban Freire- CESGA
comments from Pablo Rey (CESGA)
Update to adapt the document to the last SGE
2-0 16/02/2010 Esteban Freire- CESGA
and gLite version
Adding a new paragraph to include installation
2-1 28/04/2010 Esteban Freire- CESGA
notes of CREAM-CE with SGE
Changes for Open Grid Scheduler / Grid
3-0 17/01/2012 Engine installation and configuration instead Roberto Rosende - CESGA
Sun Grid Engine and adaptation to EMI
4. INSTALLING GE.............................................................................................................................................................6
4.1. INTRODUCTION.................................................................................................................................................................6
4.2. INSTALL PROCCESS FOR EMI CREAM-CE WITH GE..........................................................................................7
4.3. CREAM INSTALLATION FOR GE.......................................................................................................................................8
4.4. STARTING GE.........................................................................................................................................................12
5. CONFIGURING GE ON CE.........................................................................................................................................12
5.1. POLICY_HIERARCHY PARAMETER AND OTHER PARAMETERS ABOUT PRIORITIES..........................................................................15
5.2. HOW TO CONFIGURE A EPILOG OR PROLOG SCRIPT.............................................................................................................17
5.3. HOW TO CONFIGURE RESOURCE QUOTAS...........................................................................................................................18
5.4. HOW TO CONFIGURE A SHADOW QMASTER..........................................................................................................................20
6. USEFUL ADMIN COMMANDS...................................................................................................................................21
11. TROUBLESHOOTING...............................................................................................................................................41
1.1. PURPOSE
To provide site administrators a quick reference for helping them using GE in their sites.
1.4. REFERENCES
Table 1: Table of references
R1 Grid Engine http://gridscheduler.sourceforge.net/
R2 Sun Grid Engine http://www.oracle.com/us/sun/index.htm
1.6. TERMINOLOGY
This subsection provides the definitions of terms, acronyms, and abbreviations required to properly
interpret this document. A complete project glossary is provided in the EGEE glossary
Glossary
Acronym Meaning
SGE Sun Grid Engine
JobID Number of job assigned by SGE
SGE Qmaster Master Host
YAIM A tool to configuring Grid Services
JM Job Manager
CE Computing Element
WN Worker node or Execution hosts
RQS Resource quotas
GE Grid Engine
2. OVERVIEW
Grid Engine [R1] is an open source job management system developed initially by Sun and now
supported and developed by the Open Grid Scheduler Project. There is also a commercial version
including support from Sun and Oracle [R2]
Some important features include:
GE allows:
Resource reservation for a given user and group (and thus VO), in other words, making
sure that we will have available resources for those jobs.
Can set limits on the maximum resources a user/group can use, in order to establish, for
example, jobs that a user/group can run at the same time.
Supports complex attributes in order to establish, for example, processors, memory and disk
usage.
4. INSTALLING GE
4.1. INTRODUCTION
GE hosts are classified into four groups:
Master host.
The master host (GE Qmaster) is central for the overall cluster activity. The master host runs
the master daemon 'sge_qmaster'. This daemon controls all GE components such as
queues and jobs. On master host usually runs the "scheduler" 'sge_schedd'. This daemon
makes the scheduling decisions.
Execution hosts.
Execution hosts are nodes that have permission to run jobs. On these hosts run the
execution daemon 'sge_execd'. This daemon controls the queues local to the machine on
which it is running and executes the jobs sent from 'sge_qmaster' to be run on these
queues.
Administration hosts.
Permission can be given to hosts other than the master host to carry out any kind of
administrative activity.
Submit hosts.
Submit hosts allow for submitting and controlling batch jobs only. In particular, a user who is
logged into a submit host can use 'qsub' to submit jobs, can use 'qstat' to control the job
status, or can run the graphical user interface 'qmon'.
setenv SGE_ROOT < Your Target Directory > (or export SGE_ROOT=< Your Target
Directory > if your shell is sh, bash, ksh)
mkdir $SGE_ROOT
scripts/distinst -all -local -noexit
cd $SGE_ROOT
./install_qmaster
Here we can ask all question with default answers, except that three:
Do you want to install Grid Engine
under an user id other than >root< (y/n) [y] >> n
On WN:
setenv SGE_ROOT < Your Target Directory > (or export SGE_ROOT=< Your Target
Directory > if your shell is sh, bash, ksh)
mkdir $SGE_ROOT
scripts/distinst -all -local -noexit
cd $SGE_ROOT
./install_qmaster
Here we can ask all question with default answers, except that three:
Do you want to install Grid Engine
under an user id other than >root< (y/n) [y] >> n
The administrator can choose between install CREAM and GE Qmaster in the same physical
machine or install CREAM and GE Qmaster in different physical machines. It is recommended
install the CREAM and GE Qmaster in different machines in order to do not mix both services.
Basically, the process consists in installing the necessary RPMs and configures with YAIM
[R8] the services. The detailed installation instructions can be found on link [R7].
Have the control of the GE Qmaster (the administrator can do changes on the GE
configuration):
Make sure that in the Qmaster configuration it is present the following setting:
“execd_params INHERIT_ENV=false”. This setting allows propagating the environment
of the CE into the WN. It should be there by default if it is used the “sge-server yaim
plugin”. If not, it can be added using:
The CREAMCE should be installed in a separate node from the GE QMASTER machines in order
to do not mix both services and the same GE software version should be used in both cases.
However, the administrator can choose between install CREAM-CE and GE Qmaster in the same
physical machine or install CREAM-CE and GE Qmaster in different physical machines:
Configure appropriate queues, vo's and users for your batch system, you can see
section 5. CONFIGURING GE on CE to do it.
Set the following variables relevant in the site-info.def file:
Set the following variables relevant in the site-info.def file (be also sure that you include
the VOs and QUEUES information which you want to setup):
Configure CREAM with appropiate vars as is described in [R18] link to run yaim:
>/opt/glite/yaim/bin/yaim -c -s siteinfo/site-info.def -n MPI_CE
If you have control of the GE Qmaster, make sure that in the Qmaster configuration you
have the following setting: execd_params INHERIT_ENV=false. This setting allows
propagating the environment of the submission machine (CE) into the execution machine
(WN). It can be implemented in GE QMASTER using:
>qconf –mconf
If you are using a GE installation shared via NFS or equivalent, and you do not want to
change it with YAIM, you must set up the following variable in your site-info.def file. The
default value for this variable is "no", which means that GE software WILL BE configured
by YAIM.
SGE_SHARED_INSTALL=yes
To complete the installation can be following the steps explained in the previous
paragraph “Configure CREAM-CE and SGE Qmaster in different physical
machines”.
4.4. STARTING GE
To start GE on the Master Host (CE), use the following command :
> /etc/init.d/sgemaster start
This command starts the scheduler 'sge_schedd' and the qmaster 'sge_qmaster'.
This command starts the execution daemon 'sge_execd', in order to be able to submit jobs
to this node
5. CONFIGURING GE ON CE
Configuring the batch system, we will first consider the "Global Cluster Configuration" setup and
the "Scheduler Configuration" setup. These configurations are modified on the "Master Host".
GE provides a GUI configuration tool called 'qmon', it can be launched from the command line
executing ‘qmon’ command. In this document we will use the command-line based methods.
Qmon main control window:
The command 'qconf' displays an editor for each one of its options. The editor is either the default
'vi' editor or an editor corresponding to the EDITOR environment variable.
The "Global Cluster Configuration" settings may be displayed using the command 'qconf
-sconf'. These settings may be modified using the command 'qconf -mconf'.
Below is a sample of a configuration used on testbed site "CESGA-SA3". We have included some
comments where we though the variable settings needed some explanation.
#global:
execd_spool_dir /usr/local/ge2011.11/default/spool # Directory in which we can see the
messages
mailer /bin/mail
xterm /usr/bin/X11/xterm
load_sensor none
prolog none # The exec path of a shell script that is started before execution of GE jobs
epilog none # The exec path of a shell script that is started after execution of GE jobs
shell_start_mode posix_compliant
login_shells sh,bash,ksh,csh,tcsh # The shells which it offers
min_uid 0
min_gid 0
user_lists none # Users to whom we allow to run jobs in this cluster
xuser_lists none # Users to whom we deny to run jobs in this cluster
projects none
xprojects none
enforce_project false
enforce_user auto
load_report_time 00:00:40
max_unheard 00:05:00
reschedule_unknown 02:00:00
loglevel log_warning # Form in which it will be shown logs on the messages
administrator_mail none
set_token_cmd none
pag_cmd none
token_extend_time none
shepherd_cmd none
qmaster_params none
execd_params none
reporting_params accounting=true reporting=false \
flush_time=00:00:15 joblog=false sharelog=00:00:00
finished_jobs 100 # The number of finished Jobs which we'll show with ‘qstat -s z –u ‘*’’
gid_range 20000-20100
qlogin_command builtin
qlogin_daemon builtin
rlogin_command builtin
rlogin_daemon builtin
rsh_command builtin
rsh_daemon builtin
max_aj_instances 2000
max_aj_tasks 75000
max_u_jobs 0
max_jobs 0
max_advance_reservations 0
auto_user_oticket 0
auto_user_fshare 0
auto_user_default_project none
auto_user_delete_time 86400
delegated_file_staging false
reprioritize 0
jsv_url none
jsv_allowed_mod ac,h,i,e,o,j,M,N,p,w
The "Scheduler Configuration" settings may be displayed using the command 'qconf -ssconf'
and these settings may be modified using the command 'qconf -msconf'.
Notes: After modifying the configuration of the Scheduler or the Global Cluster it is not necessary
to restart anything, it is only necessary to worry about what changes are the best for your site.
The detailed documentation about these parameters can be found on the following link [R13] in
paragraphs:
The "POLICY_HIERARCHY" parameter can be a up to 4 letter combination of the first letters of the
4 policies S(hare-based), F(unctional), D(eadline) and O(verride). Basically the share-based
policy is equivalent to a fair-share policy that takes into account previous usage of the resources (in
GE terminology a share-tree policy), the functional policy is a fair-share policy that does not
consider historical information, the deadline policy takes into account the deadline value of the jobs
(if deadlines are set by the users), and the override policy allows a site admin to dynamically adjust
the priorities of the jobs in the system. You can combine all these policies and create your own
policy.
In our case the value OFS means that the override policy takes precedence over the functional
policy, which finally influences the share-based policy.
Then, we can assign this policy to a user or group. The final policy applied depends also on different
weight values that we can assign on the Scheduler Configuration:
Scheduling algorithms:
weight_user
weight_department
weight_job
weight_tickets_functional
The maximum number of functional tickets available for distribution by Grid Engine. By
default is indefinite.
weight_tickets_share
The maximum number of share based tickets available for distribution by Grid Engine. By
default is indefinite
share_override_tickets
If set to "true" or "1", override tickets of any override object instance are shared equally
among all running jobs associated with the object
share_functional_shares
If set to "true" or "1", functional shares of any functional object instance are shared among all
the jobs associated with the object
weight_ticket
The weight applied on normalized ticket amount when determining priority finally used
weight_waiting_time
weight_deadline
The weight applied on the remaining time until a jobs latest start time
weight_urgency
The weight applied on jobs normalized urgency when determining priority finally used
GE uses a weighted combination of these three policies to implement automated job scheduling
strategies:
Share-based
Functional
Override
The Tickets are a mixture of these three policies. Each policy has a pool of tickets and the Tickets
weight the three policies.
The detailed documentation about "Scheduling Policies" can be found on link [R13].
There are two parameters that can be configured on the configurations of the queues:
Prolog
Epilog
The resource quota can be added creating it first in a file and then add this file with the respective
GE command or edit it directly using a editor like VIM with the respective GE command:
We creating the following Resource Quota rule for one of our CEs in production:
[root@svgd ~]# qconf -srqsl
maxujobs_svgd
The "@GRID_group" are users groups lists which we are defined previously. The "@all_X86",
"@nodos_X86_1GB" and "@nodos_X86_1GB" are hosts groups lists which we are defined
previously.
In the example:
limit users {*,!orballo,!@GRID_ops,!@GRID_opssgm} hosts \
compute-3-38.local to s_vmem=512M
We are saying that only can run jobs which ask a maximum of 512 Megabytes on node
"compute-3-38.local", this rule is applied for all users "*", excepts "orballo" user and
"GRID_ops", "GRID_opssgm" users group lists.
In the example:
limit users @GRID_lhcbprd hosts @all_X86 to num_proc=26
We are saying that the users defined on "GRID_lhcbprd" list only occupy a maximum of
twenty-six processors on the hosts defined in "all_X86" list, where "all_X86" list groups are
eighty nodes with one processor each one, in other words, one user defined on
"GRID_lhcbprd" list could occupy twenty-six of these eighty nodes.
In the example:
limit users {*,!orballo} hosts @nodos_X86_2GB to num_proc=4
We are saying all users '*' excepts "orballo" user only can occupy a maximum of four
processors on hosts defined on "nodos_X86_2GB" list, where "nodos_X86_2GB" list
groups are thirty nodes with one processor each one, in other words, a user different from
"orballo" user only could occupy four of these thirty nodes.
Note: It can be found detailed information on link [R16]. It also can be found information about how
to create host groups or user lists in section “6 Useful admin command”.
The new master host must have read/write access to the qmaster spool directory and
common directory ($SGE_ROOT/default) as does the current master. For example, in
CESGA case, we mounted the "$SGE_ROOT/default" directory from the master host in
the shadow qmaster host.
We should give permission on the master host to the machine where will be running the
shadow qmaster in order to it can acts like administrative and submit host, it is necessary
for the shadow qmaster host can do the same functions that the master host.
Starting the qmaster shadow on the qmaster shadow host. For example:
>$SGE_ROOT/default/common/sgemaster -shadowd
starting sge_shadowd
This means that the shadow qmaster daemon is listening on the shadow qmaster host and
if for any reason the GE qmaster stops on the master host, for example because the
master host is being restarted, the GE qmaster would be started on the shadow qmaster
host
How to force the migration of the GE qmaster to the shadow qmaster host (it must be a node
in shadow_masters file):
>$SGE_ROOT/default/common/sgemaster -migrate
Example:
>$SGE_ROOT/default/common/sgemaster -migrate
shutting down qmaster on host "svgd" ...
starting sge_qmaster
This means that the GE qmaster is stopped on the master host to be started on the
shadow qmaster host.
> /etc/init.d/sgemaster
(no parameters): start qmaster and execution daemon if applicable
"start" start qmaster and scheduler
"stop" shutdown local Grid Engine processes and jobs
"-qmaster" only start/stop qmaster and scheduler (if applicable)
>/etc/init.d/sgeexecd
(no parameters): start sgeexecd
"start" start sgeexecd
"stop" shutdown local Grid Engine processes and jobs
"softstop" shutdown local Grid Engine processes (no jobs)
Notes: If we stop the "qmaster" and the "scheduler" on the Master Host (CE), we don't see the
jobs running with 'qstat' because the GE commands are not available when "qmaster" is stopped
(there is no connection between the Master Host and GE through "qmaster"), but when we restart
them, we see the jobs running again, and they finished without problems. However, if we stopped
the "sge_execd" on the Execution Host (WN), when we restart it the job is killed although if we
stopped the "sge_execd" with the option "sofstop" in principle the job is not killed.
Managers:
Operators:
Operators can perform many of the same commands as managers, except that operators
cannot add, delete, or modify queues.
Owners:
Queue owners are restricted to suspending and resuming, or disabling and enabling, the
queues that they own.
Users:
Users have certain access permissions, but they have no cluster or queue management
capabilities.
The modification in the GE configuration is done by a “Manager” that is the user who has
permissions for modify these configurations, by default this user is root, but we can use another
user who we have created in the machine for these aims and the which is configured in one user
access list:
To add one manager :
> qconf -am user-name #Add one or more users like manager
To add/delete a administrative host, i.e. a host from which we can execute 'qconf'
> qconf -ah #Add
> qconf -dh #Delete
To add/delete a submit host, i.e. a host from which we can execute 'qsub':
To see the jobs which have finalized for one user with the previous options, i.e.:
> qstat -s z -u user
It can also show the state of error “E” or Alarm “A” for the jobs and queues:
a) Case Error: To clean the state of Error for the queue 'qmod -cq queue' or for the
job 'qmod -cj jobID'
b) Case Alarm: In principle nothing can be done, just wait (normally is produced by a
high load in the execution node)
> qconf -aq queue (the argument queue is a queue which is created and we use as
template)
To edit a queue:
Notes: Resource attribute definitions are stored in an entity called the grid engine system
"complex". Users can request "resource attributes" for jobs with 'qsub -l'. The "complex" builds
the framework for the system's "consumable resources" facility. The resource attributes that are
defined in the complex can be attached to the global cluster, to a host, or to a queue instance. The
attached attribute identifies a resource with the associated capability.
> qstat -j
Sample output:
[root@sa3-ce root]# qstat -j
[ .... ]
queue instance "lhcb@sa3-wn001.egee.cesga.es" dropped because it is
overloaded: np_load_avg=2.380000 (= 1.450000 + 0.50 * 1.860000 with nproc=1) >= 1.75
queue instance "ops@sa3-wn001.egee.cesga.es" dropped because it is
overloaded: np_load_avg=2.380000 (= 1.450000 + 0.50 * 1.860000 with nproc=1) >= 1.75
Jobs can not run because no host can satisfy the resource requirements
1337760
There could not be found a queue instance with suitable access permissions
1337968
Jobs can not run because queue instance is not in queue list of PE
1337968
Jobs can not run because available slots combined under PE are not in range of job
1337968, 1337970
Jobs can not run because queue instance is not of type batch or transfer
1338110
Jobs can not run because the resource requirements cannot be satisfied
1338110
Notes: Also to see the reasons by which a determined job not enters in execution or if the
job is running to see the time execution, memory (how much memory is consuming).
The 'qacct' command can be used to obtain varying degrees of information about a job, for
example, the queue name and the host the job was executed on, the job status of the
finished job, how long the job took and the maximum amount of memory used.
In the output of this command, we should watch the variables 'exit_status' and 'failed'. If
these variables have a value different from 0 it is signal that the job had some error or there
was some internal problem in GE. This is detailed in the section “11 Troubleshooting".
Sample output:
[root@sa3-ce root]# qacct -j 41711
==============================================================
qname cesga
hostname sa3-wn001.egee.cesga.es # The host the job was executed on
group cesga
owner esfreire
project NONE
department defaultdepartment
jobname STDIN
jobnumber 41711
taskid undefined
account sge
priority 19
qsub_time Fri Jun 15 13:22:39 2007
start_time Fri Jun 15 13:22:54 2007
end_time Fri Jun 15 13:25:55 2007
granted_pe NONE
slots 1
failed 0 # If it is different from 0 it usually indicates a failure in the configuration
of SGE
exit_status 0 # Exit code for the job, if is different from 0 it usually indicates
a job failure
ru_wallclock 181 # How long the job took
ru_utime 0
ru_stime 1
ru_maxrss 0
ru_ixrss 0
ru_ismrss 0
ru_idrss 0
ru_isrss 0
ru_minflt 12271
ru_majflt 14128
ru_nswap 0
ru_inblock 0
ru_oublock 0
ru_msgsnd 0
ru_msgrcv 0
ru_nsignals 0
ru_nvcsw 0
ru_nivcsw 0
cpu 1
mem 0.001
io 0.000
iow 0.000
maxvmem 20.379M # The maximum amount of memory used.
These parameters are kept in the accounting log file on the Master Host:
$SGE_ROOT/default/common/accounting
The GE batch log file has a simple format using “:” as a field separator. These are the fields
that you can find in the accounting log file:
qname:hostname:group:owner:jobname:jobnumber:account:priority:qsub_time:start_time:en
d_time:failed:exit_status:
ru_wallclock:ru_utime:ru_stime:ru_maxrss:ru_ixrss:ru_ismrss:ru_idrss:ru_isrss:
ru_minflt:ru_majflt:ru_nswap:ru_inblock:ru_oublock:ru_msgsnd:ru_msgrcv:ru_nsignals:
ru_nvcsw:ru_nivcsw:project:department:granted_pe:slots:UNKNOWN:cpu:mem:
UNKNOWN:command_line_arguments:UNKNOWN:UNKNOWN:maxvmem_bytes
The accounting file format is documented in the GE man page [R13] in paragraph 5, section
"Accounting":
> qacct
Sample output:
[root@sa3-ce root]# qacct
To report all jobs that a given user has run during a certain time:
> qacct -d 10 -j -o user # It'll show all jobs finished for the user in the 10 last days and the
output for each job
To delete a jobID:
To enable/disable a queue:
Note: When we enable a queue, we allow enter jobs in that queue for its execution.
When we disable a queue and on that queue there are jobs running we don't cancel them,
the jobs finish its execution correctly, but it would not enter more jobs in that queue.
Note: The jobs in state of hold don't enter in execution. It is useful, for example if there are
some jobs that we don't want that they enter in execution, we put them in hold state.
To give more priority to a jobId or to the jobs of an user which are in queue
GE allows submitting together a collection of similar jobs using only one job script. The scheduler
executes each job in the array when resources are available. To do this with use the Array job
option.
Some advantages of using array jobs are:
You can keep track of the status of all the jobs in the array using only one job id.
If you submit an array job, and realize you’ve made a mistake, you only have one job id to
'qdel', instead of figuring out how to remove 100s of them.
The memory consumption is much lower on the Master Host compared to the situation when
all the jobs run independently
For example, we can need run a large number of jobs, and they are largely identical in terms of the
command to run. In order to do this, you could generate many shell scripts, and submit them to the
queue, but instead this, you can use the job array option. For this you must execute the 'qsub' with
the option:
-t min-max:interval
The -t option defines the task index range, where min is the lower index, max the higher index and
interval the interval of the jobs.
GE runs the executable once for each number specified in the task index range and it generates the
variable, $SGE_TASK_ID, which we can use on the executable in order to determine the task
number each time it is run. It can select input files or other options to run according to its task index
number. A very simple example:
Supposing that we have two inputs in /opt/exp_soft/cesga/ where job1.in and job2.in contain a
column of numbers, and we want to read each number of inputs both, we can do a script like the
following:
jobArray.sh
#!/bin/bash
do
[ ... ]
cat jobArray.sh.o43447.2
[ ... ]
In order to handle parallel jobs running, GE provides a flexible and powerful interface. For example
we can use one of the most known “Message Passing Environment” MPI on GE. With the purpose
of doing this possible, we should:
MPI support for the lcg-CE with GE is still under development, however, it is possible configure MPI
in a lcg-CE supporting GE in production on your own risk following the instructions on link [R18]
Testing:
Submitting a job directly to the GE batch system:
Note: In this example, it is requested 2 nodes with one processor each one
test.sh content:
#!/bin/bash
MPI_FLAVOR=OPENMPI
MPI_FLAVOR_LOWER=`echo $MPI_FLAVOR | tr '[:upper:]' '[:lower:]'`
export X509_USER_PROXY=/tmp/x509up_u527
export I2G_TMP=/tmp
export I2G_LOCATION=/opt/i2g
#export I2G_OPENMPI_PREFIX=/opt/i2g/openmpi
export I2G_MPI_TYPE=openmpi
export I2G_MPI_FLAVOUR=openmpi
export I2G_MPI_APPLICATION_ARGS=
export I2G_MPI_NP=2
export I2G_MPI_JOB_NUMBER=0
export I2G_MPI_STARTUP_INFO=/home/glite/dteam004
export I2G_MPI_PRECOMMAND=
export I2G_MPI_RELAY=
export I2G_MPI_START_DEBUG=1
export I2G_MPI_START_VERBOSE=1
$I2G_MPI_START
mpi-start-wrapper.sh content:
[esfreire@ui mpi_egee]$ cat mpi-start-wrapper.sh
#!/bin/bash
# Pull in the arguments.
MY_EXECUTABLE=`pwd`/$1
MPI_FLAVOR=$2
# Touch the executable. It exist must for the shared file system check.
# If it does not, then mpi-start may try to distribute the executable
# when it shouldn't.
touch $MY_EXECUTABLE
chmod +x $MY_EXECUTABLE
# If these are set then you will get more debugging information.
#export I2G_MPI_START_VERBOSE=1
#export I2G_MPI_START_DEBUG=1
# Invoke mpi-start.
$I2G_MPI_START
If we want that the jobs of a certain VO to have more priority at the time of entering execution, we
can give it with the command 'qconf -mu VO_name' on the parameters fshare (The current
functional share of the department.) and oticket (the amount of override tickets currently assigned
to the department). Before assigning these two parameters we must configure the parameter type
as "ACL DEPT" or otherwise it will not let assign priorities.
In the next example, first we show a list of all groups created, there we see the departments
created. Then we edit the Ops group, in order to the jobs sent to VO Ops have more priority than
other jobs. It can be established priorities to all the VOs, and to give them for example a value
between 0 (low priority/value by default) and 9000 (high priority) and so you can establish
priorities based on your site. Also if we want to give more priority to a user, we can create one
"userlist" with that user, and then give him more priority on that "userlist".
With this configuration, each time that a job fails, we will receive an e-mail with the output of error
for the job. We are allowing delete jobs with 'qdel -f', this is useful when the jobs are disappointed.
Like we have 80 nodes, we only allow that one user only can have 80 jobs in queue, the user will
not be able send more of 80 jobs.
An optimized way for the Scheduler Configuration, it could be:
In order to give more priority to the jobs of the "dteam" and "ops" VOs, and to try that the jobs of
these VOs have the least time possible of delay to enter to execution, we always add an additional
slot reserved for Ops and dteam.
We can allow that in a node run at the same time a job of another VO and a job of dteam/ops
because these jobs consume neither much Memory nor much CPU.
For example:
Rest of queues:
Note: In this case we played with two slots, because we suppose that these nodes only have a
processor each one.
11. TROUBLESHOOTING
We can know if a job has finished correctly executing the command 'qacct -j jobid_of_the_job'. On
the output of this command, we must watch the variables 'exit_status' and 'failed'. If these
variables have a value different from 0 it is signal that the job had some error or there was some
internal problem in GE, for example on the epilog script or node on which ran the job has some
problem. If we see that these values are different from 0, we can look for tracks on that it could be
failing in the following sites:
Important logs that we must watch, for example we can looking for by jobid of the job:
Qmaster's logs:
Qmaster's logs:
Besides, we can check the exit_status obtained and see its meaning in the manual “N1 Grid
Engine User Guide" [R19] and we can also subscribe to the mailing list where we send our
consultations.
It is possible to be subscribed to the list on link [R20].
It can be found more information about the error messages and troubleshooting on link [R21]
12. COMMANDS QUICK REFERENCE
TARGET ACTION CMD. SWITCH TARGET ACTION CMD. SWITCH
SCHEDULER SHOW qconf -sss ADMIN HOST CREATE qconf -ah name