CSE 6140: Computational Science & Engineering (CSE) Algorithms
Georgia Tech, Fall 2007
Tuesday/Thursday 3:05 PM - 4:25 PM, Klaus Advanced Computing Building, Room 2443
Instructor:
Dr. David A. Bader
Office: KACB 1332
Office Hours: Tu/Th 2pm-3pm, or by appointment.
Teaching Assistant: Satvir Bhatia, sbhatia6@gatech.edu
TA Office Hours: Tu/Th 11am-12pm, CoC Commons Area
Textbooks:
- Required:
Parallel Processing for Scientific Computing,
Edited by Michael A. Heroux, Padma Raghavan, and Horst D. Simon,
SIAM, 2006.
- Recommended:
Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms,
Second edition,
MIT Press, 2001.
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: Tuesday, October 16, 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 11 September.
- Homework Set #2, due 27 September.
- Homework Set #3, due 30 October.
- Homework Set #4, due 27 November.
Lectures:
- Lecture 1, 21 August 2007
- Lecture 2, 23 August 2007
- Lecture 4, 30 August 2007
- Lecture 5, 4 September 2007
- Lecture 6, 6 September 2007
- Lecture 7, 11 September 2007
- Lecture 8, 13 September 2007
- Lecture 9, 18 September 2007
- Lecture 10, 20 September 2007
- Lecture 11, 25 September 2007
- Lectures 12-13, 27 September and 2 October 2007
- Lecture 14, 11 October 2007
- Lecture 17, 18 October 2007
- Lecture 18, 23 October 2007
- Lecture 19, 25 October 2007
- Lecture 20, 30 October 2007
- Lecture 22, 6 November 2007
- Lecture 26, 20 November 2007
- Lectures 27-28, 27 November 2007
- Lecture 29, 4 December 2007
- Lecture 30, 6 December 2007
Useful Links:
- Web sites of related courses:
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.