Program Generation and Optimization (CS 650)
Assignments and Solutions
- Course Description
This course introduces the student to the foundations and state-of-the-art techniques in high performance software development for numeric libraries and other important kernels. Topics include: 1) fundamental tools in algorithm theory, 2) optimizing compilers, 3) effective utilization of the memory hierarchy and other architectural features, 4) how to use special instruction sets, and 5) an introduction to the concepts of self-adaptable software and program generators.
- Course Objectives
- To be able to optimize code for memory hierarchy, SSE, multicore, Cell, and GPU.
- To be able to implement fast algorithms for various signal transforms.
- To utilize techniques to automatically implement, optimize, and adapt programs to a variety of computing platforms.
- To perform code transformations and optimizations.
- To develop a domain specific language.
Advanced graduate CS and ECE students (Course counts as an advanced CS elective)
CS 550 (Programming Languages) and CS 540 (High Performance Computing.
- Jeremy Johnson
Office: University Crossings 100C
e-mail: jjohnson AT cs DOT drexel DOT edu
office hours: TR 11-12 and online T 7-8, additional hours by appointment.
- Meeting Time
- Wed. 6-9:00 in Korman 116 and online.
The online and in class versions
of the course will be identical (in class lectures will be recorded and posted
on webct and use of online discussions will be required by everyone).
- Course Discussion Groups
- BbVista will be used for class discussion and announcements - check regularly
Please use this list for questions and discussions related to the course.
If you know the answer to someone's question, please feel free to jump in,
as long as well it is not an answer to a homework problem. I will moderate
the list so that frivolous mail and spam is not forwarded.
- Journal and conference publications.
- SPIRAL system (www.spiral.net)
- Week 1: Overview of SPIRAL and fast signal transforms
- Week 2: Code Optimization
- Week 3: Optimizing Compilers
- Week 4: SPL
- Week 5: Sigma-SPL
- Week 6: Tagged-SPL (Vectorization)
- Week 7: Tagged-SPL (SMP)
- Week 8: Tagged-SPL (Streaming Computation)
- Week 9: Automatic Library Generation
- Week 10: Operator Language - Beyond transforms
- Class readings and participation (50%)
- Programming Assignments (50%)
- John R. Levine, Tony Mason, Doug Brown,
Lex & Yacc,
2nd/updated edition (October 1992), O'Reilly & Associates. An
online copy of this book is available through Drexel's library
- list reference books here.