Changes between Version 6 and Version 7 of Workshops/JobParallelism


Ignore:
Timestamp:
01/18/26 13:35:53 (7 hours ago)
Author:
Carl Baribault
Comment:

Subdivided content into pages for job stages

Legend:

Unmodified
Added
Removed
Modified
  • Workshops/JobParallelism

    v6 v7  
    1717 * When a single computer can’t handle the required computation or analysis, the work is carried out on larger groups of servers.
    1818
    19 === Before running your job ===
     19== Job Stages ==
     20* [wiki:Workshops/JobParallelism/BeforeRunningYourJob Before running your job]
    2021
    21 Before you run your job you should consider the following in order for your job to run most efficiently on Cypress.
     22* [wiki:Workshops/JobParallelism/WhileYourJobIsRunning While your job is running]
    2223
    23 ==== Tools for implementing various levels of job parallelism on Cypress ====
     24* [wiki:Workshops/JobParallelism/AfterYourJobHasCompleted After your job has completed]
    2425
    25 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.
    26 
    27 ==== Review your software provider's information ====
    28 
    29 See [wiki:Workshops/IntroToMulti-Processing2025August#CodesforMulti-CoresMulti-Nodes.Offloading Codes for Multi-Cores, Multi-Nodes. Offloading].
    30 
    31 ==== Parallelism at the application level ====
    32 
    33  Refer to the following table to determine what programming model to use based on the type of algorithm your job requires.
    34 
    35  ||= Algorithm Type =||= Programming Model =||= Hardware Used =||= Examples =||
    36  ||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] ||
    37  ||Multithreaded (shared memory) ||OpenMP       ||1 Node, >=2 cores ||See [wiki:cypress/Programming/OpenMp OpenMP] ||
    38  ||Problem domain decomposition  ||MPI          ||>=2 Nodes ||See [wiki:cypress/Programming/Mpi MPI]||
    39  ||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] ||
    40  ||Hybrid Parallel ||MPI + OpenMP ||>=2 Nodes     ||See [wiki:cypress/using#HybridJobs Hybrid Jobs] job script||
    41 
    42 ==== Parallelism at the job scripting level ====
    43  * Many independent tasks
    44 
    45  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.
    46 
    47  * Many dependent tasks
    48 
    49  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.