CSE 6220 Introduction to High Performance Computing Spring 2014 General Information Instructor: Srinivas Aluru Office Phone email Office Hours : : : : 1336 Klaus 385-1486 aluru@cc.gatech.edu TTh 10:30-11:30 and by appointment Teaching Assistants: James Fairbanks Office email Office Hours : : : 1343 Klaus james.fairbanks@gatech.edu W 1-2:30 Rahul Nihalani Office email Office Hours : : : 1209 Klaus rahuln@gatech.edu F 2-3:30 Course Overview Course Outline This course will provide a comprehensive introduction to parallel algorithms and parallel programming, with strong emphasis on the design of parallel algorithms and their rigorous analysis. Exposure to parallel programming is provided through programming assignments using MPI. Throughout the course, the design of algorithms is interlaced with the programming techniques useful in coding them. Programming assignments will be done on the Jinx cluster (http://support.cc.gatech.edu/facilities/instructional-labs/jinx-cluster). The topics covered in this course include: • Performance measures: Speedup, efficiency and scalability. • Model of parallel computation and basic communication primitives. • Parallel prefix and applications. • Parallel sorting. • Embeddings. • Parallel matrix algorithms. • Communication networks for parallel computers and parallel models of computation. • Parallel fast Fourier transforms. • Parallel Programming with MPI: Writing and executing MPI programs, collective communication, grouping data for communication, communicators and topologies. • Additional topics (as time permits): – Parallel random number generation. – Parallel Octrees. – Parallel N-body methods. – Parallel Bayesian network construction. Text You will not need to purchase any text for this course. Lecture notes for most topics covered in class, copies of slides used in class, and other reference material as appropriate, will be provided by the instructor. The following books are useful references. • Introduction to Parallel Computing: Design and Analysis of Algorithms by A. Grama, A. Gupta, G. Karypis and V. Kumar. This book can be accessed via Safari Books Online at http://proquest.safaribooksonline.com.www.library.gatech.edu:2048/book/ software-engineering-and-development/0201648652 • Parallel Programming with MPI by Peter S. Pacheco. The following freely available web resources are excellent sources for studying MPI. • A book on MPI is available at http://www.netlib.org/utk/papers/mpi-book/mpi-book.html. • A nice tutorial on MPI is available at https://computing.llnl.gov/tutorials/mpi/. • The following web pages for MPI routines come in handy when programming: http://www.mcs.anl.gov/research/projects/mpi/www/www3/. Prerequisites An undergraduate course in design and analysis of algorithm, or equivalent knowledge. Course Website T-square site will be used for electronic communication (https://t-square.gatech.edu). It will be used for posting class notes, slides, homeworks, and programming assignments. It will also be used for electronically submitting homework and programming assignments. Please check the site frequently for additional useful information pertaining to the class and announcements for upcoming deadlines. We will be using Piazza for class discussion. The Piazza site for the course can be directly accessed at https://piazza.com/gatech/spring2014/cse6220aqq3, or via a link made available from the course T-square site. The Piazza system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com. Course Policies The course grade will be based on homeworks, programming assignments and exams. Homeworks and programming assignments are due before 11:59 PM Eastern Standard Time on the day they are due. The deadline for distance-learning students is one week after the deadline for on-campus students. Students are strongly encouraged to be concise in answering homeworks, and use LaTeX for preparing solutions (other forms are acceptable). Late submissions are not accepted unless there is a compelling reason with proof. There will be three exams, two midterms and a final. Students who are not able to take a midterm exam at the scheduled time due to valid reasons (such as conference travel) should make a request well in advance, and be prepared to take the exam earlier than scheduled time. The final exam will be comprehensive. MPI programming will be tested solely through the programming assignments, and will not be part of the exams. Students are reminded of their responsibility for ethical conduct. Each student must read and abide by the Georgia Tech Academic Honor Code (www.honor.gatech.edu). The students are encouraged to approach the instructor and the TAs regarding any difficulties in understanding the course material or carrying out the assignments. Any cases of plagiarism are taken seriously, and dealt in accordance with the GT academic honor code. You are encouraged to solve the homework problems independently, at least initially, as they serve as ideal preparation for the exams. You are allowed to collaboratively work with other students in solving the homework problems. However, each student must write the solution on her/his own and explicitly mention the names of collaborating student(s) for each problem in every copy of the submission. Programming assignments are to be done in groups of two. Each student in a group should be familiar with the entire program and be able to answer questions, even though the work can be split between the students. Grading The course grade will be based on the following weights: Homeworks Programming Assignments Midterm I Midterm II Final Exam — — — — — 15% 25% 15% (Thu, Feb 20) 15% (Thu, Mar 20) 30% (Thu, May 1, 11:30AM - 2:20PM) Learning Disabilities If you have a learning disability that makes it difficult for you to understand the lectures or perform the required work, please inform the instructor. Every possible effort will be made to accommodate any special needs required.