wiki:Workshops/JobParallelism/BeforeRunningYourJob

Version 1 (modified by Carl Baribault, 29 hours ago) ( diff )

New page: "Before running your job"

Before running your job

Before you run your job you should consider the following in order for your job to run most efficiently on Cypress.

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.

Review your software provider's information

See Codes for Multi-Cores, Multi-Nodes. Offloading.

Parallelism at the application 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 Examples
Single Instruction Multiple data (SIMD) Compiler vectorization Intel Advanced Vector Extensions (AVX), 256-bit vector processor See Math Libraries
Multithreaded (shared memory) OpenMP 1 Node, ≥2 cores See OpenMP
Problem domain decomposition MPI ≥2 Nodes See MPI
Massively Parallel, Single Instruction Multiple Threads (SIMT) #pragma offload (GPU kernels not available on Cypress) Coprocessors - XeonPhi (GPUs not available on Cypress) See XeonPhi, Offloading to Accelerator
Hybrid Parallel MPI + OpenMP ≥2 Nodes See Hybrid Jobs job script

Parallelism at the job scripting level

  • Many independent tasks

See 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.

  • Many dependent tasks

Otherwise, see 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.

Note: See TracWiki for help on using the wiki.