CS 4328 Parallel Computing

Fall 2023 (CRN: 25097, 3 credit hours, hybrid course, class meet times Tuesday 1:00pm-2:15pm) 

Prerequisites: CS 3402 and CS 3304. You must have a good working knowledge of C.

Instructor: Dr. Hong Lin, Office: S-717

email: linh@uhd.edu

web page: http://cms.uhd.edu/faculty/linh/courses/cs4328

office phone: (713) 221 2781

office hours: Tuesday-Wednesday 2:30pm-3:30pm

Textbook: Parallel Programming - Techniques and Applications Using Networked Workstations and Parallel Computers, 2nd Edition, by Barry Wilkinson and Michael Allen, Pearson Prentice Hall, 2005.

Catalog Description:

Consideration of the issues involved in various forms of parallel computing including pipelines, vector processors, multiprocessor systems, related algorithms and parallel distributed processing.

 

Course Topics:

 Chapters

Topics

Chapter 1. Parallel Computers

Demand for computational speed, types of parallel computers, cluster computing.

Chapter 2. Message-passing Computing

Basics of message-passing programming, software tools, MPI, evaluating parallel programs, compiling MPI programs.

Chapter 3. Embarrassingly Parallel Computations

Embarrassingly Parallel examples, Mandelbrot Set, Monte Carlo methods.

Chapter 4. Partitioning and Divide and Conquer Strategies

Partitioning and divide and conquer examples, bucket sort, numerical integration, N-body problem.

Chapter 5. Pipelined Computations

Pipeline technique and types, examples, adding numbers, sorting, prime number generation, solving system of linear equations.

Chapter 6. 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 7. Load Balancing and Termination Detection

Dynamic load balancing, distributed termination detection algorithms, program example (shortest path problem)

Chapter 8. Programming with Shared Memory

Shared memory multiprocessors, constructs for specifying parallelism, processes, threads, language constructs, dependency analysis, OpenMP, performance issues, program examples

Chapter 10. 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.

 

Course Goals:

Upon completion of this course, students should be able to:

·         DESCRIBE the major functions and approaches to parallelism used in a large parallel program, through program inspection and research on an application domain,

·         IDENTIFY the regions of a large time-consuming program that are most conducive to increased performance through parallelization,

·         SELECT and apply appropriate parallelization constructs to a large program to create a correct parallel version to exploit a state-of-the-art parallel computing environment,

·         ASSESS the correctness of a parallel program,

·         APPLY available debugging methods to detect and correct errors in an erroneous parallel program,

·         ASSESS the performance of parallel programs run with different parameters of input sizes and numbers of processors,

·         VERBALLY AND ORALLY CRITIQUE a parallelization effort and its resulting performance results to non-experts,

·         Work on a realistic program parallelization problem

This course is a writing course. Students who want to take this course as a writing course must get approval from the department. A writing project will be assigned to those students who take this course as a writing course, and must be completed at the end of the semester in addition to the completion of other course work. A student must get at least a "C" to have his/her writing project evaluated, in which situation his/her writing project will be given a grade either "Pass" or "Not Pass".

Grading Breakdown:

2 Midterm Tests 20% each

Final Exam 30%

Labs and Programming Assignments 30%

Grading Scale:

90-100 A, 80-89 B, 70-79 C, 60-69 D, Below 60 F

 

Programs:

We will write parallel programs using MPI (Message Passing Interface) and POSIX Thread. Programs should be written using C and the MPI and Pthread libraries. The Linux computing cluster with portal at http://grid.uhd.edu will be used as the platform for projects. You will be asked to demonstrate your program in class in order to receive credit for the assignment.

.

Policies:

Students are responsible for the materials assigned from the book and the lecture notes. To pass this course a passing grade on both labs & programming assignments and exams is required. No make up tests will be given. Late submission of assignment will cause a loss of 10 points per day (including weekends), and no submission late more than 1 week will be accepted. All missed grades will be recorded as zero.

 

General University Policies and Procedures: All students are subject to UH-Downtown's Academic Honesty Policy and to all other university-wide policies and procedures as they are set forth in the UH-Downtown University Catalog and Student Handbook. The Academic Honesty Code is embraced by all members of the University of Houston-Downtown academic community and is an essential element of the institution’s academic credibility. The Honesty Code states "We will be honest in all our academic activities and will not tolerate dishonesty." The purpose of the Academic Honesty Policy is to deal with alleged violations of the Honesty Code in a fair and consistent manner. The policy is administered jointly by students and faculty. It is each student's responsibility to read and understand the Academic Honesty Policy.  It may be found in the Student Handbook.

 

Attendance Policy: Your failure to attend class (face to face or hybrid), engage course material (Online only); or make contact with faculty to adequately explain your absence by the 10th class calendar day of the semester will result in your being administratively dropped from this course.  Being dropped from this course may affect your enrollment status and/or your financial aid eligibility.

 

Statement on reasonable accommodations

UHD adheres to all applicable federal, state, and local laws, regulations, and guidelines with respect to providing reasonable accommodations for students with disabilities. Students with disabilities should be notified to register with Disabled Student Services and contact the instructor in a timely manner to arrange for appropriate accommodations.

 

CS4328 - Course Schedule

(This schedule is subject to update. You should check the schedule regularly for assignments and due dates)

Week

Tuesday

Thursday

1

8/22
Chapter 1- Part 1

8/24
Chapter 1 - Part 2

2

8/29
Chapter 2 Part 1

8/31
Chapter 2 - Part 2

3

9/5

Chapter 3

9/7
Lab: Monte Carlo Method

4

9/12

Chapter 4 - Part 1

9/14

Chapter 4 - Part 2

Chapter 4 Lab

Review for 1st Test

5

9/19
1st Test

9/21
Chapter 5

6

9/26

Chapter 5

9/28
Chapter 5

7

10/3

Chapter 5

Lab - Pipeling: Insertion Sort (See slides for the code)

10/5
Chapter 6 - Part 1

8

10/10

Chapter 6 - Part 2

10/12

Chapter 6 - Part 3

9

10/17

Lab – Chapter 6

10/19
Review for 2nd Test

10

10/24

2nd Test

10/26
Chapter 7 Part 1

11

10/31

Chapter 7 - Part 2

11/2
Chapter 7 - Part 3

12

11/7

Chapter 7 - Part 4

11/9
Chapter 8 - Part 1

13

11/14
Chapter 8 - Part 2

Lab - Chapter 8

11/16

Chapter 8 - Part 3

14

11/21
Chapter 8 - Part 4

11/23
Thanksgiving holiday

15

11/28

Presentation of writing projects

11/30
Review for the Final Exam

16

12/5

Final Exam 2:15pm-4:15pm

12/7