Overview
Login Node
When you login to Komondor, you arrive at the login node (v01). Apart from being the gate to the supercomputer system, the login node can be used to manage your projects on the supercomputer. Management tasks include:
uploading programs and data to the storage;
compiling and installing software;
preparing your application to be run on the supercomputer;
submitting computation jobs to the compute nodes using the Slurm scheduler;
monitoring and handling submitted jobs;
checking job efficiency to improve subsequent jobs;
arranging, downloading and backuping computation results.
Important
Though small management tasks that don’t require large resources can be executed on the login node, resource-intensive computation tasks are subject to interruption without prior notice.
Compute Nodes
Actual computation tasks must be run on the compute nodes. These are the nodes that provide the computing power of the supercomputer. According to the amount and type of resources, there are four different types of compute nodes in Komondor: CPU-only, GPU, AI and BigData. Slurm organizes these resources into partitions (queues). Partitions serve different computing requirements.
Job Queues (Partitions)
The main compute partitions of Komondor are:
cpu(default)gpuaibigdata
Partition |
Compute nodes |
CPUs / node |
CPU cores / node |
GPUs / node |
Memory / node |
|---|---|---|---|---|---|
“CPU” ( |
184 x |
2 AMD CPUs |
128 CPU cores |
N/A |
256 GB RAM |
“GPU” ( |
58 x |
1 AMD CPU |
64 CPU cores |
4 A100 GPUs |
256 GB RAM |
“AI” ( |
4 x |
2 AMD CPUs |
128 CPU cores |
8 A100 GPUs |
512 GB RAM |
“BigData” ( |
1 x |
16 Intel CPUs |
288 CPU cores |
N/A |
12 TB RAM |
Slurm socket topology
On the AMD CPU and GPU partitions, Komondor exposes NUMA domains as Slurm sockets. This is a scheduler topology and does not change the physical hardware layout described above. The topology is closer to the way memory locality works on these nodes, so Slurm can make better placement decisions for jobs that use socket-level allocation or binding. It also makes explicit socket binding more predictable for applications that are sensitive to NUMA locality.
As a result, Slurm sees the nodes as follows:
cpupartition nodes: 8 Slurm sockets with 16 CPU cores per socketgpupartition nodes: 4 Slurm sockets with 16 CPU cores per socket
On the bigdata partition, the sdflex0 node has 16 NUMA domains matching its 16 physical CPU sockets, with 18 CPU cores per socket.
This does not require any special action for ordinary jobs that request resources with options such as --cpus-per-task, --mem-per-cpu or
--gres=gpu. It matters for advanced options that explicitly refer to sockets, such as --sockets-per-node, --cores-per-socket,
--ntasks-per-socket, -B / --extra-node-info or --cpu-bind=socket. In these cases, “socket” means a NUMA domain, not a physical CPU package.
Special-purpose Slurm partitions
In addition to the main compute partitions above, Komondor provides a few specialized Slurm partitions for interactive work and for improving overall utilization.
Partition |
Intended use |
Default time |
Max time |
Notes |
|---|---|---|---|---|
|
Short interactive tests, debugging, quick experiments (including GPU), JupyterHub notebooks |
00:10:00 |
01:00:00 |
Dedicated GPU node; |
|
Short CPU-only jobs that may run on otherwise idle GPU nodes |
01:00:00 |
02:00:00 |
Hidden partition; |
Short jobs and the cpu-short partition
To reduce waiting time and increase utilization, short CPU jobs submitted to the default cpu partition can be automatically eligible
to run on GPU nodes via the hidden cpu-short partition. This happens when the job:
requests a walltime of 2 hours or less, and
requests 64 CPU cores or less in total.
This is most useful when the CPU partition is saturated while GPU nodes have available CPU capacity. You do not need to submit directly to
cpu-short; the partition list is extended automatically by a Slurm job submission (Lua) policy. Just set an accurate time limit for short jobs.
You can instruct the Slurm scheduler to allocate the necessary resources and launch your tasks on the compute nodes using Slurm commands and special directives in your job script. Slurm queues all submitted jobs (from all users) according to their calculated priority and starts them on a schedule based on available resources.