|
|
Last updated on Nov. 17, 2008
|
CSC 744: Parallel Computing
Fall 2008
|
|
Announcements:
- Final
exam is on Dec. 17, 2008.
-
Answer to homework3 is
here.
-
Answer to homework2 is
here.
-
Answer to homework1 is
here.
-
Programming Assignment 2 is assigned on
Nov. 19, 2008 and due on Dec. 17, 2008.
-
Homework3
is assigned on Nov. 12, 2008 and due on Dec. 3, 2008.
- Please submit your MPI program to grid engine. Your program will be killed if you run your program
by lamboot & mpirun.
-
Homework2
is assigned on Oct. 15, 2008.
- Answer to Homework1 is available
here.
- Midterm Exam is on Oct. 22, 2008.
-
Programming Assignment 1 is assigned on Sep. 24, 2008.
-
Typhon account is handed out on Sep. 17, 2008. Please setting up
your ssh and try if your account is working as soon as possible.
-
Homework1
is assigned on Sep. 3, 2008.
This course meets for 2 hours per week: two
hours of lecture and 1 regularly scheduled conference hour. Attendance
is expected for all class hours. The conference hour will be used as
supplemental independent study.
Class hours |
|
Wednesday |
|
6:30pm - 8:10pm |
|
Room: 1N111 |
Office Hours: |
|
Monday
| |
6:00pm - 8:00pm |
|
|
Wednesday |
|
5:00pm - 6:00pm |
|
|
or by special appointment |
|
|
CSC744 is intended for
students from computer science, engineering, mathematics, finance etc,
who are interested in high performance and parallel computing. This
class will cover the fundamentals of parallel computing, including
parallel computer memory architecture, parallel programming models, and
parallel algorithm design etc. Some numerical and combinatorial
algorithms such as FFT computations, odd-even merge sort, bitonic
sorting, and matrix computations etc. will be presented and their
parallel performance will be analyzed in detail. The applications of
parallel computing in other areas such as finance etc. may also be
covered. Students will use CSI's cluster, Typhon for the programming
part.
Prerequisite:
Knowledge of C or C++; CSC 326
This course assumes familiarity with data
structures. You will need to be able to program in C/C++ to perform the
assignments in the course.
Required textbook: An Introduction to Parallel Computing: Design and
Analysis of Algorithms, Second Edition by
A. Grama, V. Kumar et al. Pearson Addison Wesley. ISBN: 0201648652.
Reference: Using MPI - 2nd Edition: Portable Parallel Programming with the Message
Passing Interface (Scientic and Engineering Computation) by William
Gropp, Ewing Lusk, Anthony Skjellum. MIT Press; 2nd edition (November
26, 1999), ISBN: 0262571323.
There are four homework. Homeworks will focus on understanding
and designing parallel
programs.
There will be two programming assignments.
Your tasks will be designing and implementing parallel algorithms,
compiling and running your programs in the environment of cluster,
evaluating a solution, and submitting your program and report.
You will use CSI’s Linux cluster to do your programming assignments.
Basic Information about CSI’s Cluster can be found at
http://montecarlo.csi.cuny.edu/,
and then click the link of Research Linux Cluster. You
will need to use SSH to access CSI’s cluster from CSI’s PC or your home
computer. You can download SSH from the link:
http://unixace.csi.cuny.edu/csiunix/index.php4. You will also need
an account to access CSI’s cluster. You will get your account within two
weeks.
You are strongly encouraged to
set up the programming
environment and try to be familiar with CSI’s cluster before your first
programming assignment.
The solution to each
programming assignment may include the source code and a report showing
the result:
-
The source code MUST be turned
in by email to
huo@mail.csi.cuny.edu
before midnight the date they are due.
- The report MUST be submitted
either per email or be handed in a hard-copy at the beginning of the
class on the due date.
- Handwritten or typed report
will be accepted.
- Solutions must be
readable(especially handwriting!!!), clear, concise and complete.
Programming Assignments:
- Programming Assignment 1 is available
here.
- Programming Assignment
2 is available here.
- The exams may test on material covered only in class and on material covered only in the reading assignments.
Your grade will be based approximately, as follows. These percentages are tentative and subject to change.
25% - Homeworks 25% - Programming Assignments 25% - Midterm Exam 25% - Final
- Class participation is essential to succeed in this course.
- DO NOT USE pencils to write down your solutions
for the ho
mework, programming
assignments or exams; if you decide, however, to use a pencil
do not complain about grading.
- Check the marks in a homework, programming assignments or an exam and report errors promptly. Make
sure you report such problems to the instructor within four weeks
from receipt but no later than
Dec.17, 2008 . If you believe a grade you
received is not representative of your effort talk
to the instructor.
- Homework assignments are due at the start of class on their due date. If you think you won't be present in class on that
Wednesday, turn the homework in earlier at instructor's o
ffice or by email.
- No later solutions will be taken into consideration!
- The work you turn in MUST BE your own personal work, composed and written
by you. No plagiarism. Otherwise,
you will get the grade of zero for the homework or project.
- DO NOT O
BTAIN YOUR SOLUTION THROUGH THE INTERNET. Or you will get the grade of zero for the homework or project.
- Collaboration of any kind is NOT allowed in the in-class exams (midterms, and final).
Specific contents (subject to change):
|
- (8/27/08) First Class !!!
- Discussion of the syllabus, requirements, topics to be covered, etc.
- Introduction to Parallel Computing
- courseinfo,note1
- Suggested Reading: Chapter 1 of the textbook
- (9/3/08)
- Parallel Programming Platforms: taxonomy of
parallel computing architecture
- Suggested Reading: Chapter 2 of the textbook
- note2&3
- Homework1
- (9/10/08)
- Parallel Programming Platforms: Interconnection Networks for Parallel Computers
- Suggested Reading: Chapter 2 of the textbook
- (9/17/08)
- Analytical Modeling of Parallel Programs
- note4
- Suggested Reading: Chapter 5 of the textbook
- (9/24/08)
- MPI programming and simple examples
- note5
- Suggested Reading: Chapter 6 of the textbook
- (10/1/08) No class.
- (10/8/08) No class.
- (10/15/08)
-
PRAM algorithm: parallel sum, broadcasting, logical AND (matrix is not covered this class)
- note6
- (10/22/08) Midterm exam
- (10/29/08)
- Review Midterm exam
- PRAM algorithm: Matrix Multiplication
- note6 (slides for matrix)
- Suggested Reading: chapter 8(8.2.3) of the textbook
- (11/5/08)
- PRAM algorithms: Parallel Prefix
- note7
- Suggested Reading: Chapter 5 of the textbook
- (11/12/08)
- PRAM algorithms: Application of Parallel Prefix: binary number
addition
- note8
- (11/19/08)
- Maximum finding
- Architecture Independent Algorithm Design and Time analysis:
Matrix-Vector multiplication
- (11/26/08)
- Architecture Independent Algorithm Design and Time analysis: Matrix-matrix multiplication
- note
- (12/3/08)
- Architecture Independent Algorithm Design and Time analysis:
broadcasting
- Sorting
- note
- (12/10/08) last class
- (12/17/08)Final Exam Date
To be announced
References to some classical books on parallel computing and c++ programming language will be posted here - these titles will be for your information only - they're not
required for the course nor they will be used in any way by the
instructor.
1. 2.
The C++ Programming Language , by
Bjarne
Stroustrup 3.
Algorithm Design, by Jon Kleinberg and Eva Tardos, ISBN: 0-321-29535-8
4. Introduction to Algorithms, by
Thomas H. Cormen,
Charles E. Leiserson,
Ronald L. Rivest, and
Clifford Stein, ISBN-10: 0262032937
Links relevant to the course:
|
1.
Yumei Huo
| |
|