To perform your program on our large-scale computer systems, you need to submit a job request to the "scheduler" from a Frontend node. The submitted job request is checked and scheduled by a scheduler based on the requested resources, the priority of other job requests, and the utilization status of our large-scale computer systems. We have adopted this style of batch processing because our systems need to be shared by many users.
The above figure illustrates the mechanisms of the scheduler. The scheduler receives job requests from users and allocates enough computational resources to satisfy the users' requests based on information on the CPU utilization of the system, etc. In order to manage multiple job requests from users, the scheduler stores them to a "queue" and decides the execution order of the job requests. When a job request finally reaches its turn, it is "dispatched" to actual computational resources and then its computation starts. When the computation completes, the computation result is delivered to users via the scheduler.
Queues in the scheduler are set up by administrators based on their consideration of maximum available resources such as maximum CPU number, job execution time, and memory size. In our Center, several types of queues are prepared.
When you submit a job, you need to
1. make a job script file
2. submit a job request
Making a job script file
As described above, the scheduler controls the execution order of the job requests. The job script file is required to describe the user's request for computational resources. As shown in the example below, users need to specify the queue for submission, the maximum number of CPU required, maximum job execution time, the name of executable module, and the working directory in their script file.
#PBS -q ACE
# ↑ (name of queue to submit a request)
#PBS -l elapstim_req=5:30:00,memsz_job=10GB
#PBS -M firstname.lastname@example.org
# ↑ (your e-mail address)
#PBS -m b
# ↑ (e-mail when your request job starts)
# ↑ (change working directory)
# ↑ (program execution)
How to describe a job script file is detailed below:
Job request to job scheduler
You can send a job request to the scheduler using the qsub command as follows:
% qsub [script filename]
You can check the status of your job using the qstat command as follows: