Labs

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

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

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: Programming with Threads in Java

  • The main goal of this lab is to program with threads in 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]