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 |
8/24 |
2 |
8/29 |
8/31 |
3 |
9/5 |
9/7 |
4 |
9/12 |
9/14 Review
for 1st Test |
5 |
9/19 |
9/21 |
6 |
9/26 |
9/28 |
7 |
10/3 Lab - Pipeling: Insertion Sort (See slides for the code) |
10/5 |
8 |
10/10 |
10/12 |
9 |
10/17 Lab
– Chapter 6 |
10/19 |
10 |
10/24 2nd
Test |
10/26 |
11 |
10/31 |
11/2 |
12 |
11/7 |
11/9 |
13 |
11/14 Lab - Chapter 8 |
11/16 Chapter 8 - Part 3 |
14 |
11/21 |
11/23 |
15 |
11/28 Presentation of writing projects |
11/30 |
16 |
12/5 Final
Exam 2:15pm-4:15pm |
12/7 |