AMSC 662/ CMSC 662: Computer Organization and Programming for Scientific Computing
Class: TuTh......12:30pm 1:45pm (JMP 3120)
Office Hours: by appointment, in AVW 3365.
Instructor: Ramani Duraiswami Email: ramani AT umiacs.umd.edu;
Textbook: Prof. Stewart’s introductory textbook (in preparation)  chapters will be posted here. We thank Prof. Stewart for graciously providing these.
Another useful textbook is “Computer Systems: A Programmer’s Perspective”  by Bryant and O’Hallaron
This course will have regular homework and a project (in addition to exams). Class participation is required.
Collaboration Policy: You may study together and discuss problems and methods of solution with each other to improve your understanding. You are welcome to discuss assignments in a general way among yourselves, and on joint projects. However, you must clearly cite where this is the case.
Note to Computer Science Students: This course is NOT a valid qualifying course for MS or Phd. It can be used as one of the additional courses.
You are responsible for checking this page.
Policy: Honor code http://www.studenthonorcouncil.umd.edu/code.html
Grading: Exams: 45%, Homework/Project: 45%, Class/Forums Participation 10%
Classweb page: http://www.umiacs.umd.edu/~ramani/cmsc662/
DATE 
LECTURE 
CONTENTS 
Reading/Remarks 
09/01, 2009 (Tuesday) 
Introduction to the course. Introductions. Grading. What the course is about. Participation. Projects.



09/03, 2009 (Thursday) 
A model for the computer. Chapter 1 of Prof. Stewart’s book draft 
G. Moore, "Cramming More Components onto integrated circuits," Electronics, 38, 1965 

09/08, 2009 (Tuesday) 
Data representation on the computer Bits, Bytes, Words; Alignment; Integers; Floating Point Chapter 2 of Prof. Stewart’s book draft 


09/10, 2009 (Thursday) 

Floating point, character data; Measuring computer performance 

09/15, 2009 (Tuesday) 

Memory system Chapter 4 of Prof. Stewart’s book draft 

09/17, 2009 (Thursday) 
Cache 


09/22, 2009 (Tuesday) 
Cache aware programming 
See slides 2651 of the CMU course for the memory mountain and matrix multiplication examples 

09/24, 2009 (Thursday) 
Lecture 8 
Libraries: BLAS, LINpack, LApack,

Page Faults and TLBs : UCF slides 
09/29, 2009 (Tuesday) 
Instruction pipelining Chapter 3 of Prof. Stewart’s book draft 


10/01, 2009 (Thursday) 
No Class 


10/06, 2009 (Tuesday) 
Loop Partitioning Vector Instructions SIMD, SSE and Vector instructions on current processors 
Wikipedia entries: SIMD, SSE, SSE2, SSE3,·(SSSE3),·SSE4,·SSE5,· AVX,·CVT16,·FMA3,·FMA4,·XOP 

10/08, 2009 (Thursday) 
Languages C, F77, F95 
Chapter 6 of Prof. Stewart’s book draft 

10/13, 2009 (Tuesday) 
Lecture 12 (slides above) 
Pointers and arrays; matrices in Fortran 

10/15, 2009 (Thursday) 
(matrix slides above) 
Matrices in C.
Parallel programming 

10/20, 2009 (Tuesday) 

Exam 

10/22, 2009 (Thursday) 
Parallel programming (see slides above) Introduction to Open MP 


10/27, 2009 (Tuesday) 
Lecture 15 
Open MP (continued) Homework (see class discussion and email) 
Please go to this link and activate your TerpConnect account Email mcnabb AT umd.edu and ccme when you are done 
10/29, 2009 (Thursday) 
Open MP (conclusion) MPI 
Everybody should have their account now … Instructions on the cluster are at 

11/03, 2009 (Tuesday) 
MPI (conclusion) Try a few of the MPI examples in the homework (no submission) 

11/05, 2009 (Thursday) 
Lecture 18 

11/10, 2009 (Tuesday) 
GPU Computing 
Guest lecture by Balaji Vasan Srinivasan 

11/12, 2009 (Thursday) 
Lecture 20 (see above) 
GPU Computing 

11/17, 2009 (Tuesday) 
Lecture 21 
Case Study: Fast Multipole Methods on Graphics Processors 

11/19, 2009 (Thursday) 
Heap/Stack Compilers 


11/24, 2009 (Tuesday) 
Compilers Profiling code 


11/26, 2009 (Thursday) 
No Class 
Thanksgiving 

12/01, 2009 (Tuesday) 
Lecture 24 
Threads 

12/03, 2009 (Thursday) 
Lecture 25 
Project Presentation John Tritschler, Kathryn Lienehan, Chatt Williamson, Ondrej Juhasz & Patrick Betoney, Anzi Hu, Peter Copp 

12/08, 2009 (Tuesday) 
Lecture 26 
Project Presentation Yun Zhou, Sebastian Thomas, Vikram H., Kan Yang, Ria Malhan, Alfredo Nava Tudela, Cal Sargent, Monica Syal 

12/10, 2009 (Thursday) 
Lecture 27 
Project Presentation Minghao Wu, Moble Benedict, Taran Kalra, Tim Doster, Tim Dewey, Vasilis Sotiris, Viktoria Taroudakis, Matthew Adams 

12/18/2009 
1:30pm3:30pm 






Useful Links