MOAB is a batch job scheduler for clusters. MOAB allows a user to set up a batch file describing how a program is to be executed in parallel. Once the batch file is submitted, it goes into a queue and MOAB waits for a time when the desired number of processors are available. At that time, MOAB allows the job to begin execution. On job completion, MOAB gathers the program output and returns it to the user. Until the job is complete, MOAB allows the user to query its current status.
A user typically logs into a special login node of the cluster, which is intended only for editing, file management, job submission, and other small interactive tasks.
The user wishes to run a parallel program on several processors of the cluster. To do so, the user must create an executable version of the program, write a suitable MOAB batch job script describing the job limits, and listing the commands to be executed, and then submit the script to MOAB for processing.
The job script can be thought of as consisting of two parts:
The user has two separate issues when preparing a first job script:
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
MPI, C programs which illustrate the use of the MPI application program interface for carrying out parallel computations in a distributed memory environment.
OPENMP, FORTRAN90 programs which illustrate the use of the OpenMP application program interface for carrying out parallel computations in a shared memory environment.
ENVIRON is a batch job script that simply queries the values of certain environment variables, in particular PBS_O_WORKDIR, which can be useful when trying to set up a program to run under the batch system.
HELLO is a batch job script that works with MOAB to compile and run a program. The script also "cleans up" after itself, that is, it discards the executable program once the job is complete.
HELLO_OPENMP illustrates the compilation and execution of a program that includes OpenMP directives.
HELLO_MPI illustrates the compilation and execution of a program that includes MPI directives.
You can go up one level to the EXAMPLES source code page.