Preliminary ABET-style Syllabus
CATALOG DATA:
EE 699 - Advanced Program Optimization & Parallelization: 3 Credits
How to make programs execute more efficiently on modern computer hardware ranging from simple microcontrollers to supercomputers. Language constructs and compiler optimization; performance-critical architectural and hardware implementation features; use of published information to drive creation of more efficient code; identification of performance problems; identification and use of parallelism.
The course will be heavily project oriented. Each student will be expected to take a non-trivial application program (assigned, or of their selection with approval of the instructor) and speed it up using some of the techniques learned. At the end of the course, each student will be required to write a brief paper, and give a short (~10 minute) presentation to the class, summarizing how they optimized their application. Grading will be based on two in-class exams, the methods used and speedup obtained, and their presentation.
TEXTBOOK
:None required - Course notes
COORDINATOR
:Dr. Henry G. Dietz, Professor
GOALS
:The goal of this course is to enable students to improve the efficiency of their programs by fostering a deep understanding of how program constructs interact with specific architectural and hardware implementation structures. This same understanding also can be applied to optimize an architecture and its implementation for a specific program.
PREREQUISITE
:Graduate standing, EE380, fluency in C or Fortran
TOPICS
:OUTCOMES
:Upon completion of this course the students should demonstrate the ability to:
COMPUTER
USAGE:
Students will perform open-ended experiments improving the
performance of a significant program (typically one containing
more than 1000 source lines). Each student will work on a
different program; programs can be assigned to students or, with
instructor approval, a student may suggest a program that is
particularly relevant to their work outside of this class. The
student must identify problems, improve the performance,
document what was done in a short written report, and present
their work to the class.
DESIGN CONTENT:
Students will modify programs written in C to take advantage of the concepts
presented in class, thereby achieving speedup for these programs.
CLASS SCHEDULE:
Lecture 3 hours per week.
PROFESSIONAL CONTRIBUTION:
Engineering Science: 1 Credit (33%)
Engineering Design: 2 Credits (67%)
RELATION OF COURSE TO PROGRAM OBJECTIVES:
These course outcomes fulfill the following program objectives:
PREPARED BY: Henry G. Dietz DATE: January 14, 2003