CS 3211 - Parallel and Concurrent Programming
[Semester II, 2003-2004] [Lecturer Stefanescu, Gheorghe and TA Zhu Qili, Kenny]

[ News | Course info | Lecture | Tutorial | Assig/Proj | References | Contact | Misc ]


..Hot..News..

-CA results: [Assig.1] [Tut] [Assig.2] [Proj.1](maze) [Proj.2](individual)


Projects: [list] [ balloting system -> results] [HYP-Students] Ballot Results & Online Balloting System
lectures -> 1..2..3 ..4..5..6 ..7..8..9 ..10..11..12 10.. 9..8..7.. 6..5..4.. 3..2..1 <- tutorials

Topics, course material & schedule (tentative)

Lec.DateTopics Lecture notesReading material, additional references
Lec.1 8/1/04 Parallel computers [pdf] [ps] [(4/1)ps] Textbook, Ch1:3-32
Lec.2 15/1/04 Message-passing computing (I) [pdf] [ps] [(4/1)ps] Textbook, Ch2:38-61
Lec.3 29/1/04 a) Message-passing (II); b) Embarrassingly parallel computations [pdf] [ps] [(4/1)ps] Textbook, Ch3:61-100
Lec.4 5/2/04 Partitioning and divide-and-conquer strategies [pdf] [ps] [(4/1)ps] Textbook, Ch4:107-131
Lec.5 12/2/04 Pipelined computations [pdf] [ps] [(4/1)ps] Textbook, Ch5:139-156
Lec.6 19/2/04 Synchronous computations [pdf] [ps] [(4/1)ps] Textbook, Ch6:162-189
Lec.7 26/2/04 Load balancing and termination detection [pdf] [ps] [(4/1)ps] Textbook, Ch7:198-220
Lec.8 4/3/04 Programming with shared memory [pdf] [ps] [(4/1)ps] Textbook, Ch8:227-257
Lec.9 11/3/04 Sorting algorithms [pdf] [ps] [(4/1)ps] Textbook, Ch9:267-295
Lec.10 18/3/04 Numerical algorithms [pdf] [ps] [(4/1)ps] Textbook, Ch10:301-326
Lec.11 25/3/04 Image processing [pdf] [ps] [(4/1)ps] Textbook, Ch11:331-361
Lec.12 1/4/04 Searching and optimization [pdf] [ps] [(4/1)ps] Textbook, Ch12:367-389

Tutorials

Tutorial DateTopicsQuestions SolutionsMisc
Tut.1 19-24/1/04Lec.1 [pdf] [ps] IVLE -
Tut.2 26-31/1/04Lec.2 [pdf] [ps] IVLE -
Tut.3 2-7/2/04Lec.3a [pdf] [ps] IVLE -
Tut.4 9-14/2/04Lec.3b [pdf] [ps] IVLEa PPM file
Tut.5 16-21/2/04Lec.4 [pdf] [ps] IVLE -
Tut.6 23-28/2/04Lec.5 [pdf] [ps] IVLE -
Tut.7 1-6/3/04Lec.6 [pdf] [ps] IVLE -
Tut.8 8-13/3/04Lec.7 [pdf] [ps] IVLE -
Tut.9 15-20/3/04Lec.8 [pdf] [ps] IVLE -
Tut.10 22-27/3/04Lec.9+10 [pdf] [ps] --
Tut.11 29/3/04-3/4/04"maze"-question ---

Assignments

Assignment DateQuestionsDeadline Misc
Ass.1 16-21/2/04Lec.1-4 [pdf] [ps] Mon 16feb04, 2pm Sat 21feb04, 9am-
Ass.2 15-20/3/04Lec.5-8 [pdf] [ps] Mon 22mar04, 2pm-

Projects

Allocation: 19-24/01/04
Final Program, Report, Presentation: 22/3/04-10/4/04

Course Information

Type
This module is a Major Requirement for B.Comp. (Computer Engineering) Programme and it is included in the CS Recommended List for B.Comp. (Computer Science) Programme
Instructors
Lecturer: Gheorghe Stefanescu - Office: S16-04-16; Tel: 6874-6613; Email: gheorghe@comp.nus.edu.sg
Teaching Assistant: Zhu Qili, Kenny - Office: S15-04-28; Tel: 6874-6729; Email: kzhu@comp.nus.edu.sg
Schedule
Lectures: LT33, Thu 10:00-12:00
Tutorials: Tue 2-5pm (S16,TR3); Wed 10-12am (S16,TR3); Fri 2-4pm (S16,TR2);
Consultation hours: Gheorghe Stefanescu -> Tue 2-5PM; Fri 9:30AM-12:30noon
Exam
13 APR 2004 Morning
Open Book
Grading
50% Continuous Assessment 50% Final Exam
Course type
The course is mainly practically oriented. The students have to learn the basic parallel programming techniques and to master a parallel programming language. We are mainly using MPI. A certain ability to do mathematical reasoning is necessary for the analysis of the algorithms and to cover the specific application areas included in the last part of the course.
Prerequisites
The students are supposed to have a good background on operating systems and programming languages. While the ability to write computer programs is useful for getting good results at the CA sections, the ability to do mathematical reasoning and to design algorithms is necessary/useful to get good results to the written final exam.
Brief Description
A concurrent system consists of a set of processes that execute simultaneously and that may collaborate by communicating and synchronizing with one another. Parallel programs, which execute concurrent thread of control on separate processors, and distributed programs, which use networked architectures, are examples of concurrent systems. The course covers the principles behind concurrent, parallel and distributed programming, as well as their practical aspects, including their implementation using concurrent programming languages, and software and hardware systems for distributed and parallel computing.
Topics
parallel computers; message-passing computing; embarrassingly parallel computations; partitioning and divide-and-conquer strategies; pipelined computations; synchronous computations; load balancing and termination detection; programming with shared memory; algorithms and applications (sorting algorithms; numerical algorithms; image processing; searching and optimization)

References

Textbook The course uses the (fully recommended) textbook (a copy in RBR Collection)
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers
by Barry Wilkinson, C. Michael Allen
431 pages, 1999; Prentice Hall; ISBN: 0136717101
Additional references
M J Quinn, Parallel Programming in C with MPI and OpenMP, McGraw Hill, 2004 (a copy in RBR Collection)

..Old..News..


... older news

[ News | Course info | Lecture | Tutorial | Assig/Test | References | Contact | Misc ]

Maintained by Gheorghe Stefanescu