5570: Advanced Unix Programming

Group project

Objectives

Deadlines

Project goals

You will develop an infrastructure that enables distributed, simple Monte Carlo integration. For example, you can assume that users want to compute functions of the form:

double f(double Argument, int NumberOfSimulations)

Your infrastructure will permit users to submit a request to the server. The server will then distribute the work to workers, each of whom will perform a smaller number of computations. The result will then be combined by the server and passed back to the client.

The important features I wish to see are: (i) Facility for a client to send a large chunk of work to a server, (ii) the server should be able to split that work into smaller pieces and hand them over to individual workers, (iii) the server collects the results from individual workers and gives the solution back to the client. You have a lot of freedom in the specific details of your project. Of course, you should get your plan approved by me. In particular, I want to ensure that you demonstrate your proficiency in using multiple processes and threads, and communicating using sockets.

Issues you may wish to consider

Who will your workers be? Will you let anyone register as a worker, will you have a group of trusted workers, or will you force clients to share some of their time as workers too?

Will workers need to download some software? If so, how will they obtain it?

Will you trust your client to not sent viruses, or will you haw some mechanism to prevent this?

If clients do not want others to see the results of their computations, will you provide some mechanism to accomplish this (such as encrypted computing)?

Will there be a limit on the number of function definitions your server will store? If so, what will you do when that number is exceeded? Will you have some policy regarding deleting old versions, especially if they have not been used recently?

Will you trust the workers to give the correct answers? If not, how will you verify if the answers are correct?

Grading criteria

You will be graded on all aspects of the project, such as: Please note that the grade will be a combination of the accomplishment of the group, and your individual accomplishment. Therefore, each person in the group might get a different grade.

Some useful links

Condor

Entropia

SETI@home

GRID Infoware

Globus


Last modified: 7 Nov 2002