teaching
CSE 8803-HPC
Fall 2010
T–Th 9:30–11a
Architecture (East), Room 309
Hot Topics in Parallel Computing. This course is a graduate-level seminar that surveys current topics in high-performance parallel computing, including new developments in parallel algorithms, programming models, compilers, run-time systems, architectures, applications, software engineering, performance analysis and tuning.
 
There are no formal lectures. Instead, students read approximately 2-4 research papers each week and lead in-class discussions. The course culminates in a major term project, which is expected to be at the level of a research conference paper submission.
 
Note: Access to the course website is by invitation only, and intended for use by students enrolled in the course or approved auditors.
CS 4225
Spring 2010
M/W/F 10–11a
College of Computing Building (CCB), Room 102
Introduction to High-Performance Computing. The goal of this course is to provide an introduction to the algorithmic and software tools and techniques needed to implement effective, high-performing programs on modern parallel computing systems. The course emphasizes algorithms, programming models for shared memory architectures. Students are expected to complete several hands-on assignments.
CSE 6230 (also CS 6230)
Fall 2009
T–Th 12–1:30p
Klaus Advanced Computing Building, Room 2447
High-Performance Computing: Tools and Applications. The goal of this course is to provide a graduate-level introduction to high-performance parallel, distributed, network computing. The emphasis is on a survey of current trends in parallel computer architectures, programming models (compilers, languages, and libraries), and systems (operating systems and I/O). The course includes a number of hands-on assignments and a final project.
Optimizing algorthms for the memory hierarchy.
Feb. 18–20, 2009
Part 1: Theoretical foundations (PDF; 1.3 MB)
Part 2: Cache architectures (PDF; 2.9 MB)
 
I presented these slides as guest lectures for Prof. George Biros' HPC class (Spring 2009).
CS 4643 / MATH 4641
Spring 2009
M–W 4:30–6p
Lamar Allen Sustainable Education Bldg., Rm. 110
Numerical Analysis II. The goal of this course is to introduce you to some of the modern numerical methods for solving ordinary and partial differential equations. We will be particularly interested in the intersections between the theory of numerical analysis and ideas from computer science, including the effects of finite-precision arithmetic and parallel computing. The course follows CS 4803 / MATH 4640: Numerical Analysis I, which was last offered in Fall 2008 by Prof. Haesun Park [link].
CSE 6230 (also CS 6230)
Fall 2008
T–Th 12–1:30p
College of Computing Bldg., Room 52
High-Performance Computing: Tools and Applications. The goal of this course is to provide a graduate-level introduction to high-performance parallel, distributed, network computing. The emphasis is on a survey of current trends in parallel computer architectures, programming models (compilers, languages, and libraries), and systems (operating systems and I/O). The course includes a number of hands-on assignments and a final project.
Georgia Tech Summer CRUISE Program
June 6, 2008
Talk: Parallel programming models

This talk is an introductory survey to some of the programming models used in high-performance computing today.
CSE 8803 PNA
Spring 2008
T–Th 9:35–10:55a
Mol. Sci. Engr. Bldg., Room G011
Parallel numerical algorithms. This course surveys parallelization techniques and issues for core numerical algorithms in computational science, including dense and sparse linear algebra computations, numerical solution of ordinary and partial differential equations, signal processing, numerical optimization, and particle simulations. About 2/3 of the course will be devoted to fundamental techniques; the remaining 1/3 will cover current research, with guest lectures on novel algorithms and the interactions between algorithms and machine architectures, among other topics. Students will complete a collaborative term project.

The course is open to graduate and advanced undergraduate students, and students in all science and engineering disciplines are encouraged to attend. Some exposure to numerical algorithms (e.g., CS 8803 NMC) and/or basic parallel programming is desirable.