-
Grid Cluster Configuration
-
Grid Clusters have capabilities beyond simple grid workstations that need to be
configured. Most prominent is the existence of a local queuing system
distributing tasks to a number of compute nodes. Fortunately Globus handles
the details about howto access the queuing system as long as you specify the type
, also known as factory type, correctly. Currently
supported by GEO600 are PBS, SGE,
CCS, LSF and Condor.
-
run gridgk01.racf.bnl.gov {
GEO600_HOME = GEO600-devel
FT = Condor
FT_FORK = YES
GRAMWS_PORT = 9443
}
-
Some Grid Clusters may provide several queues for you to choose from. You can
tell GEO600 to use a specific queue instead of the default queue by providing its name using the
keyword QUEUE:
-
run othello.zih.tu-dresden.de {
GEO600_HOME = GEO600-devel
FT = PBS
FT_FORK = NO
QUEUE = gridbatch
}
-
At this point it will be possible to submit one job to the grid cluster using the default values:
-
JOBS_RUNNING_MAX = 1 : maximum number of jobs allowed to run simultaneously
JOBS_QUEUE_MAX = 1 : maximum number of jobs allowed to be pending in queue simultaneously
JOBS_QUEUE_MIN = 0 : minimum number of jobs pending before new jobs will be submitted
-
Here JOBS_RUNNING_MAX acts as an upper limit regarding the
number of jobs running simultaneously at the resource. This is a hard limit that should never be
exceeded. Therefor the sum of the number of jobs currently running and the number of jobs pending
will never be greater than this limit.
-
JOBS_QUEUE_MAX acts as an upper limit regarding the
number of jobs pending simultaneously in the queue. It takes care that the grid cluster is filled
only slowly with GEO600 tasks and assures a fair use of the resource at the
same time.
-
JOBS_QUEUE_MIN acts as a lower limit regarding the
number of GEO600 tasks pending in the queue. New GEO600 tasks will only be submitted if the number
of jobs pending falls below this limit. As an illustrating example take a look at the grid
resource configuration below:
-
run gridgk01.racf.bnl.gov {
GEO600_HOME = GEO600-devel
FT = Condor
FT_FORK = YES
GRAMWS_PORT = 9443
TIMEOUT = 0.10:00:00
JOBS_RUNNING_MAX = 700
JOBS_QUEUE_MAX = 64
JOBS_QUEUE_MIN = 32
}
-
The number of JOBS_RUNNING_MAX is based on the observation that this resource
is capable of supporting one user running on 700 cores simultaneously.
-
Job submission to the resource begins whenever the number of GEO600 tasks pending in queue falls
below the limit JOBS_QUEUE_MIN. In this case tasks will be submitted till the
number of tasks pending either reaches JOBS_QUEUE_MAX or the sum of tasks
pending and running reaches JOBS_RUNNING_MAX.
-
It is very easy to submit hundreds of GEO600 tasks to a grid resource. Be aware that it is not as
easy to stop these tasks once submitted. Even more difficult might be to explain the situation
to the resource administrator and other users confronted with way too many GEO600 tasks in queue.
Make sure that you start with reasonable small limits for these settings and that you increase
them slowly, watching carefully how the resource is able to keep up! If unsure contact your
resource administrator asking for reasonable limits on the resource utilization!
-
During the execution of GEO600 each task approximately requires
100MB of disk space for its runtime directory. By default
it will be located below your GEO600 installation path in GEO600-devel/tasks. With a large
number of GEO600 tasks running simultaneously on the grid cluster, the disk space used in
GEO600-devel/tasks may grow beyond 50GB easily. If sufficient disk
space cannot be provided at this location, it is possible to use disk space on the compute nodes
for the same purpose by using the keyword USE_TMP
-
run gridgk01.racf.bnl.gov {
GEO600_HOME = GEO600-devel
FT = Condor
FT_FORK = YES
GRAMWS_PORT = 9443
TIMEOUT = 0.10:00:00
JOBS_RUNNING_MAX = 700
JOBS_QUEUE_MAX = 64
JOBS_QUEUE_MIN = 32
USE_TMP = YES
}
-
The runtime directory of the task will then be located below $TMP/$LOGIN or in
/tmp/$LOGIN if $TMP was not set. If neither /tmp
nor $TMP exist the default location GEO600-devel/tasks will be
used.
-
Upon finishing the execution of a GEO600 task, the runtime directory will be archived and written
to GEO600-devel/tasks. There is no workaround for using this location, since Globus
will not be able to access the local filesystem on compute nodes to stage out the job archive.
-
This workaround comes with a serious drawback. In general you will not be able to access the
compute nodes and neither their local filesystem. In case of problems you will not be able to
take a look at the runtime directory and also not be able to cleanup. If unsure ask the grid
resource administrator for permission to use /tmp or $TMP!