▣ HOME ▣ RESEARCH & RESOURCES ▣ PUBLICATIONS ▣ THESES ▣ TEACHING

Parallel Computing

Course information:

Cinvestav-Tamaulipas, January - April 2020

Instructors:

Contents:

Topic Notes/Slides Last Update
1. Course Presentation 10/01/2020
2. Introduction to Parallel Computing 14/01/2020
3. Parallel Hardware and Parallel Software 17/01/2020
4. Shared-Memory Programming with Pthreads 18/02/2020
5. Distributed-Memory Programming with MPI 13/03/2020
6. Shared-Memory Programming with OpenMP 25/03/2020

Resources:

Pthreads example codes

Description File(s)
Parallel Hello World
Estimating PI (serial)
Estimating PI (parallel, no access control)
Estimating PI (parallel, busy-waiting v1)
Estimating PI (parallel, busy-waiting v2)
Estimating PI (parallel, mutex)
Estimating PI (parallel, named semaphore)
Estimating PI (parallel, named semaphore)
Messaging Between Threads (no synchronization)
Messaging Between Threads (busy-waiting)
Messaging Between Threads (named semaphore)
Messaging Between Threads (unnamed semaphore)
Messaging Between Threads (Pthreads barrier)

MPI example codes

Description File(s)
Hello World (V1)
Hello World (V2, Send and Recv)
Hello World (V3, Wildcards)
Trapezoidal Rule (Serial Program)
Trapezoidal Rule (MPI, Send and Recv)
Trapezoidal Rule (MPI, Reduce)
Trapezoidal Rule (MPI, Allreduce)
Trapezoidal Rule (MPI, Broadcast)
Trapezoidal Rule (MPI, User Input)
Trapezoidal Rule (MPI, User Input, Derived Datatype)
Vector Addition (MPI, Scatter and Gather)
Measuring Time (Serial Version)
Measuring Time (MPI Version)

Scripts for Cluster Neptuno

Description File(s)
Example program (Serial version)
Script to run a single job (Serial)
Script to run a job array (Serial, V1)
Script to run a job array (Serial, V2)
Example program (MPI version)
Script to run a single job (MPI)
Script to run a job array (MPI, V1)
Script to run a job array (MPI, V2)

OpenMP example codes

Description File(s)
Hello World
Hello World (Using #ifdef _OPENMP)
Trapezoidal Rule (Serial Program)
Trapezoidal Rule (OpenMP v1)
Trapezoidal Rule (OpenMP v2, Alternative - Wrong!)
Trapezoidal Rule (OpenMP v3, Alternative - Correct!)
Trapezoidal Rule (OpenMP v4, Reduction)