Changes between Version 4 and Version 5 of Workshops/JobParallelism
- Timestamp:
- 01/17/26 23:42:37 (15 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Workshops/JobParallelism
v4 v5 20 20 See [wiki:IntroToMulti-Processing2025August 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. 21 21 22 === Considerations before you build and/or runyour job ===22 === Before running your job === 23 23 24 24 Before you run your job you should consider the following in order for your job to run most efficiently on Cypress. … … 26 26 ==== Review your software provider's information ==== 27 27 28 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. 29 * Hardware requirements, including memory, number of processors, and/or supported or optimal thread count 30 * Guidelines, best practices, and tips & tricks. 28 See [wiki:Workshops/IntroToMulti-Processing2025August#CodesforMulti-CoresMulti-Nodes.Offloading Codes for Multi-Cores, Multi-Nodes. Offloading]. 31 29 32 ==== Choosing programming tools ==== 33 34 * Application programming level 30 ==== Choices for application programming tools ==== 35 31 36 32 Refer to the following table to determine what programming model to use based on the type of algorithm your job requires. 37 33 38 ||= Algorithm Type =||= Programming Model =||= Hardware Used =||= Example =|| 39 ||Multithreaded (shared memory) ||OpenMP ||1 Node, >=2 cores ||TBD || 40 ||Problem domain decomposition ||MPI ||>=2 Nodes ||TBD || 41 ||Massively Parallel Single Instruction Multiple Threads (SIMT) ||GPU kernels ||GPUs ||TBD || 42 ||Hybrid Parallel ||MPI + (OpenMP or GPU kernels) ||>=2 Nodes + GPUs ||TBD || 34 ||= Algorithm Type =||= Programming Model =||= Hardware Used =||= Examples =|| 35 ||Single Instruction Multiple data (SIMD) ||Compiler vectorization ||Intel Advanced Vector Extensions (AVX), 256-bit vector processor ||See [https://wiki.hpc.tulane.edu/trac/wiki/cypress#MathLibraries Math Libraries] || 36 ||Multithreaded (shared memory) ||OpenMP ||1 Node, >=2 cores ||See [wiki:cypress/Programming/OpenMp OpenMP] || 37 ||Problem domain decomposition ||MPI ||>=2 Nodes ||See [wiki:cypress/Programming/Mpi MPI]|| 38 ||Massively Parallel, Single Instruction Multiple Threads (SIMT) ||#pragma offload (GPU kernels not available on Cypress) ||Coprocessors - !XeonPhi (GPUs not available on Cypress) ||See [wiki:cypress/XeonPhi XeonPhi], [wiki:Workshops/cypress/OffloadingWithOpenMP Offloading to Accelerator] || 39 ||Hybrid Parallel ||MPI + OpenMP ||>=2 Nodes ||See [wiki:cypress/using#HybridJobs Hybrid Jobs] job script|| 43 40 44 * Job scripting level 41 ==== Choices for Job scripting ==== 42 * Many independent tasks 45 43 46 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 [wiki:IntroToMulti-Processing2025August#RunningManySerialParallelJobs Running Many Serial/Parallel Jobs].44 See [wiki:IntroToMulti-Processing2025August#RunningManySerialParallelJobs Running Many Serial/Parallel Jobs] if your computational workload can be split easily - or perhaps with some minimal or one-time effort - into many independent tasks, requiring minimal communication. For more information. 47 45 48 ||= Task Criteria =||= Job Scripting Model =||49 ||TBD ||Job Array || 50 ||TBD ||GNU Parallel ||46 * Many dependent tasks 47 48 Otherwise, see [wiki:cypress/Programming/Mpi MPI] if your computational workload includes too many tasks to run on a single node '''and''' the tasks require a significant level of inter - communication '''during''' the computation.
