| Version 4 (modified by , 2 days ago) ( diff ) |
|---|
HPC Workshop Spring 2026
Module 7 of 8 - Job Parallelism (Under construction)
(Content subject to change prior to the workshop)
What is Job Parallelism?
Job parallelism refers to jobs for which 2 or more processing units (or processors or cores) execute the given job's code instructions simultaneously - rather than sequentially.
Your job may need more than one processor to finish in a timely manner - or possibly to finish at all.
Why use a HPC Cluster?
- tasks take too long
- When the task to solve becomes heavy on computations, the operations are typically outsourced from the local laptop or desktop to elsewhere.
- Your computation may execute more efficiently if the code supports multithreading or multiprocessing.
- one server is not enough
- When a single computer can’t handle the required computation or analysis, the work is carried out on larger groups of servers.
Tools for implementing various levels of job parallelism on Cypress
See Module 2 of 8 - Introduction to Multi-processing for more information on tools available on Cypress for creating and preparing your jobs at the various levels of parallelism - programming, single job, and multi-job.
Considerations before you build and/or run your job
Before you run your job you should consider the following in order for your job to run most efficiently on Cypress.
Review your software provider's information
Before you run your job, you should review the software provider's information in order to for your job to take the best advantage of the job's requested resources such as the following.
- Hardware requirements, including memory, number of processors, and/or supported or optimal thread count
- Guidelines, best practices, and tips & tricks.
Choosing programming tools
- Application programming level
Refer to the following table to determine what programming model to use based on the type of algorithm your job requires.
Algorithm Type Programming Model Hardware Used Example Multithreaded (shared memory) OpenMP 1 Node, ≥2 cores TBD Problem domain decomposition MPI ≥2 Nodes TBD Massively Parallel Single Instruction Multiple Threads (SIMT) GPU kernels GPUs TBD Hybrid Parallel MPI + (OpenMP or GPU kernels) ≥2 Nodes + GPUs TBD
- Job scripting level
If you have data to be processed that is already divided - or can be divided - into separate files that can be processed entirely independent of each other, then you should consider using either a job array or GNU Parallel. For more information, see Running Many Serial/Parallel Jobs.
Task Criteria Job Scripting Model TBD Job Array TBD GNU Parallel
