CSCI 704, Spring 1998
Proposed Projects


All projects are to be done in groups of two or three students. Each group is to be working on a different project. Think of any operating systems related project you would like to work on and talk to me at least one week before the project proposal is due. All projects should deal with a current open question.

Suggested Projects

The following projects are related to resource allocation in parallel systems (admittedly, I am biased towards this subject). They are all doable within the class timeframe (or the timeframe of the class will allow a good infrastructure to be built if you are interested in continuing during the summer).

Links to on-going projects


Scheduling Support for Parallel Processing in NOWs

As networks of workstations become the platform of choice for parallel processing, many performance issues have to be addressed. Dynamic allocation of resources as the load on the network (and its consisting workstations) changes is theoretically the best method achieve high performance. The applicabity of dynamic resource allocation is not possible unless the user writes his message passing programs in such a way that application re-configuration and resource re-allocation is easy. To facilitate the user task, this project involves rewriting of a parallel library (e.g., PSPARSELIB , PETSc) that are commonly used as building blocks of parallel applications. The library should be able to communicate with the application scheduler on a NOW which will be coordinating the resource allocation.

To migrate or not?

Another research question in NOW environments deals with the problem of the conditions under which process migration is a cost-effective. This project involves measurements of the activity and load seen on the local departmental network, comparisons of processor activity with the a seen on other networks, and exploration of different load-balancing schemes that "adapt" their balancing rules as load conditions change. Could a network of workstation be used for parallel computation given that its load constantly changes? Under what conditions would process migration be effective? How could you provide QoS guarantees?

Multi-Process Prefetching and Caching

Given that there is one cache, how would you share this cache to fetch data from the disk? Suppose that your application uses a very large file, something that is very common in scientific applications. How would you share this cache among multiple applications and/or among the processes of the same parallel application? How far ahead should each process prefetch for effective cache sharing? This project concentrates on the effect of interrequest distributions of the application processes and the distribution of the respective file system responses. Using traces from the activity of parallel workloads (I will provide those traces), this simulation-based project should provide information about effective ways to share the cache.

Long-term and short-term file access patterns

Suppose that a long-term storage is available for the department. How can you decide which files to migrate there? This project will involve measurements in the departmental network of workstation that capture the activity if each file. The measuremet data are to be analyzed to decide under what conditions it is useful to backup files on the long-term storage so that you can free up as much memory as possible. Then, the measurement data will drive algorithms for file system storage. These algorithms should be analyzed via simulation.


Send comments or suggestions to esmirni@cs.wm.edu

Back to the CSCI 704 homepage..
esmirni@cs.wm.edu
last modified on January 25, 1998.