Difference: CS255Spring10ProjectHome (14 vs. 15)

Revision 152010-04-05 - ChenDing

Line: 1 to 1
 
META TOPICPARENT name="CS255Spring10"
Line: 194 to 194
 

Part4: Group Competition (55%) (Due: Apr. 16 11:59pm)

Changed:
<
<
In this project, you are required to work together in teams and develop your compiler to parallelize a sequential program using OpenMP directives, including parallel sections/loops and private or other types of variables. In more detail, there are several steps you should follow to complete the project.
>
>
In this project, you are required to work together in teams to extend your compiler to parallelize a sequential program using OpenMP directives, including parallel sections/loops and private or other types of variables. There are several steps you should follow to complete the project.
 
Changed:
<
<
step #1. Build your own repository
Build your own repository using Mecurial and send your project-directory to all your teammates, as well as the instructor and TA. All the shared files, such as urcc/ast folder, should be included in your repository. Do NOT put the whole gcc directory in your repository. This step should be done by Wednesday (Apr. 7th 11:59pm).
>
>
step #1. Build your group repository
 
Added:
>
>
You need a version control system for group software development. We recommend using the distributed version control system called Mecurial. One of the team members creates a project repository from which each member makes a copy. Send the location of the project repository to the instructor and the TA. Add the shared files, such as urcc/ast folder, into your repository. Do NOT put the whole gcc directory in your repository. This step should be done by Wednesday (Apr. 7th 11:59pm).

You are encouraged to read the many on-line tutorials on Mercurial. The basic commands you need are as follows. Note that unlike subversion, you have a copy of the repository on your local machine, and you check out from and check into the local repository.

  1. create a directory for your repository, which should be on the dept file system if this is the project repository.
  2. initialize it by calling 'hg init' inside the directory
  3. if this is your local repository, pull from the project repository using 'hg pull'. You may use ssh if your local machine is not on the same file system, e.g. your laptop computer.
  4. run 'hg update' to check out files from the local repository into your local directory
  5. add files using 'hg add'
  6. check in changes to your local repository using 'hg commit'
  7. send your past commits from the local repository to the project repository using 'hg push'

To avoid having to explicitly type in the repository address at each pull/push, you can create a file in the .hg/.hgrc at the root level of the repository directory with the following contents:

[paths]
default = ssh://[uid]@cycle1.cs.rochester.edu//[dir]
default-push = ssh://[uid]@cycle1.cs.rochester.edu//[dir]

To specify your user identity (that is, the authorship of your commits), you can create a file .hgrc under your home directory with the content:

[ui]
username = First Last 
 
step #2. Generate OpenMP code for shared-memory parallel execution.
Added:
>
>
 Based on Project 2 and 3, your compiler should be able to identify all the loops and do conservative dependence checking for simple loops by now. For the loops your compiler declares there is no loop-carried dependence, you have to parallelize the loop iterations using OpenMP directives. A simple example is following.
Line: 220 to 241
 
Changed:
<
<
Please familiar yourself with OpenMP and more OpenMP examples before you start coding. For the loops which has loop-carried dependence which prevent it from being parallelized automatically, you compiler should never output a wrong parallelized code.
>
>
Please familiar yourself with OpenMP and more OpenMP examples before you start coding. For the loops which has loop-carried dependence which prevent it from being parallelized automatically, you compiler should never output incorrectly parallelized code.
 
step #3. Advanced transformations for parallelism ( Competition Part ).
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback