-
- Lab 1: Introduction to OpenMP Programming in C
- Lab 2: Barriers in OpenMP
- Lab 3: Critical Regions in OpenMP
- Lab 4: A Fibonacci Number Generator in OpenMP
- Lab 5: Thread vs. Process Performance in C
- Lab 6: Programming with Pthreads in C
- Lab 7: Concurrency Programming Pitfalls in Java
- Lab 8: Matrix Multiplication in OpenCL
LAB 1: Introduction to OpenMP Programming in C
- The main purpose of this lab is to introduce you to writing, compiling and running OpenMP programs in C.
- Lab Description: [PDF]
- Source File: [pi_serial.c]
LAB 2: Barriers in OpenMP
- The main purpose of this lab is to explore parallelization in OpenMP using a barrier.
- Lab Description: [PDF]
- Data File: [CSCI4060U_Lab02_data.zip]
LAB 3: Critical Regions IN OPENMP
- The main purpose of this lab is to implement a parallel program with two queues – one storing latitudes and one storing longitudes in decimal degrees. You should manage reads/writes to each queue using independent critical regions.
- Lab Description: [PDF]
- Data Files: [latitude.csv] [longitude.csv]
LAB 4: A Fibonacci Number Generator in OpenMP
- The main purpose of this lab is to implement both a sequential and parallel Fibonacci number generator.
- Lab Description: [PDF]
LAB 5: THREAD VS PROCESS PERFORMANCE IN C
- The main purpose of this lab is to understand the performance difference between creating processes and creating threads in C.
- Lab Description: [PDF]
- Source Files: [CSCI4060U_lab5_fork.c]
LAB 6: Programming with Pthreads In C
- The main purpose of this lab is to create a program that simulates airline ticket agents. Your program will be written in C and use the pthread.h library (including a mutex to limit access to shared data).
- Lab Description: [PDF]
LAB 7: CONCURRENCY PROGRAMMING PITFALLS IN JAVA
- The main purpose of this lab is to learn about common concurrency programming pitfalls including starvation, deadlocks and data races. Furthermore, the lab will involve identifying concurrency programming pitfalls and addressing them in an existing Java program.
- Lab Description: [PDF]
- Source Files: [Account.java] [Main.java] [ManageAccount.java]
LAB 8: MATRIX MULTIPLICATION IN OPENCL
- The main goal of this lab is to take a sequential implementation of matrix multiplication and parallelize it in OpenCL.
- Lab Description: [PDF]
- Data Files: [matrix_mult_seq.c]