CS 8803-DA, CS 4803-DA: Computational Science & Engineering (CSE) Algorithms
Georgia Tech, Fall 2006
Tuesday/Thursday 3:05 PM - 4:25 PM, College of Computing Bldg., Room 101
Instructor:
Dr. David A. Bader
Office: CCB 257
Office Hours: Tu/Th 2pm-3pm, or by appointment.
Teaching Assistant: Akshay Wadia, awadia@cc.gatech.edu
TA Office Hours: Friday, 12-1pm, CoC Commons Area
Suggested Textbook:
Class Mailing List:
Course Description:
This course will introduce students to designing high-performance and
scalable algorithms for computational science & engineering
applications. The course focuses on algorithm design, complexity
analysis, experimentation, and optimization, for important science and
engineering applications. Students will develop knowledge and skills
concerning:
- the design and analysis of real-world algorithms employed in
computational science and engineering applications, and
- performance optimization of applications using the best
practices of algorithm engineering.
Students (from the Sciences, Engineering, and Computing) interested in
algorithmic applications in science and engineering are encouraged to
take this course.
Course Information:
- Syllabus
- Midterm: Thursday, October 12, in-class.
- This course can be taken for satisfying the theory breadth requirement
by computer science graduate students (M.S. and non-theory Ph.D.
students). This course cannot be taken by ACO students to satisfy
their core requirement and theory Ph.D. students in computer science
to satisfy the theory breadth requirement.
- Homework Set #1, due 7 September.
- Homework Set #2, due 21 September.
- Homework Set #3, due 9 November.
- Homework Set #4, due 28 November.
Lectures:
- Lecture 1, 22 August 2006
- Lecture 2, 24 August 2006
- Lecture 4, 31 August 2006
- Lecture 5, 5 September 2006
- Lecture 6, 7 September 2006
- Lecture 7, 12 September 2006
- Lecture 9, 19 September 2006
- Lecture 10, 21 September 2006
- Lecture 11, 26 September 2006
- Lecture 12, 28 September 2006
- Lecture 13, 3 October 2006
- Lecture 14, 5 October 2006
- Lecture 15, 10 October 2006
- Lecture 16, 19 October 2006
- Lecture 17, 23 October 2006
- Lectures 18-19, 25 & 31 October 2006
- Lectures 20, 2 November 2006
- Lecture 21, 7 November 2006
- Lecture 22, 21 November 2006
- Lecture 23, 28 November 2006
- Lecture 24, 30 November 2006
- Lecture 25, 5 December 2006
Useful Links:
Additional Readings:
- Guy Blelloch, Algorithms in the Real World, Lecture Notes
- Alok Aggarwal and Jeffrey Scott Vitter, The Input/Output Complexity of Sorting and Related Problems, Communications of the ACM, 31:1116-1127, 1988.
- Sandeep Sen, Siddhartha Chatterjee, Neeraj Dumir, Towards a theory of cache-efficient algorithms, Journal of the ACM, 49(6):828-858, 2002.
- A. LaMarca and R.E. Ladner, The Influence of Caches on the Performance of Heaps, Journal of Experimental Algorithmics, Vol 1, 1996.
- A. LaMarca and R.E. Ladner, The Influence of Caches on the Performance of Sorting, Journal of Algorithms, 31:66-104, 1999.
- R.E. Ladner, J.D. Fix, and A. LaMarca, Cache Performance Analysis of Traversals and Random Accesses, Tenth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), 1999.
- John W. Romein, Jaap Heringa, Henri E. Bal, A Million-Fold Speed Improvement in Genomic Repeats Detection, Supercomputing 2003.
- Joon-Sang Park, Michael Penner, Viktor K Prasanna, Optimizing Graph Algorithms for Improved Cache Performance, International Parallel and Distributed Processing Symposium, Fort Lauderdale, FL, April 2002.
- Markus Kowarschik, Ulrich Rüde, Christian Weiss, and Wolfgang Karl, Cache-Aware Multigrid Methods for Solving Poisson's Equation in Two Dimensions, Computing, 64:381-399, 2000.
- M. Frigo, C. E. Leiserson, H. Prokop, and S. Ramachandran, Cache-Oblivious Algorithms, IEEE Symposium on Foundations of Computer Science, 1999.
- Stephen Alstrup, Michael A. Bender, Erik D. Demaine, Martin Farach-Colton, J. Ian Munro, Theis Rauhe, Mikkel Thorup, Efficient Tree Layout in a Multilevel Memory Hierarchy, Extended version of ESA 2002 paper, November 2002.
- Lars Arge, Michael A. Bender, Erik D. Demaine, Bryan Holland-Minkley, J. Ian Munro, Cache-Oblivious Priority Queue and Graph Algorithm Applications, 34th ACM Symposium on Theory of Computing (STOC), 2002.
- L. G. Valiant, A Bridging Model for Parallel Computation, Communication of the ACM, 33(8):103-111, 1990.
- D. E. Culler, R. M. Karp, D. A. Patterson, A. Sahay, K. E. Schauser, E. Santos, R. Subramonian, and T. von Eicken, LogP: Towards a Realistic Model of Parallel Computation, 4th ACM Symp. Principles and Practice of Parallel Programming (PPoPP), pp 1-12, May 1993.
- V. Ramachandran, A General-Purpose Shared-Memory Model for Parallel Computation, in M. T. Heath and A. Ranade and R. S. Schreiber (eds.), Algorithms for Parallel Processing v 105, pp 1--18, Springer-Verlag, New York, 1999.
- M. Snir and D.A. Bader, A Framework for Measuring Supercomputer Productivity, The International Journal of High Performance Computing Applications, 2004.
- D.A. Bader, B.M.E. Moret, and P. Sanders, ``High-Performance Algorithm Engineering for Parallel Computation,'' Lecture Notes of Computer Science, 2002.
- William E. Lorensen, Harvey E. Cline. Marching Cubes: A High Resolution 3D Surface Construction Algorithm. Computer Graphics, Volume 21, Number 4, July 1987.
- M. Erez, J. H. Ahn, A. Garg, W.J. Dally, and E. Darve, Analysis and Performance Results of a Molecular Modeling Application on Merrimac, SC'04, Pittsburgh, PA, November 2004.
- D.S. Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms, in Proceedings of the 5th and 6th DIMACS Implementation Challenges, M. Goldwasser, D. S. Johnson, and C. C. McGeoch, Editors, American Mathematical Society, Providence, 2002.
- The Buffer Tree: A Technique for Designing Batched External Data Structures, Lars Arge, Algorithmica, 37(1):1-24, 2003.
- Reach for A*, Efficient Point-to-Point Shortest Path Algorithms, A.V. Goldberg, H. Kaplan, and R.F. Werneck, 2006.
- A fast and high quality multilevel scheme for partitioning irregular graphs, George Karypis and Vipin Kumar, International Conference on Parallel Processing, pp. 113-122, 1995.
- Analysis of Multilevel Graph Partitioning. George Karypis and Vipin Kumar. Supercomputing, 1995.