CSC 6750 – Parallel Programming Fall, 2008 Section 1: TR 4:30 pm – 5:50, Br 417 Instructor: Sheikh Ghafoor Office: Br 412A Office Hours: TR 2:00 – 4:00 , Other times by appointment. Email: sghafoor@tntech.edu Course Webpage: http://users.csc.tntech.edu/~sghafoor/6750/6750.html Text: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers, 2nd Edition by Barry Wilkinson and Michael Allen. Publisher: Prentice Hall. 2005. ISBN: 0-13-140563-2. Reference: Introduction to Parallel Computing, 2nd Edition by Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar. Publisher: Addison Wesley. 2003. ISBN: 0-20164865-2. Prerequisite: CSC2300 or CSC2100, CSC2400 Description: Three hours lecture. Introduction to parallel computing architectures and programming paradigms. Theoretical and practical aspects of parallel programming and problem solving. Design, development, analysis, and evaluation of parallel algorithms. Course Objectives: 1. To introduce principles and concepts of parallel computing techniques using Message Passing Interface (MPI). 2. To provide hands-on experience in implementing parallel programs on the CSC resources Attendance: Attendance is required for this course. If you know you will be absent for a legitimate reason, let the instructor know. If you are sick bring a doctor’s excuse written university excuse to resolve the absence Programming Assignments: There will be 3 to 5 programming assignments during the semester. In addition there will be few home work assignments. These assignments are to be individual efforts. A student may consult only with the instructor, for help on a programming assignment. Quizzes: There will be several in class quizzes. Tests: There will be 3 tests during the semester and no comprehensive final. The 3rd test will be considered as final. Make-up Tests/Quizzes: If an absence from a quiz is excused, then the average number of points of the other quizzes will be substituted for the missed quiz. If the absence is unexcused, the student will be assigned a score of zero points for the test or quiz. For excused absence from a test, student should make arrangements with the instructor to take the test at another time. Term Paper: Students have to write a term paper on a topic related to programming. They have to write a one page proposal for the term paper and have it approved by the instructor. Students have to submit an interim paper before submission of the final paper. The term paper proposal is due September 02, the interim paper is due on November 20, and the final paper is due December 4. The term paper shouldn’t be merely a compilation or survey. It should contain some original thought, ideas or analysis. Academic Conduct: Cheating, in particular plagiarism, will result in an automatic failure. Don’t do it. Faking program output counts as cheating! A first offense of cheating on a test, exam, or programming assignment will result in a grade of 0 for that particular activity. Any subsequent offense will result in a grade of F for the course. This includes both the provider of the information as well as the receiver of the information. Any student who violates the university’s, department’s, or class’s academic honesty policy will be reported to the Dean of Students for academic discipline. For details on cheating and plagiarism please refer to http://www.tntech.edu/studenthandbook/handbook_section4.asp http://www.tntech.edu/adp/plag.html Grading Scale: A=90-100, B=80-89, C=70-79, D=60-69, F= <60 Point Distribution: Tests Programming Assignments Quizzes Term Paper 45% 30% 15% 10% Total 100% Students with a disability requiring accommodations should contact the Office of Disability Services (ODS). An accommodation request should be completed as soon as possible, preferably by first week of the course. The ODS is located in the Roden University Center, Room 112; phone 372-6119. Tentative Course Topics Overview Parallel computers Measuring performance of parallel algorithms Message passing computing MPI tutorial Embarrassingly parallel computations Partitioning and divide-and-conquer-strategies Pipelined computations Synchronous computations Load balancing Numerical algorithms Sorting algorithms