Course web page: http//www.ece.uic.edu/˜dutt/courses/ece566/ece566.html.
Check this page at least once a week for important messages and
announcements.
1
ECE/CS 566: Parallel Processing — Algorithms, Programming, Architectures Spring 2015 T/Th 6-7:15 pm, 204 TH Synopsis: Parallel processing is a means to deriving better performance for many hard/computeintensive applications, These include data mining, various scientific computations, VLSI CAD and weather prediction. NSF has recently established various new massively parallel system centers including the one at Urbana to address the resurgent need for parallel processing for critical computations. Furthermore, and probably more pertinently, multicore processors are becoming the norm in workstations and servers. Application companies are thus looking for developers with expertise in parallel algorithm and program development. This course will give you the knowledge, insight, skill and practice to do just that. Teaching Staff Instructor: Professor Shantanu Dutt, 355-1314, 930 SEO email:
[email protected], URL: http//www.ece.uic.edu/˜dutt Instructor’s Office Hours: T/Th 5-5:45 pm Course web page: http//www.ece.uic.edu/˜dutt/courses/ece566/ece566.html Check this page at least once a week for important messages and announcements. Pre-requisites : Algorithms (most important—need to have taken or concurrently take CS 401 or equivalent), programming proficiency (mainly C), computer architecture (ECE/CS 466 or equivalent). Course Material Text: Introduction to Parallel Computing (2nd Edition), Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta, Addison Wesley, 2nd edition, 2003, ISBN-10: 0201648652, ISBN-13: 978-0201648652. Lecture Notes: Most will be posted on the course webpage and others will be handed out in class. It is very important for you to print out the lecture notes on the webpage so that you can follow the class lectures that will mostly use these notes. Most of the class material will be based on these notes which have been derived from various sources including research papers.
1. 2. 3. 4. 5. 6. 7. 8. 9.
Course Outline Introduction to and classification of concurrency Measures of performance (speedup, efficiency, isoefficiency, etc.) Basic regular parallel algorithms (reduction operations, iterative Poission-type computations, matrix multiplication, sorting) Interconnection topologies of multicomputers and their relation to the structure of some basic parallel computations Introduction to the parallel message-passing programming language MPI and its use on UIC’s parallel computer More complex regular algorithms (prefix computation, divide and conquer, Gaussian elemination) Irregular parallel computations and load balancing Routing algorithms and flow control mechanisms for multicomputer communication Architecture of routing switches (communication controllers)–if time permits
2
Grading 1. 2. 3. 4.
About 4 homeworks, 2 of which will include parallel programming: 35% Midterm exam: 20% Class participation: 10% Final project, report and presentation (approx. 20-25 slides, 30 mins): 35% The final project can involve either: a) Design and implementation of a parallel algorithm for an interseting but not too complex computation that can be decided by the students with approval from the instructor. OR b) A presentation on an interesting research topic approved by the instructor, and invloving at least 4-5 papers. Depending on the project or the paper-presemtation topic, it can be done by a group of 1 or 2 students.