Assignment 1
Version 1.0

Select and Assess


There is one assignment in this course in three parts.  You evaluate, upgrade and optimize an application that you expect would benefit from parallelization.  In your final presentation you report your successes, if any, achieved at each stage.  Your metrics include speedup and hiding of memory latency. 

Preliminary Steps

You work in a group of no more than three students unless otherwise approved by your instructor.  Firstly, you form a group within which you will do your work.  Once you have joined a group, you enter your name with the group name on the student page on the course You appoint a group leader who creates a wiki page for reporting all group work.  You will find a link to a sample group page on the Group and Project Index of the course .  After your group leader has created the group page, they add an entry that points to that group page on the course Group and Projects Index page. 


For the first part of the assignment, each member of your group selects a different application that they wish to parallelize.  You profile your application and determine the feasability of speeding it up using the GPU.  You use gprof to identify the hotspots that might benefit from offloading to the GPU.  You examine the code within the hotspots and determine if any part of the application is relatively easy to parallelize.

You may select standard applications that involve nested iterations, but do not include data dependencies.  Alternatively, you may find an outside client who agrees to let your group convert their existing code to run on a GPU. 

Examples of standard applications include:


The last section of the first assignment involves recommending one particular application from the set investigated by your group.  Once each member has profiled their own application, your group selects the application that all of you believe offers the best opportunity for improvement. 


Your submission is in two-parts:

  • through , which includes:
    • files containing the source code and all data required to run your application on a Linux platform
    • supplementary notes listing your principal observations - enter these in the Notes textbox
  • through the course , which includes:
    • profiling details for each group member
    • reasons for your group's recommendation to select a particular application


Your submission for this assignment is individual.  The remaining submissions are group submissions.

The penalty for late submission is 30% of the assignment mark.  If the submission is not workable, you will be asked to resubmit and charged a penalty of 50%.  The due date is posted in .

  Designed by Chris Szalwinski   Copying From This Site   
Creative Commons License