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 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)

Lecture 1

Course Topics

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

 

 

09/03, 2009

(Thursday)

 Lecture 2

A model for the computer.

Chapter 1 of Prof. Stewart’s book draft

Turing

 G. Moore, "Cramming More Components onto integrated circuits," Electronics, 38, 1965

09/08, 2009

(Tuesday)

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

(Thursday)

Lecture 4

 

Homework 1

Floating point, character data;

Measuring computer performance

 

09/15, 2009

(Tuesday)

 Lecture 5

 

Memory system

Chapter 4 of Prof. Stewart’s book draft

 

09/17, 2009

(Thursday)

Lecture 6

Homework 2

Cache

 

09/22, 2009

(Tuesday)

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

(Thursday)

 Lecture 8

 Libraries: BLAS, LINpack, LApack,

SCALApack, FLAME

 

ATLAS, GOTO BLAS, FFTW

Page Faults and TLBs : UCF slides

ATLAS Paper,

GOTO BLAS paper

FLAME book

09/29, 2009

(Tuesday)

 Lecture 9

additional slides

 Instruction pipelining

Chapter 3 of Prof. Stewart’s book draft

 

10/01, 2009

(Thursday)

 No Class

 

 

10/06, 2009

(Tuesday)

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

(Thursday)

Lecture 11

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)

Lecture 13

(matrix slides above)

Matrices in C.

 

Parallel programming

 

10/20, 2009

(Tuesday)

 

 Exam

 

10/22, 2009

(Thursday)

Lecture 14

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 cc-me when you are done

10/29, 2009

(Thursday)

Lecture 16

 Open MP (conclusion)

MPI

Everybody should have their account now …

Instructions on the cluster are at    

http://deepthought.umd.edu/howto.html

11/03, 2009

(Tuesday)

Lecture 17

Homework

 Suggested Projects

MPI (conclusion)

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

 Class Account

11/05, 2009

(Thursday)

Lecture 18

Networks

 Current Projects

11/10, 2009

(Tuesday)

Lecture 19

 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)

Lecture 22

Heap/Stack

Compilers

 

11/24, 2009

(Tuesday)

Lecture 23

 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

Final Exam

1:30pm-3:30pm

 

 

 

 

 


Useful Links