variables définies à la soumission d'un job¶
Plusieurs variables sont définis à la soumission du script :
Variable Name | Value at qsub Time |
---|---|
PBS_O_HOME |
HOME |
PBS_O_HOST |
Client host name |
PBS_O_LANG |
LANG |
PBS_O_LOGNAME |
LOGNAME |
PBS_O_PATH |
PATH |
PBS_O_MAIL |
|
PBS_O_SHELL |
SHELL |
PBS_O_WORKDIR |
Current working directory (for the qsub command) |
La variable PBS_O_WORKDIR
spécifie le répertoire de travail, c'est à dire le répertoire où le script a été lancé. Lors de la soumission, il faut ajouter cd $PBS_O_WORKDIR
pour se placer dans le répertoire de travail. Une seconde solution est d'utiliser l'option -d /scratch/homer
lors du qsub
You can use the env command (either in a PBS script or on the command line of a PBS interactive session) to find out what environment variables are set within a PBS job.
In addition to the PBS_xxxx variables, the following two are useful to know:
NCPUS
: Defaults to number of CPUs that you requested for the node.OMP_NUM_THREADS
: Defaults to 1 unless you explicitly set it to a different number. If your PBS job runs an OpenMP or MPI/OpenMP application, this variable sets the number of threads in the parallel region.FORT_BUFFERED
: Setting this variable to 1 enables records to be accumulated in the buffer and flushed to disk later.
Gestion des ressources¶
- Allocation
Resources are allocated to jobs both by explicitly requesting them and by applying
specified defaults. Jobs explicitly request resources either at the host level in
chunks defined in a selection statement, or in job-wide resource requests.Format:
qsub ... -l <resource name>=<value> <--- job-wide request
-l select=<chunks> <--- selection statementThe only resources that can be requested in chunks are host-level resources, such
as mem and ncpus. The only resources that can be in a job-wide request are server-
level or queue-level resources, such as walltime. An explicit resource request can
appear here, with this order of precedence:
- Requesting Resources in Chunks
A chunk declares the value of each resource in a set of resources which are to
be allocated as a unit to a job. All of a chunk must be taken from a single
vnode. A chunk request is a host-level request, and it must be for a host-
level resource. A chunk is the smallest set of resources that will be allo-
cated to a job. It is one or more resource_name=value statements separated by
a colon.
- Requesting Job-wide Resources :
A job-wide resource request is for resource(s) at the server or queue level.
This resource must be a server-level or queue-level resource. A job-wide
resource is designed to be used by the entire job, and is available to the
complex, not just one execution host.
- exemples de ressources in chunks (
man pbs_resources
)
mpiprocs Number of MPI processes for this chunk. Defaults to 1 if ncpus > 0, 0 otherwise. Can be requested only inside of a select statement. Type: integer. The number of lines in PBS_NODEFILE is the sum of the values of mpiprocs for all chunks requested by the job. For each chunk with mpiprocs=P, the host name for that chunk is written to the PBS_NODEFILE P times. Can be requested only inside of a select statement. ncpus Number of processors requested. Cannot be shared across vnodes. Can be requested only inside of a select statement. Consumable. Type: integer. ompthreads Number of OpenMP threads for this chunk. Defaults to ncpus if not speci- fied. Can be requested only inside of a select statement. Non-consum- able. Type: integer. Python type: int. For the MPI process with rank 0, the environment variables NCPUS and OMP_NUM_THREADS are set to the value of ompthreads. For other MPI pro- cesses, behavior is dependent on MPI implementation. See The PBS Profes- sional Administrator’s Guide. mem Amount of physical memory i.e. workingset allocated to the job, either job-wide or host-level. Consumable. Can be requested only inside of a select statement. Type: size.