Changes between Version 4 and Version 5 of Workshops/JobParallelism


Ignore:
Timestamp:
01/17/26 23:42:37 (15 hours ago)
Author:
Carl Baribault
Comment:

Iterated on section Before running…

Legend:

Unmodified
Added
Removed
Modified
  • Workshops/JobParallelism

    v4 v5  
    2020See [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.
    2121
    22 === Considerations before you build and/or run your job ===
     22=== Before running your job ===
    2323
    2424Before you run your job you should consider the following in order for your job to run most efficiently on Cypress.
     
    2626==== Review your software provider's information ====
    2727
    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.
     28See [wiki:Workshops/IntroToMulti-Processing2025August#CodesforMulti-CoresMulti-Nodes.Offloading Codes for Multi-Cores, Multi-Nodes. Offloading].
    3129
    32 ==== Choosing programming tools ====
    33 
    34 * Application programming level
     30==== Choices for application programming tools ====
    3531
    3632 Refer to the following table to determine what programming model to use based on the type of algorithm your job requires.
    3733
    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||
    4340
    44 * Job scripting level
     41==== Choices for Job scripting ====
     42 * Many independent tasks
    4543
    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.
    4745
    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.