CSCI.6500 Distributed Computing over the Internet

Fall, 2010

Programming Assignment 1.

This project is to be done individually. Do not show your code to any other student and do not look at any other student's code. Do not put your code in a public directory or otherwise make it public. You are encouraged to use the LMS Discussions page to post problems so that other students can also answer and see the answers.

The goal of this assignment is to practice concurrent and distributed programming using the Pict and Nomadic Pict programming languages.

You are to simulate heat distribution on a two-dimensional surface.

The square grid size is 122 by 122. The initial temperature is 100 degrees for coordinates {(y,0)|30<y<91}, and 20 degrees for all other points in the surface. The temperature for a grid element at a given time step is the average of the grid element's neighbours at the previous time step (boundary elements remain constant over time.) You will simulate heat transfer for 1024 time steps to approximate equilibrium temperatures. You can see a sequential heat-seq.c implementation in C.


Surface temperature grid after 1024 steps. A gridmap viewer implementation written in C++. allows you to visualize your program's output.

Part 1 - Parallel Solution

Using Pict, write a process-based solution to the heat transfer problem.

Part 2 - Distributed Solution

Write a distributed heat transfer simulation in Nomadic Pict.

Extra Credit - Mobile Processes Solution

Write an extension of your distributed simulation so that processes can move to find better computational resources.

Other Possible Extensions

Submission:

The due date for this project is November 8, 2010, 11:59pm EST. You should use the assignments drop-off box located at the course's LMS page. Upload a ZIP file containing all the relevant documented Pict/Nomadic Pict files, along with a README file describing the project and its usage.  24-hour late submissions will receive a 10% grade penalty, 3-day late submissions will receive a 25% penalty.  Assignments will not be received after November 11th, 2010.