New version page

UD CISC 879 - Syllabus

Upgrade to remove ads
Upgrade to remove ads
Unformatted text preview:

University of Delaware – Computer and Information Science !CISC 879-Spring 2013 !Advanced Parallel Programming !Instructor: Dr. John Cavazos Office Hours: By appointment 412 Smith Hall 831-6052 Email: [email protected] !Recommended Text: Heterogeneous Computing with OpenCL. Benedict Gaster, Lee Howes, David Kaeli, Perhaad Mistry, and Dana Schaa !Exams: No Midterm/Final. !Grading: 1. Paper presentation (20%) 2. Projects (80%) • Project 1 (20%) o Project report/1 checkpoint • Project 2 (60%) o Project report/presentation/2 checkpoints !Webpage: !Background: !Parallel programming and computer architecture background helpful, but not required. A reasonable familiarity of the C programming language is necessary. You might have to know some C++ depending on the programs you choose for your project. !Objectives of the course: !This course is intended to give students an understanding of many-core (multicore and GPU) architectures and parallel programming models. We will primarily use OpenCL, but students will get an appreciation of the problems and solutions researchers have identified in the field of many-cores. Also, students will get experience in presenting research. Finally, students will get a thorough understanding of how to write parallel programs for current many-core architectures. !Programming Environment: !!EECIS will provide access to a server with four GPUs. You can find information about this machine at the following website. ! !You will be able to use OpenCL, CUDA, or HMPP to write your codes targeted to GPUs. You can also target multicores using OpenMP, pthreads, or a variety of different parallel programming languages.Projects: !Most of your grade will come from two projects, which will total 80% of your grade. Both projects are mandatory. Each student is encouraged to form or find a group. We are aiming for groups of 2 to 4 developers. Plan on check pointing your project with the instructor (showing your progress) at various stages during your project. You must check point at least once for the first project and at least twice for the second part of the project. These checkpoints will be part of your grade. You are not required to stay with the same group for both projects. !The first project involves getting acquainted with the tools and programming environment of the multicore you will be using for both projects, NVIDIA Tesla C1060s. Project 1 involves taking one small kernel and getting it to run on a GPU using OpenCL or CUDA program. Then, you will time the parallel and sequential versions of the code and report any speedups obtained. You will write a report a 2-3 page report describing the parallelization of the program and any optimizations (manual or automatically applied by the compiler) that you used to improve performance. We will provide a latex template to help you understand what we want for the report. !For the second project, each group will parallelize two applications that you choose from a set of bioinformatics, data mining, financial, or your own applications. There are a handful of milestones associated with doing this project, including a project report (~3 pages per developer) and a short presentation of your project at the end of the semester. You are also required to write a report describing the two applications you choose and discussing in detail the critical parts of the code you parallelized. You will also have to report the performance improvement you obtained over serial version of the code and discuss any optimizations (either manual or automatic) you used to improve performance. !Project Report Guidelines: !Papers must be well written and formatted correctly. We expect you to clearly describe the project and experimental results. You are required to present experimental results using graphs. We recommend using the latex template provided which will specify the font size and margins. You are expected to properly reference any related material. That is, part of the project is to go on the Internet (e.g., using Google Scholar or Citeseer) to find papers related to the work you're doing. A negative result is fine (e.g., degradation in performance compared to the sequential version), as long as you demonstrate that you found something interesting along the way. !Expectations: !l Class Participation l Ask questions l Challenge speakers l Not a lecture-type course or passive-learning experience !Policy on Academic Dishonesty !You are allowed and even encouraged to discuss material covered in class, requirements of the assignment, features of the parallel programming models and/or language, tools or programming environment used, and coding and debugging techniques with anyone you desire. !Also, students choosing to work as a team are freely allowed to exchange, help, design, and code with all members of the team. It is fine to study code found on the Internet, but you cannot use substantial parts of code found on the Internet in your

View Full Document
Download Syllabus
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...

Join to view Syllabus and access 3M+ class-specific study document.

We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Syllabus 2 2 and access 3M+ class-specific study document.


By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?