Changes between Version 3 and Version 4 of Workshops/IntroToMulti-Processing2025August


Ignore:
Timestamp:
08/16/25 14:35:51 (11 hours ago)
Author:
fuji
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Workshops/IntroToMulti-Processing2025August

    v3 v4  
    22= HPC Workshop Fall 2025 =
    33= Module 2 of 5 - Introduction to Multi-processing =
     4== Cypress Systedm ==
     5* CPU: 2.80GHz Intel Xeon E5-2680 v2, 2 CPUs per node
     6* Total Nodes: 124 nodes, 20 cores per nodes
     7* Co-processors: Intel Xeon Phi 7120P (2 Xeon Phi cards per node)
     8* 69.44Tflops CPUs only (theoretical)
     9* Network bandwidth: 40Gb/sec Ethernet
     10* Memory: 64G-256G per node
     11
    412== Why use a HPC Cluster? ==
    5 * tasks take too long
     13* '''tasks take too long'''
    614 * When the task to solve becomes heavy on computations, the operations are typically out-sourced from the local laptop or desktop to elsewhere. 
    7 * one server is not enough
     15 * Your computation may execute more efficiently if the application supports multithreading or multiprocessing.
     16 * ''Parallel Programming''
     17* '''one server is not enough'''
    818 * If the computational task or analysis to complete is daunting for a single computer, larger agglomerations of servers (computers) are used.
     19 * ''Job Arrays''
     20 * Running Many Serial/Parallel Jobs
    921
    1022== Parallel Computing ==
    1123* [https://wiki.hpc.tulane.edu/trac/wiki/Workshops/IntroToHpc2015/Programming/SpeedupScaling Overview]
     24* A multi-core processor is a single computing component with two or more independent actual central processing units (called "cores"), which are the units that read and execute program instructions. The multiple cores can run multiple instructions at the same time, increasing overall speed for programs amenable to parallel computing.
    1225
    13 === Parallel Programming ===
     26=== Codes for Multi-Cores, Multi-Nodes. Offloading ===
     27* Computer programs developed for old CPU's runs on a single core.
     28* Simple C/C++, Fortran code runs on just one core.
     29* We have to develop codes that use multiple cores and/or multiprocessing.
     30* We have to know if the application supports multithreading and/or multiprocessing.
     31
     32==== Parallel Programming ====
    1433* [[cypress/Programming/OpenMp|OpenMP]] - Simple tutorial of OpenMP parallel codes [[BR]]
    1534* [[cypress/Programming/Mpi|MPI]] - Simple tutorial of MPI parallel codes [[BR]]
     35* [[cypress/XeonPhi|XeonPhi]] - Programming for the Xeon Phi Coprocessor on Cypress
     36* [[cypress/OffloadingWithOpenMP|Offloading to Accelerator]] - Explicit Offloading with OpenMP
    1637
    17 === Multi-threads ===
    18 * In computer architecture, multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to provide multiple threads of execution.
     38=== Example SLURM job scripts ===
     39* [[cypress/using#OpenMPJobs|Multi-cores]]
     40* [[cypress/using#MPIJobs|Multi-nodes]]
    1941
    20 == Multi-processing ==
     42== Running Many !Serial/Parallel Jobs ==
     43* [[cypress/JobArrays|Job Arrays]]
     44* [[cypress/JobDependency|Job Dependencies]]
     45* [[cypress/using#Many-taskcomputing|Many-task computing]]
    2146
    22 
    23 * [[cypress/JobArrays|Job Arrays]]
    24  * Participation: submit a job array
    25 * [[cypress/JobDependency|Job Dependencies]]
    26 * [[cypress/using#SubmittingInteractiveJobs|Running interactive jobs (idev)]]
    27 * [[cypress/using#MPIJobs|Parallel Jobs : MPI]]
    28 * [[cypress/using#OpenMPJobs|Parallel Jobs : OpenMP]]
    29 * [[cypress/using#HybridJobs|Parallel Jobs : Hybrid]]
    30 * [[cypress/GNUparallel|Gnu Parallel]]
    31  * Participation: [[https://wiki.hpc.tulane.edu/trac/wiki/cypress/GNUparallel#SingleNode|Single Node Job]]