UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE
Department of Computer Science
ITCS 4145/5145 Parallel Programming

Spring 2012

Tuesday/Thursday 5:00 pm - 6:15 pm, Woodward 135

Dr. Barry Wilkinson

This page is continually updated as the course proceeds. Watch for announcements. Modification date: April 4, 2012

Academic calendar
Announcements Lecture materials Source material links
Assignments Tests Moodle

ANNOUNCEMENTS



Lecture Materials

The following slides are provided as Powerpoint slides.  You may wish to print these sides out as 1 x 2 or 2 x 3 thumbnails. The slides are not ready for use until the date given for the class.
Lecture slides
Week
Date
Slides
Topics
Textbook
1
Jan 10, 2012
Outline
Course outline, prerequisites, course text,  course contents, instructor details.  
1
Jan 10, 2012
Assignment Preliminaries
Assignment preliminaries, Moodle, student accounts

1
Jan 10, 2012
Parallel Computing
Demand for computational speed, potential for speed-up using multiple process(or)s
Chapter 1
1
Jan 12, 2012
Parallel Computers Types of parallel computers, cluster computing. Chapter 1
2
Jan 12/17, 2012
Message-passing Computing
Basics of message-passing programming, software tools, MPI, evaluating parallel programs, compiling MPI programs. Chapter 2
2
Jan 17, 2012
Assignment 1 Exercises in compiling and running MPI programs
2
Jan 19, 2012
Collective routines
Gather/scatter examples
Quiz questions
More on MPI routines, collective routines

3
Jan 24, 2012
Embarrassingly Parallel Computations Embarrassingly Parallel examples, Mandelbrot Set, Monte Carlo methods. Chapter 3
3
Jan 24/26, 2012
Partitioning and Divide and Conquer Strategies Partitioning and divide and conquer examples, bucket sort, numerical integration, N-body problem. Chapter 4
3
Jan 26, 2012
Assignment 2
Demo
N-body parallel programming assignment

4
Jan 31/Feb2, 2012
Synchronous Computations Synchronization, barrier implementation, synchronous computation examples, data parallel, synchronous iteration, solving system of linear equations by iteration, heat distributed problem, cellular automata, partially synchronous methods. Chapter 6
5
Feb 7, 2012
Programming with Shared Memory - I
Shared memory multiprocessors, constructs for specifying parallelism, processes, threads, Pthreads, critical sections, monitors, program examples Chapter 8
5
Feb 9, 2012
Java threads and synchronization Programming with shared memory - Java threads and synchronization
6
Feb 14, 2012

Test review

6
Feb 16, 2012

Test/Quiz 1.
7
Feb 21, 2012
Programming with Shared Memory - II Introduction to OpenMP
Chapter 8
7
Feb 23, 2012
Assignment 3 OpenMP assignment

7/8

Programming with Shared Memory - III Shared memory performance issues
8

Numerical Algorithms Matrix multiplication, solving a system of linear equations, iterative methods Chapter 11

March 5-10, 2012

Spring break - no classes

9
March 13, 2012
Numerical algorithms continued, iterative methods
9
March 13, 2012
Assignment 4 MPI/OpenMP (hybrid) assignment
9/10
March 15/20
Sorting Algorithms Potential speedup of sorting in parallel, compare and exchange, bubble sort, odd-even transposition sort, mergesort, quicksort, odd-even mergesort, bitonic mergesort, sorting on meshes and hypercube, rank sort, counting sort, radix sort, sample sort, sorting on clusters. Chapter 10
10
March 22, 2012

Test review

11
March 27, 2012

Test review or/and introduction to GPU programming

11
March 29, 2012

Class Test

12
April 3, 2012
Intro to GPUs and CUDA

CUDA Prog. Model
GPU systems, architecture, introduction to CUDA programming
12
April 5, 2012

CUDA programming, thread blocks

12
April 5, 2012
Assignment 5
CUDA programming, CUDA assignment

13
April 10/12, 2012
CUDA  CUDA
CUDA programming, timing and synchronization
14
April 17/19

CUDA/OpenCL

15
April 24, 2012

Revision for final   Class teaching evaluation
15
April 26, 2012

Revision for final
16
May 1, 2012

Last class. Review/discussion


Top 
Source materials

Top 
Assignments

Each assignment is not ready for use until the date set.

Date set Interim dates
Assignment Topic Date due
12 pm (noon)
Tuesday Jan 17, 2012
Date to report
system/account problems:
Thursday Jan 19, 2012
Assignment 1
hello.c
MPI - Hello world programs
Thursday Jan 26, 2012
Thursday Jan 26, 2012
Target date to complete Task 1:
Thursday Feb 2nd, 2012
Report any problems by this date.
Assignment 2
Generating X11 graphical output
Gather/scatter examples
MPI - N-Body problem
Monday Feb 13, 2012
Thursday Feb 23, 2012
Date to report system/OpenMP
compiler problems: Tues Feb 28, 2012
Assignment 3
OpenMP assignment
Monday March 12, 2012

Tuesday March 13, 2012
Date to report system/
compiler problems: Tues March 20, 2012
Assignment 4
MPI/OpenMPprogram
MPI/OpenMP assignment
Monday April 2, 2012
Thursday April 5, 2012
Date to report system/
compiler problems: Thurs April 12, 2012
Assignment 5
CUDA programs
Tuesday April 24, 2012

Top 


Tests

Class test 1:  Regular paper test:

Availability: To be taken in class Feb 16, 2012.

Topics: All materials from beginning of course to week 5 inclusive.  Includes materials in Assignment 1 and Assignment 2.

Class test 2:  Regular paper test

Availability: To be taken in class March 29, 2012.

Topcs: All materials after test 1 week 6/7 to week 10 inclusive - shared memory programming, OpenMP, matrix multiplication, linear equations, iterative methods, sorting. Includes assignment 3.


Final Exam: Date:  Tuesday May 8th, 2012, 2010, 5 pm - 7:30 pm
Topics: Comprehensive.


Previous tests

Top