Advanced MPI scheduling: Difference between revisions

no edit summary
No edit summary
Line 1: Line 1:
{{Draft}}
{{Draft}}


Most users should submit MPI or distributed memory parallel jobs as illustrated
Most users should submit MPI or distributed memory parallel jobs following the example
at [[Running_jobs#MPI_job|Running jobs: MPI job]]. Simply request a number of  
given at [[Running_jobs#MPI_job|Running jobs]]. Simply request a number of  
processes with <code>--ntasks</code> or <code>-n</code> and trust the scheduler  
processes with <code>--ntasks</code> or <code>-n</code> and trust the scheduler  
to allocate those processes in a way that balances the efficiency of your job  
to allocate those processes in a way that balances the efficiency of your job  
with the overall efficiency of the cluster.
with the overall efficiency of the cluster.


If you need more detailed control over how your job is allocated, then read on
If you want more control over how your job is allocated, then SchedMD's
to learn about SLURM's [https://slurm.schedmd.com/sbatch.html <code>sbatch</code>]
page on [https://slurm.schedmd.com/mc_support.html multicore support] is a good
command and how its numerous options constrain the placement of processes.
place to begin. It describes how many of the options to the
[https://slurm.schedmd.com/sbatch.html <code>sbatch</code>]
command interact to constrain the placement of processes.


=== Controlling the distribution of processes ===
You may find this discussion of [https://slurm.schedmd.com/faq.html#cpu_count What exactly is considered a CPU?] in SLURM to be useful.
The basic MPI job shown at [[Running jobs]] is suitable for the majority of users, those who simply want their calculations to start running at the earliest opportunity.
 
However, you may wish to investigate how the performance of your MPI application is affected when the processes are distributed in different ways, or you may know from such an investigation that it performs best under certain constraints. For especially demanding applications this can extend to the level of not just nodes, but sockets, cores, and threads. See SchedMD's page on [https://slurm.schedmd.com/mc_support.html multicore support] for detailed information about process placement with SLURM.


=== Hybrid jobs: MPI and OpenMP, or MPI and threads ===
=== Hybrid jobs: MPI and OpenMP, or MPI and threads ===
To come
To come
You may find this discussion of [https://slurm.schedmd.com/faq.html#cpu_count What exactly is considered a CPU?] in SLURM to be useful.


=== MPI and GPUs ===
=== MPI and GPUs ===
Bureaucrats, cc_docs_admin, cc_staff
2,879

edits