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.
Using Pict, write a process-based solution to the heat transfer problem.
Write an extension of your distributed simulation so that processes can move to find better computational resources.
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.