[[PageOutline]] = HPC Workshop Fall 2025 = = Module 2 of 5 - Introduction to Multi-processing = == Why use a HPC Cluster? == * tasks take too long * When the task to solve becomes heavy on computations, the operations are typically out-sourced from the local laptop or desktop to elsewhere.  * one server is not enough * If the computational task or analysis to complete is daunting for a single computer, larger agglomerations of servers (computers) are used. == Parallel Computing == * [https://wiki.hpc.tulane.edu/trac/wiki/Workshops/IntroToHpc2015/Programming/SpeedupScaling Overview] === Parallel Programming === * [[cypress/Programming/OpenMp|OpenMP]] - Simple tutorial of OpenMP parallel codes [[BR]] * [[cypress/Programming/Mpi|MPI]] - Simple tutorial of MPI parallel codes [[BR]] === Multi-threads === * 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. == Multi-processing == * [[cypress/JobArrays|Job Arrays]] * Participation: submit a job array * [[cypress/JobDependency|Job Dependencies]] * [[cypress/using#SubmittingInteractiveJobs|Running interactive jobs (idev)]] * [[cypress/using#MPIJobs|Parallel Jobs : MPI]] * [[cypress/using#OpenMPJobs|Parallel Jobs : OpenMP]] * [[cypress/using#HybridJobs|Parallel Jobs : Hybrid]] * [[cypress/GNUparallel|Gnu Parallel]] * Participation: [[https://wiki.hpc.tulane.edu/trac/wiki/cypress/GNUparallel#SingleNode|Single Node Job]]