Difference between revisions of "Running Jobs on HPC"
From Montana Tech High Performance Computing
(→Submitting jobs to compute nodes) |
|||
Line 48: | Line 48: | ||
Below is a script doing the same thing as in the above Matlab example. | Below is a script doing the same thing as in the above Matlab example. | ||
− | First go to the directory. (Or you can use the '''-d''' option to specify your working directory) | + | * First go to the directory. (Or you can use the '''-d''' option to specify your working directory) |
Note you are currently at the headnode, '''scyld'''. | Note you are currently at the headnode, '''scyld'''. | ||
<code>[YourUserName@scyld ~]$ cd test_code</code> | <code>[YourUserName@scyld ~]$ cd test_code</code> | ||
− | Create a text file with the name '''matlabjob.sh''' with the following contents: | + | * Create a text file with the name '''matlabjob.sh''' with the following contents: |
<code style=display:block>#!/bin/sh<br>#PBS -l nodes=1:ppn=1<br>#PBS -N MatlabJob<br>#PBS -S /bin/bash<br>#PBS -j oe<br>#PBS -l walltime=00:60:00<br><br>module load matlab<br>matlab -nodesktop -nosplash -r "test_code;quit;"</code> | <code style=display:block>#!/bin/sh<br>#PBS -l nodes=1:ppn=1<br>#PBS -N MatlabJob<br>#PBS -S /bin/bash<br>#PBS -j oe<br>#PBS -l walltime=00:60:00<br><br>module load matlab<br>matlab -nodesktop -nosplash -r "test_code;quit;"</code> | ||
− | Now submit this job: | + | * Now submit this job: |
<code>msub matlabjob.sh</code> | <code>msub matlabjob.sh</code> | ||
==Loading a module== | ==Loading a module== |
Revision as of 20:54, 24 September 2017
When you connect to hpc.mtech.edu, you will be logged into the "head" node, aka the "management" or "login" node. You can compile and test programs, submit jobs, and view results on the head node. Computationally intensive work should be done on the "compute" nodes. Jobs are assigned to the compute nodes through the Moab job scheduler. You can request a portion of a compute node, an entire node, or multiple nodes for distributed programs.
Primarily, there are two ways to run your jobs on the HPC:
- Running it interactively.
- Submitting it the hpc's job scheduler.
Both are done through the Moab commands. Below are just some basic examples, you can read more about Moab for detailed information.
Running an interactive job on compute nodes
After you are logged in, you will be at your home directory:
[YourUserName@scyld ~]$ ❚
You can do the following to start an interactive job
[YourUserName@scyld ~]$ msub -I
And you'll get similar output below:
qsub: waiting for job 4009.scyld.localdomain to start
qsub: job 4009.scyld.localdomain ready
[YourUserName@n0 ~]$❚
Note, the 4009 in the example above is just the job number, you'll get a different one. n0 is the name of a compute node. Depending on the cluster usage, you might get a different node, e.g. n2, n10, etc..
After the msub command, you'll notice 'scyld' changed into 'n0', which means you are now at compute node n0. One thing to note is that you'll be redirected to your home directory. You can now execute your calculations on the compute node.
Be default, the msub command in the example above will give your 1 process and 1 hour compute time. Again, refer to the Moab page for more options.
Below is an example of running Matlab script on a compute node.
[YourUserName@n0 ~]$❚
Load the Matlab module so that you can use it in your environment:
[YourUserName@n0 ~]$module load matlab
Go to the directory containing your Matlab script. (example here is a test.m script in the test_code directory)
cd test_code
Now run the Matlab command:
matlab -nodesktop -nosplash -r "test_code;quit;"
Submitting jobs to compute nodes
To do a job submission, you will first need to prepare a job submission script. The script is just a text file containing two parts: the job scheduler directives and the commands for your calculation. You can prepare this script file either on your local computer with any text editor you familiar with, or on the HPC directly. To do it on the HPC, you can use text editors like, vi or nano, that are available on the system.
Below is a script doing the same thing as in the above Matlab example.
- First go to the directory. (Or you can use the -d option to specify your working directory)
Note you are currently at the headnode, scyld.
[YourUserName@scyld ~]$ cd test_code
- Create a text file with the name matlabjob.sh with the following contents:
#!/bin/sh
#PBS -l nodes=1:ppn=1
#PBS -N MatlabJob
#PBS -S /bin/bash
#PBS -j oe
#PBS -l walltime=00:60:00
module load matlab
matlab -nodesktop -nosplash -r "test_code;quit;"
- Now submit this job:
msub matlabjob.sh