Last updated on Aug 25, 2011



CSC 229 Introduction to High Performance Computing

Fall 2011



Announcements:

  • Our classroom on Tuesday has been changed:

    CSC 229 (9447) FROM: TUE 6:30PM - 7:20PM 1N005; TUE 7:25PM - 8:10PM 1N114 TO: TUE 6:30PM - 8:10PM 5N106

    The classroom on Thursday is same : 1N004.

  • In order to access CSI's cluster:

    (1) From CSI’s PC, You will need to use SSH to access CSI’s cluster

    (2) From your home computer, you need to access CSI's Unix account and then access to CSI's cluster .

    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 first two weeks.

     
Instructor:

Dr. Yumei Huo

Office:   1N-202 
Tel.:   (718) 982-2841
EMail:   yumei.huo@csi.cuny.edu
WWW:   http://www.cs.csi.cuny.edu/~yumei/

Schedule:

Class hours   Tuesday 6:30pm - 8:10pm Room:1N114
    Thursday 6:30pm - 8:10pm Room:1N114

 

Office Hours:

           
Tuesday
  2:00pm - 3:30pm
    Thursday   2:00pm - 3:30pm
    or by special appointment    


Contents:

Welcome to Introduction to High Performance Computing! This class covers the very basics of parallel computing, and is intended for someone who is just becoming acquainted with the subject. In this course students will learn about concepts and terminology associated with parallel computing. The topics of parallel memory architectures and programming models are then explored. The emphasis will be on MPI programming model. These topics are followed by a discussion on several important issues related to designing parallel programs. The tutorial concludes with several examples of how to parallelize simple serial programs.

This course meets for 4 hours per week, 1 lecture hour, 3 laboratory hours.

Prerequisites: CSC 126

You will need to be able to program in C/C++ to perform the assignments in the course.


Textbook:

Parallel Programming: Techniques and Applications using Networked Workstations and Parallel Computers (2nd ed.) by B. Wilkinson and M. Allen, Prentice Hall. ISBN-10: 0131405632 ; ISBN-13: 978-0131405639.

Homeworks Assignments:
There are four homework assignments. Homeworks will focus on the exercises of the textbook.
Lab Assignments:

There will be eight lab(programming) assignments. The tasks will be writing appropriate scripts, and compiling and running the programs in the environment of CSI's cluster, evaluating the running results or solutions, and designing simple parallel programs.

Open lab: lab schedules can be found at:   www.csi.cuny.edu/studenthelpdesk

You can also use computers at the library. The following are your username & password for accessing computers at the library.
Username: your firstname.lastname (e.g.: john.smith).
Password: your date of birth using two digits for month, day, year without periods or spaces (e.g.: 051880) It is not working for you, see Tony in 1L204

Grading and Policies:
  • 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% - Lab Assignments
    25% - Midterm Exam
    25% - Final
  • Class participation is essential to succeed in this course.
  • All students are expected to do the homework .
  • DO NOT USE pencils to write down your solutions for the homework, project or exams; if you decide, however, to use a pencil do not complain about grading.
  • Check the marks in a homework, lab assignment 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. 8, 2010. If you believe a grade you received is not representative of your effort talk to the instructor.
  • Homework assignments and lab assignments are due at the start of class on their due date. If you think you won't be present in class on that due day turn the homework in earlier at instructor's office or by email.
  • Each homework or each programming assignment will receive a maximum of 100 points for full credit. Homework or programming assignment submitted up to 1 week late will receive a maximum of 80 points Homework or programming assignment submitted up to 2 weeks late will receive a maximum of 60 points. NO Homework or programming assignment will be accepted later than two weeks after due date.
  • Because of limited class time only a representative set of homework problems can be assigned. It is highly recommended that you do all the problems in the back of each chapter. Students who have done this in the past, have done well in the course.
  • SCHOOL POLICY on Academic Integrity, Plagiarism, and Cheating - Integrity is fundamental to the academic enterprise. It is violated by such acts as borrowing or purchasing assignments (including but not limited to term papers, essays, and reports) and other written assignments, using concealed notes or crib sheets during examinations, copying the work of others and submitting it as one’s own, and misappropriating the knowledge of others. The sources from which one derives one’s ideas, statements, terms, and data, including Internet sources, must be fully and specifically acknowledged in the appropriate form; failure to do so, intentionally or unintentionally, constitutes plagiarism. Violations of academic integrity may result in a lower grade or failure in a course and in disciplinary actions with penalties such as suspension or dismissal from the College.
  • The work you turn in MUST BE your own personal work, composed and written by you. No plagiarism. MY Academic Integrity Policy –Copying someone else’s computer code, even though you changed the variable names, is called plagiarism and cheating. All cheating is rewarded with a 0 on the assignment whether you are the copyer or the copyee.
  • Collaboration of any kind is NOT allowed in the in-class exams (midterms, and final).


Specific contents (subject to change):

  1. (8/30/11) First Class !!!

    Lecture:

    • Introduction
    • Reading Chapter 1 of your textbook
  2. (9/1/11)

    Lecture:

    • Parallel Programming Platforms
      • Implicit Parallelism
      • Explicitly Parallel Platforms : Flynn's taxonomy of computer architecture; Taxonomy based on Address-Space Organization
  3. (9/6/10)

    Lecture:

    • Parallel Programming Platforms
      • Explicitly Parallel Platforms : Taxonomy based on processor granularity; Taxonomy based on processor synchronization; Ideal architecture(PRAM)
  4. (9/8/11)

    Lecture:

    • Performance Metrics for Parallel Systems
  5. (9/13/11) 

    Lab:

    • Some Useful Linux Commands
  6. (9/15/11) 

    Lecture & Lab:

    • MPIlab1: MPI_Init; MPI_Finalize
  7. (9/20/11)

    Lecture & Lab:

    • MPIlab2: MPI_Comm_rank; MPI_Comm_size
  8. (9/22/11)

    Lecture & Lab:

    • MPIlab3: MPI_Send; MPI_Recv
  9. (9/27/11)

    Lecture:

    • MPI_Bcast
  10. (10/6/11)

    Lab:

    • MPIlab4: MPI_Bcast
  11. (10/11/11)

    Lecture:

    • MPI_Isend and MPI_Irecv
  12. (10/13/11)

    Lab:

    • MPIlab5: MPI_Isend and MPI_Irecv
  13. (10/18/11)

    Lecture:

    • MPI_Reduce
    • review for midterm exam
    • review homework
  14. (10/20/11) Midterm Exam
  15. (10/25/11)

    Lecture:

    • Review Midterm Exam
    • parallel sum: case(1): nprocs=N and case(2): nprocs
  16. (10/27/11)

    Lab:

    • MPIlab6: parallel sum (nprocs

  17. (11/1/11)

    Lecture:

    • parallel sum model: maximum, minimum, logical and, logical or, integer multiplication etc.
    • broadcasting(2-ary, 3-ary, k-ary)
  18. (11/3/11)

    Lab:

    • work on MPIlab6

  19. (11/8/11)

    Lecture:

    • even-odd transposition sorting
  20. (11/10/11)

    Lab:

    • MPIlab7: even-odd transposition sorting

  21. (11/15/11) 

    Lecture:

    • matrix by vector multiplication: row-wise and column-wise partition
  22. (11/17/11)

    Lecture:

    • matrix by vector multiplication: block-wise partition

  23. (11/22/11) 

    Lab:

    • work on labs
  24. (11/29/11)

    Lecture:

    • Monte Carlo Algorithm: pi
  25. (12/1/11) 

    Lecture:

    Lab:

  26. (12/6/11) 

    Lecture:

    Lab:

  27. (12/8/11) 

    Lecture:

    Lab:

  28. (12/13/11) last class

To be announced

  • Tentative date/time of midterm exam and FINAL exam


References:

References to some classical books on c++ programming language and MPI programming will be posted here later - 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. The C++ Programming Language , by Bjarne Stroustrup


Links relevant to the course:

1.


Yumei Huo

`