CSE523 Projects Available with Professor Stark
The past history of this project is that we built a Network Memory Server
on a cluster of Alpha and Intel machines. What was lacking from this
project were motivated contributors who wanted to see their applications
run on the platform. Consequently, the hardware platform for this system
has been mothballed for the time being. However, I still think there
are some interesting directions to pursue (see below).
Current Goals (Spring 2007)
My current interest in this project is to follow through
more completely on some ideas I had for predicting paging requests.
A student, Ahmed Burukan, made significant progress on this in 2004/2005
(see below), but the project did not reach the point of an interesting
research publication.
I think it would be interesting to try these ideas out either in the
context of normal paging on a single workstation, or else in the context
of the memory management subsystem of a language run-time system
such as that of Standard ML of New Jersey. In the latter case, it
might be possible to do this without operating system kernel modifications,
but more likely some minimal modifications would need to be made to
add some "hooks" to the page-fault handler. Any suitable open-source
operating system (such as FreeBSD or Linux) could be used for this.
If you are interested in learning more about this project,
please see the SAMSON Project Home Page.
The up-to-the-minute source code can be found in the
SAMSON source code CVS repository.
E-mail Professor Stark if you want to discuss possibilities.
Project History
- Fall 2004/Spring 2005:
Ahmed Burukan investigated an idea for
predicting future page accesses from past history, and
implemented a simulator in Java for analyzing the performance
of this prediction method on actual traces from the visible
human application.
- The basic system is functioning and can run a "Visible Human"
volume-rendering application.
It is possible to extract detailed information about applications
running on the system.
- Early Summer 2003:
Professor Stark implemented the event logging mechanism that was
part of the original design. It is now possible to collect
detailed traces of all aspects of the operation of the system.
See here for a detailed look at
the system performance on one of our test exercisers.
See here for a report
on the "Visible Human" application.
- Spring 2003:
Project stalled for lack of interested students.
- Fall 2003:
Harikesavan Krishnan joined the project, then left it.
Prof. Stark did some further debugging work on the system
and merged the last code that Eric Nuzzi had worked on in 2001,
with the result that the system now functions in its target
configuration with the Alpha systems as clients and the
Compaq cluster as servers.
- Spring 2002: Project is currently stalled because I don't
have students who want to work on it. It's a good opportunity
for someone who wants a challenging project they can make their own.
- Summer/Fall 2001: Not too much happened on the project.
Eric Nuzzi told me he has decided to leave school for now.
I received code for a potential test application from
Susan Frank, who is working under Prof. Kaufman.
This code is voxel-based code for rendering 3D images of
the "visible human" database.
The code looks to me like it's got good potential as a test
application, but it needs somebody to work on it and on the
system. I want to get a paper out of this project, but I
need performance numbers. If you can help me get these numbers,
you can be an author, too.
- Spring 2001: Eric Nuzzi implemented some of the
reliability/replication code and ran some more rigorous
system exercise tests.
- January 2001: A rack-mounted cluster of 7 Compaq ProLiant
servers was assembled by Professor Stark and Eric Nuzzi.
Each server is an 933MHz Pentium III system with 3GB of RAM,
a 9GB SCSI drive, a 100Mb/sec fast ethernet interface and
a Myrinet interface.
- Fall 2000: Further development of the prototype by Professor Stark
and student Eric Nuzzi. The code was moved to a more recent 2.2
version of the Linux kernel and the old 2.0.22 version was
deprecated. The system was updated to work with arbitrary
combinations of 64-bit Alphas and 32-bit PCs as clients and
servers.
- End of July, 2000: The system had been debugged to the
point that it was beginning to function reliably on tests using
realistic amounts of network memory. A significant "push" is still
needed to remove remaining serious bugs and extend the implementation
so that actual applications can be run.
- Fall 1999 - Summer 2000: System prototype coded and debugged by
Professor Stark. Supports basic functionality, which basically
consists of ability to memory-map and access network memory.
Scaffolding is provided for most of the features discussed
in the design document, but only the essentials are currently
implemented.
- Fall 1999: Four Alpha 21164 workstations, each with 1GB RAM,
together a Myrinet switch and several PCI interfaces,
were purchased for system development. Development commenced using
these systems and on previously existing Pentium 200MHz systems,
running under Red Hat Linux, kernel versions 2.0.22 and 2.2.12.
- Spring 1999: System design done by Professor Stark and
several students in course CSE 679.
The result was the following
design documentation.
This document describes the general structure and function of the
system. It is now somewhat old, but the only newer information
is the source code itself.
Eugene W. Stark