pchapin's CIS-4230/5230 Parallel Programming, Spring 2018

Instructor

Peter Chapin. Office: WIL-415 on the Williston campus. Office hours are by appointment. Phone: 802-879-2367 (voice mail active). Email: pchapin@vtc.edu. I will respond to email within 24 hours, not including weekends or holidays. Email is the best way to contact me. I may also be on the VSC Skype for Business system, or the FreeNode IRC network under the nickname pcc.

Course Description

This is a course about parallel and, to a lesser extent, concurrent programming. It will cover issues in both single machine (shared memory) parallelism and multi-machine parallelism. Our focus will be on the techniques required to build programs that take advantage of parallel execution units in order to complete a particular task more quickly.

Parallel programming has been around for a long time. So called "embarrassingly parallel" applications, such as network servers, have long been able to take advantage of parallel hardware with very little work on the part of the application programmer. In the area of high performance computing (HPC) specialized techniques for writing highly parallel programs have been used for many years to speed up floating point intensive scientific and engineering computations.

More recently, with the rise of low cost multi-core processors, parallel programming has taken on a new urgency. Application programmers that have previously not been concerned about writing parallel programs are starting to examine the lessons learned by the HPC community as well as create new parallel programming techniques in order to take advantage of the parallel hardware that has become widely available. Using parallelism to improve the performance of "ordinary" desktop applications is a relatively new frontier.

This course will cover both issues in HPC parallel programming and issues in using parallelism for enhancing ordinary applications. Since parallel programming is done to improve the performance of programs, we will also look at benchmarking techniques and other methods to measure program performance so we can verify that our parallel programs are actually helping us.

The official course outline (graduate version) lists high level course objectives and content.

Prerequisites

This course assumes you are comfortable with C programming and have taken some kind of algorithms and data structures course such as VTC's CIS-3050. You should know something about asymptotic notation and the fundamental data structures such as lists, trees, and hash tables. Familiarity with the use of Linux is assumed.

Resources

The text is An Introduction to Parallel Programming by Peter S. Pacheco. It follows the content of this course fairly closely and at an appropriate level. We will be using it extensively.

I have created an email distribution list for the class. I will use this list to distribute announcements and other supplementary materials. Be sure to check your mail regularly (daily) or you might miss something important. If you send a question in email directly to me, I may reply to my distribution list if I think that others would benefit from my answer. If you would rather I did not reply to the list you should say so in your message.

My home page contains various documents of general interest.

Topics

Course Outcomes

After completing this course the student will be able to do the following:

Grading Policy

I grade on a point system. Each assignment is worth a certain number of points. At the end of the semester I total all the points you earned and compare that to the total number of possible points. In this course there are three components to your grade.

  1. Homework. 20 pts/each. There will be approximately six assignments during the semester for a total of 120 points. You will normally have one week to do each assignment. Many, but not all, of the assignments will entail programming.

  2. Projects. 50 pts/each. There will be two special projects that are, essentially, extended homework assignments involving more extensive programming and analysis. You will have two to three weeks to do each project (maybe overlapping with a homework assignment).

  3. Exam. 100 pts. There will be one take-home exam at the end of the semester that will serve as the final exam for the course.

Graduate students taking CIS-5230 will see the following additions:

  1. Papers. 10 pts/each. You will be asked to read and summarize two papers selected by the instructor and one paper of your own choosing (approved by the instructor).

  2. Graduate Project. 50 pts. One of the two projects described above will be replaced with a "graduate project" that delves more deeply into the subject matter and that includes a detailed performance analysis. The nature of this project will be specified by the instructor in consultation with the student. You will be asked to do a short (approximately 15 minute) presentation to the class about your project at the end of the semester.

Late Policy

Roughly, late submissions are not accepted. If something comes up that prevents you from handing in an assignment on time, contact me, before the deadline if at all possible, to discuss your issue. As a practical matter I can accept a late submission if I have neither distributed a solution nor graded the assignment. Since either of those things can happen at any time after the due date, you should plan on submitting all materials on time.

Copying Policy

I encourage you to share ideas with your fellow students so I won't be shocked to learn that you've been talking with someone about an assignment. In fact if you worked closely with someone else you should make a note on your submission that mentions the names of your associates.

However, I do ask you to do your own work in your final submissions. If two submissions exhibit what I feel to be "excessive similarity" I will grade the submissions based on merit and then divide the grade by two, assigning half the grade to each submission. If I receive more than two excessively similar submissions I will divide the grade by the number of such submissions and distribute the result accordingly.

Since "excessive similarity" is a bit subjective, I may only give you a warning if the similarity is not too excessive—especially for a first offense. However, I do keep records on when I find excessive similarity and I will be much less inclined to be forgiving if I discover it again. If you are concerned about the possibility of submitting something that might be too similar to another student's work, don't hesitate to speak with me first.

If you find material on the Internet or in a book that seems to answer questions I ask in an assignment, you may include such material in your submission provided you properly reference it. If I discover that you have included unreferenced material from such sources, I may not give you any credit for the question(s) answered by such material. You do not need to provide a reference to our text book or to materials I specifically provide in class.

Other Matters

Students with disabilities may request accommodation as provided within federal law. All such requests should be made by first contacting Robin Goodall, Learning Specialist, in the Center for Academic Success on the Randolph campus. She can be reached by phone at (802) 728-1278 or by email at rgoodall@vtc.edu.


Last Revised: 2017-12-28
© Copyright 2018 by Peter C. Chapin <pchapin@vtc.edu>