Usage Guidelines

General guidelines

The head node, della, should be used for interactive work only, such as compiling programs, and submitting jobs as described below. No jobs should be run on the head node, other than brief tests that last no more than a few minutes. Where practical, we ask that you entirely fill the nodes so that CPU core fragmentation is minimized.

Access from the campus wireless network is restricted.

Job Scheduling

All jobs must be run through the Slurm scheduler on Della. If a job would exceed any of the limits below, it will be held until it is eligible to run. Jobs should not specify the qos into which it should run, allowing the Slurm scheduler to distribute the jobs accordingly.

Jobs will be assigned a quality of service (QOS) according to the length of time specified for the job:

QOS Time Limit Jobs per user Cores per User Cores Available
test 1 hour 2 jobs [30 nodes] 360 cores
short 24 hours 40 jobs 128 cores no limit
medium 72 hours 16 jobs 128 cores 432 cores
vlong 144 hours
(6 days)
10 jobs 160 cores 400 cores

 

Jobs are further prioritized through the Slurm scheduler based on a number of factors: job size, run times, node availability, wait times, and percentage of usage over a 30 day period (fairshare). Also, these values reflect the minimum limits in effect and the actual values may be higher. Please use the "qos" command to see the limits in effect at the current time.

 

Distribution of CPU and memory

There are 4288 processor cores available: della-r1c1n1 through della-r1c2n16 have 48 GB (4 GB memory per core, 64 nodes, 12 cores per node), della-r2c1n1 through della-r2c4n16 have 96 GB (8 GB memory per core, 64 nodes, 12 cores per node) and della-r3c1n1 through della-r4c4n16 have 128 GB (6.4 GB per core, 64 nodes, 20 cores per node). Lastly, della-r1c4n[1-16] have 128G and 28 cores per node.

The nodes are all connected with QDR Infiniband. The Ivybridge and Haswell nodes (with 20 cores) are connected with FDR Infiniband. So too are the Broadwell (28 core) nodes.

Appropriate File System Usage

/home (shared via NFS to all the compute nodes) is intended for scripts, source code, executables and small static data sets that may be needed as standard input/configuration for codes.

/scratch/network (shared via NFS to all the compute nodes) is intended for dynamic data that doesn't require high bandwidth i/o such as storing final output for a compute job. You may a create a directory /scratch/network/myusername, and use this to place your temporary files. Files are NOT backed up so this data should be moved to persistent storage once it is no longer needed for continued computation. Any files left here will be removed after 60 days.

/scratch/gpfs (shared via GPFS to all the compute nodes, 260 TB) is intended for dynamic data that requires higher bandwidth i/o. Files are NOT backed up so this data should be moved to persistent storage as soon as it is no longer needed for computations. Any files left here will be removed after 180 days.

/tigress (shared via GPFS to all TIGRESS resources, 2.5 PB) is intended for more persistent storage and should provide high bandwidth i/o (10 GB/s aggregate bandwidth for jobs across 16 or more nodes). Users are provided with a default quota of 512 GB when they request a directory in this storage, and that default can be increased by requesting more. We do ask people to consider what they really need, and to make sure they regularly clean out data that is no longer needed since this filesystem is shared by the users of all our systems.

/scratch (local to each compute node) is intended for data local to each task of a job, and it should be cleaned out at the end of each job. Nodes della-r1c1n1 through della-r1c4n16 have about 130G available while the others have about 1400G.

Running 3rd-Party Software

If you are running 3rd-party software whose characteristics (e.g., memory usage) you are unfamiliar with, please check your job after 5-15 minutes using 'top' or 'ps -ef' on the compute nodes being used. If the memory usage is growing rapidly, or close to exceeding the per-processor memory limit, you should terminate your job before it causes the system to hang or crash. You can determine on which node(s) your job is running using the "scontrol show job <jobnumber>" command.

Please remember that these are shared resources for all users.