techstaff:slurm
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
techstaff:slurm [2016/01/11 08:13] – [sbatch] kauffman | techstaff:slurm [2017/08/31 15:10] – kauffman | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== DRAFT | Peanut Job Submission Cluster ====== | + | ===== Notice |
+ | **All is back to normal. Please submit jobs from linux1,2,3. Email techstaff@cs.uchicago.edu if you find that something is amiss.** | ||
- | We are currently **alpha** testing and gauging user interest in a cluster of machines that allows for the submission of long running compute jobs. Think of these machines as a dumping ground for discrete computing tasks that might have been rude or disruptive to execute on the main (shared) shell servers (i.e., linux1, linux2, linux3). | + | The SLURM cluster will become unavailable starting 2017-08-22 for an upgrade. Normal service should resume on 2017-08-25. Please check back here for status updates. |
+ | |||
+ | **2017-08-22 1800**: Main cluster upgraded. You can try to use it now but I can't guarantee that I won't kill your job tomorrow or Firday. | ||
+ | |||
+ | **2017-08-23 1345**: GPU servers upgraded and added back to the cluster. They may be missing some software that was not automatable at previous time of installation. Send me an email if you find anything missing. | ||
+ | |||
+ | We still run systems with Ubuntu 14.04 installed. As of right now these systems cannot submit jobs to the cluster. This is on purpose. The slurm version jump between 14.04 and 16.04 was so huge that this was unavoidable. This means you should prefer to use linux.cs.uchicago.edu or any CS machine that run Ubuntu 16.04. | ||
+ | |||
+ | **2017-08-24**: | ||
+ | ====== Peanut Job Submission Cluster ====== | ||
+ | |||
+ | We are currently **alpha** testing and gauging user interest in a cluster of machines that allows for the submission of long running compute jobs. Think of these machines as a dumping ground for discrete computing tasks that might be rude or disruptive to execute on the main (shared) shell servers (i.e., linux1, linux2, linux3). | ||
For job submission we will be using a piece of software called [[http:// | For job submission we will be using a piece of software called [[http:// | ||
Line 37: | Line 49: | ||
* 64gb RAM | * 64gb RAM | ||
* 2x 500GB SATA 7200RPM in RAID1 | * 2x 500GB SATA 7200RPM in RAID1 | ||
- | |||
- | To better manage the cluster we have virtualized the job submission nodes and give them all resources of the hardware. So, the actual resources you can consume on any one node is: | ||
- | * 14 Cores, 14 threads | ||
- | * 62GB RAM | ||
==== Storage ==== | ==== Storage ==== | ||
Line 88: | Line 96: | ||
| **debug** | The partition your job will be submitted to if none is specified. The purpose of this partition is to make sure your code is running as it should before submitting a long running job to the general queue. | | | **debug** | The partition your job will be submitted to if none is specified. The purpose of this partition is to make sure your code is running as it should before submitting a long running job to the general queue. | | ||
| **general** | All jobs that have been thoroughly tested can be submitted here. This partition will have access to more nodes and will process most of the jobs. If you need to use the '' | | **general** | All jobs that have been thoroughly tested can be submitted here. This partition will have access to more nodes and will process most of the jobs. If you need to use the '' | ||
+ | | **gpu** | Contains servers with graphics cards. As of May 2016 there is only one node containing a Tesla M2090. You will be forced to use this server exclusively for now. Please keep your time in interactive mode to a minimum.| | ||
====== Job Submission ====== | ====== Job Submission ====== | ||
Line 109: | Line 117: | ||
===== Usage ===== | ===== Usage ===== | ||
Below are some common examples. You should consult the [[http:// | Below are some common examples. You should consult the [[http:// | ||
+ | |||
+ | === Default Quotas === | ||
+ | By default we set a job to be run on one CPU and allocate 100MB of RAM. If you require more than that you should specify what you need. | ||
=== Exclusive access to a node === | === Exclusive access to a node === | ||
Line 118: | Line 129: | ||
=== Sample script === | === Sample script === | ||
Make sure you create a directory in which to deposit the '' | Make sure you create a directory in which to deposit the '' | ||
- | mkdir -p $HOME/ | + | mkdir -p $HOME/ |
< | < | ||
Line 125: | Line 136: | ||
#SBATCH --mail-user=cnetid@cs.uchicago.edu | #SBATCH --mail-user=cnetid@cs.uchicago.edu | ||
#SBATCH --mail-type=ALL | #SBATCH --mail-type=ALL | ||
- | #SBATCH --output=/ | + | #SBATCH --output=/ |
- | #SBATCH --error=/ | + | #SBATCH --error=/ |
#SBATCH --workdir=/ | #SBATCH --workdir=/ | ||
#SBATCH --partition=debug | #SBATCH --partition=debug | ||
Line 132: | Line 143: | ||
#SBATCH --nodes=1 | #SBATCH --nodes=1 | ||
#SBATCH --ntasks=1 | #SBATCH --ntasks=1 | ||
+ | #SBATCH --mem-per-cpu=500 | ||
#SBATCH --time=15: | #SBATCH --time=15: | ||
Line 142: | Line 154: | ||
Make sure to replace all instances of the word '' | Make sure to replace all instances of the word '' | ||
+ | === Submitting job script === | ||
+ | Using the above example you will want to place your tested code into a file. ' | ||
+ | < | ||
+ | sbatch hostname.job | ||
+ | </ | ||
+ | |||
+ | You can then check the status via squeue or see the output in the output directory ' | ||
==== srun ==== | ==== srun ==== | ||
Used to submit a job to the cluster that doesn' | Used to submit a job to the cluster that doesn' | ||
Line 220: | Line 239: | ||
| error: Unable to allocate resources: More processors requested than permitted | It usually has **nothing** to do with priviledges you may or may not have. Rather, it usually means that you have allocated more processors than one compute node actually has. | | | error: Unable to allocate resources: More processors requested than permitted | It usually has **nothing** to do with priviledges you may or may not have. Rather, it usually means that you have allocated more processors than one compute node actually has. | | ||
+ | ====== Using the GPU ====== | ||
+ | ===== Paths ===== | ||
+ | You will need to add the following to your $PATH and $LD_LIBRARY_PATH. | ||
+ | |||
+ | export PATH=$PATH:/ | ||
+ | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH=/ | ||
+ | |||
+ | |||
+ | ===== Example ===== | ||
+ | This sbatch script will get device information from the installed Tesla gpu. | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | #SBATCH --mail-user=cnetid@cs.uchicago.edu | ||
+ | #SBATCH --mail-type=ALL | ||
+ | #SBATCH --output=/ | ||
+ | #SBATCH --error=/ | ||
+ | #SBATCH --workdir=/ | ||
+ | #SBATCH --partition=gpu | ||
+ | #SBATCH --job-name=get_tesla_info | ||
+ | |||
+ | export PATH=$PATH:/ | ||
+ | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH=/ | ||
+ | |||
+ | cat << EOF > / | ||
+ | #include < | ||
+ | |||
+ | int main() { | ||
+ | int nDevices; | ||
+ | |||
+ | cudaGetDeviceCount(& | ||
+ | for (int i = 0; i < nDevices; i++) { | ||
+ | cudaDeviceProp prop; | ||
+ | cudaGetDeviceProperties(& | ||
+ | printf(" | ||
+ | printf(" | ||
+ | printf(" | ||
+ | | ||
+ | printf(" | ||
+ | | ||
+ | printf(" | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | EOF | ||
+ | |||
+ | / | ||
+ | /tmp/a.out | ||
+ | rm /tmp/a.out | ||
+ | rm / | ||
+ | </ | ||
+ | ==== Output ==== | ||
+ | STDOUT will look something like this: | ||
+ | < | ||
+ | cnetid@linux1: | ||
+ | Device Number: 0 | ||
+ | Device name: Tesla M2090 | ||
+ | Memory Clock Rate (KHz): 1848000 | ||
+ | Memory Bus Width (bits): 384 | ||
+ | Peak Memory Bandwidth (GB/s): 177.408000 | ||
+ | </ | ||
+ | STDERR should be blank. | ||
====== More ====== | ====== More ====== | ||
If you feel this documentation is lacking in some way please let techstaff know. Email [[techstaff@cs.uchicago.edu]], | If you feel this documentation is lacking in some way please let techstaff know. Email [[techstaff@cs.uchicago.edu]], |
/var/lib/dokuwiki/data/pages/techstaff/slurm.txt · Last modified: 2021/01/06 16:13 by kauffman