Professor: | Thomas C. Bressoud | Phone: | 587-5630 |
Office: | Olin 207 | E-mail: | bressoud@denison.edu |
Office Hours: | See Bressoud Spring Schedule | Mailbox: | Olin 201 |
Meeting Time: | MWF, 8:30-9:20 a.m., Olin 220 R Practicum, 8:30-9:20 a.m., Olin 219 |
The goal of this course is to provide a deep understanding of the fundamental programming and architectural principles and engineering tradeoffs involved in designing high performance computing platforms, from the multicore machines becoming commonplace on our desktops to Beowulf clusters, as well as the programming techniques to effectively utilize these machines. Parallel machines are already ubiquitous from desktops to supercomputers, and the expectation is that they will become even more commonplace in the future. Two-core multiprocessors have given way to 4 and 8 core multiprocessors. Even our graphics processors, including the newly popular GPGPUs have become targets for parallel computation. However, very few people exploit the potential processing power of these machines because they do not understand how to write efficient parallel programs. Because one cannot design a good parallel program without understanding how parallel machines are built and vice-versa, this course will cover both parallel hardware and software design, as well as the impact that they have on each other.
Course topics include naming shared data, synchronizing threads, and the latency and bandwidth associated with communication. Case studies on shared-memory, message-passing, data-parallel and dataflow machines will be used to illustrate these techniques and tradeoffs. Programming assignments will be performed on one or more commercial multiprocessors, and there will be a significant course project.
This is a relatively unique course since this material is rarely offered to undergraduates. Because parallel processing has become such an important and mainstream technology, the time has come to integrate this material into the undergraduate systems curriculum.
In addition, resources will be provided, including tutorials and guides to the Ohio Supercomputing Center.
Midterm Tests (2) | 25% |
Homeworks | 25% |
Programming Projects | 25% |
Final Project | 20% |
Participation | 5% |
A web page will be maintained for this course. The web page will include the schedule for the course, all reading assignments, programming assignments, example programs, and other useful information, including announcements to the class. I expect you to check the web page regularly.
Participation and Attendance
In general, we would like everyone to do their part to make this an enjoyable interactive experience. Hence in addition to attending class, we would like you to actively participate by asking questions, joining in our discussions, etc. Your attendance is expected at each class meeting. Up to 3 excused absences will be tolerated without affecting your grade. Such absences should be communicated to me in advance.Readings and In-class Material
You are responsible for the content of reading assignments, lectures, and handouts, as well as announcements and schedule changes made in class, whether or not you are present. If you must miss a class, you are responsible to get what you missed. We cover considerable ground during class, and often the material is not available in the textbook. ... and it _will_ appear on exams.
It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.Exam Policy
Exams will be given in class on the day scheduled and may not be made up. On rare occasions, and with a Univeristy sanctioned excuse, I may allow an exam to be taken in advance. See me as early as possible to discuss this.Homework Policy
There will be a number of written homework and programming assignments given during the semester which will be due on the date specified. I will grade late assignments, but with the following mandatory penalty.
Lateness Penalty for first 5 days 10% per daythereafter 50%With these penalties in mind, if an individual situation comes up, you can make an informed decision about turning an assignment in late. I do not grant individual extensions. If an extension is warranted for some systematic reason, it will be granted to the entire class. You are also allowed to use 3 grace/slip days, at most one per programming assignment. The use of a grace day does not incur the 10% penalty.
Any late assignments must be turned in by the last class day of the semester (May 2). Given the late penalty, you should work hard to make sure that assignments are submitted on time. Since it will most likely not be obvious how long an assignment might take, you are well advised to start early. Like other classes at Denison, it is expected that you devote at least 3 hours to these assignments for each hour of class time. Homework assignments must be typed.
You may discuss homework problems with other students in the class, but written (and typed) work must be your own. In other words, you may talk about homework problems with your peers, but when it comes time to write your solutions, you are on your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. Keep in mind that it is quite easy for me to tell when two students have been working too closely. In such cases, I am obliged to report the instance to the Associate Provost.
You may not get help from students outside the class. If you have questions, come see me and I will be happy to help.
Topics
- Taxonomy of Parallel Computers
- Performance
- Parallel Programming Abstractions
- Algorithmic Techniques
- Parallel Programming with Threads/OpenMP
- Message Passing Interface (MPI)
- MapReduce / Hadoop
- Future Directions
Proposed and developed by Denison students, passed unanimously by DCGA and Denison’s faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty, and it requires that cases be heard by the Academic Integrity Board. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated. Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted—not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.
For further information about the Code of Academic Integrity see http://www.denison.edu/about/integrity.html
Any student who thinks he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss your specific needs. I rely on the Office of Academic Support in Doane 104 to verify the need for reasonable accommodation based on documentation on file in their office.Have a great semester! If you need anything, please let me know.