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 E-mail: ramani AT;     

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

Grading: Exams: 45%, Homework/Project: 45%, Class/Forums Participation 10%

Classweb page:





09/01, 2009


Lecture 1

Course Topics

Introduction to the course. Introductions. Grading. What the course is about. Participation. Projects.



09/03, 2009


 Lecture 2

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


Lecture 3

Data representation on the computer

Bits, Bytes, Words; Alignment; Integers; Floating Point

Chapter 2 of Prof. Stewart’s book draft


09/10, 2009


Lecture 4


Homework 1

Floating point, character data;

Measuring computer performance


09/15, 2009


 Lecture 5


Memory system

Chapter 4 of Prof. Stewart’s book draft


09/17, 2009


Lecture 6

Homework 2



09/22, 2009


Lecture 7

CMU course

Cache aware programming

 See slides 26-51 of the CMU course for the memory mountain and matrix multiplication examples

09/24, 2009


 Lecture 8

 Libraries: BLAS, LINpack, LApack,




Page Faults and TLBs : UCF slides

ATLAS Paper,


FLAME book

09/29, 2009


 Lecture 9

additional slides

 Instruction pipelining

Chapter 3 of Prof. Stewart’s book draft


10/01, 2009


 No Class



10/06, 2009


Lecture 10

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


Lecture 11


C, F77, F95

 Chapter 6 of Prof. Stewart’s book draft

10/13, 2009


Lecture 12

(slides above)

 Pointers and arrays; matrices in Fortran


10/15, 2009


Lecture 13

(matrix slides above)

Matrices in C.


Parallel programming


10/20, 2009





10/22, 2009


Lecture 14

Parallel programming (see slides above)

Introduction to Open MP


10/27, 2009


Lecture 15

Open MP (continued)

Homework (see class discussion and email)

Please go to this link and activate your TerpConnect account

Email mcnabb AT and cc-me when you are done

10/29, 2009


Lecture 16

 Open MP (conclusion)


Everybody should have their account now …

Instructions on the cluster are at

11/03, 2009


Lecture 17


 Suggested Projects

MPI (conclusion)

Try a few of the MPI examples in the homework (no submission)

 Class Account

11/05, 2009


Lecture 18


 Current Projects

11/10, 2009


Lecture 19

 GPU Computing

 Guest lecture by Balaji Vasan Srinivasan

11/12, 2009


Lecture 20

(see above)

 GPU Computing


11/17, 2009


Lecture 21

Case Study: Fast Multipole Methods on Graphics Processors


11/19, 2009


Lecture 22




11/24, 2009


Lecture 23


Profiling code


11/26, 2009


No Class



12/01, 2009


Lecture 24



12/03, 2009


Lecture 25

Project Presentation

John Tritschler, Kathryn Lienehan, Chatt Williamson, Ondrej Juhasz & Patrick Betoney, Anzi Hu, Peter Copp


12/08, 2009


Lecture 26

Project Presentation

Yun Zhou, Sebastian Thomas, Vikram H., Kan Yang, Ria Malhan, Alfredo Nava Tudela, Cal Sargent, Monica Syal


12/10, 2009


Lecture 27

Project Presentation

Minghao Wu, Moble Benedict, Taran Kalra, Tim Doster, Tim Dewey, Vasilis Sotiris,  Viktoria Taroudakis, Matthew Adams



Final Exam







Useful Links