| Version 1 (modified by , 29 hours ago) ( diff ) |
|---|
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.
