Welcome to my MSCS project page. This page contains links to repositories of some of the projects that I worked on as part of the coursework for an MSCS. The work is pretty old (I worked on the degree between 1995 and 2000) and the work is becoming increasingly irrelevant, but maybe you'll find something useful.

If you can't get enough of my projects, check out the links in the column on the right for some of the other stuff I've published.

If you have nothing better to do, you can e-mail me at mdipperstein@gmail.com

Database Consistency Project

This project was created with the help of Kevin O'Gorman (kogorman@cs.ucsb.edu)


The ATM Simulation program consists of three independent components: the User Interface, the Web-Monitor, and the Data Repositories (Bank Branches). The components of the ATM Simulation are layered such that the User Interface lies on top of the Web-Monitor, which lies on top of the Data Repositories. Each component of the ATM Simulation communicates only with the component layered above it and the component layered below it. Each component is also designed so that it may be monitored and debugged through a web browser outside of the regular program operation.

Project Papers

Functional Requirements Document
Design Document
Observations and Innovations (This is the part that is the most interesting)

Project Source

The ATM project source may be cloned or downloaded from this GitHub repository:

The source is written in a combination of PERL script and HTML. The PERL script files are in the repository's cgi subdirectory. The HTML are in the repository's html subdirectory.

After cloning or downloading the repository:

  1. Copy the files from the cgi subdirectory to the directory where your server executes cgi.
  2. Copy the files from the html subdirectory to the directory where you keep you HTML files.
  3. Edit all the links in the PERL files to point to there new home.
  4. Edit all the links in the HTML files to point to there new home.

NOTE: The PERL scripts use semaphores and shared memory. Not all PERL distributions provide support for semaphores and shared memory. It's possible to use files instead of shared memory, and file renaming as a means of obtaining a semaphore (lock).

Real-time UDP Data Mixer


This project was written in the latter half of a 10 week course on computer networks. The goal of the project is to demonstrate some of the techniques that may be used in real-time mixing of UDP data over the current IP network. It also sheds some light on areas that require advance consideration before a given data mixing service is implemented. Such areas include:

Project Papers

I quickly threw together this brief description of the project objectives and source code back in 2000. hopefully it's good enough to get the job done, because the source and it's comments are my only other documentation.

Project Source

The mixer source is written to build and execute on a Solaris 2.6 workstation. I vaguely remember running it on a machine with a 32-bit x86 Linux 2.2 kernel, but I may have just telneted to the Solaris machine form there.

The UDP mixer project source may be cloned or downloaded from this GitHub repository:

Porting and Analysis of SPLASH-2 Ocean Current Simulation


This project provides information on the lessons learned and the results of an attempt to translate the Stanford Parallel Applications for Shared Memory (SPLASH-2) ocean simulation program (Ocean) to both Pthread an MPI implementations. Ocean is one of several applications in the SPLASH-2 library, intended to benchmark performance on various systems. Initially I set out to use the Ocean program to compare Pthread and MPI performance on both an SGI Origin 2000 and a Cray T3E. Though I did not accomplish my goals, there are still several valuable lessons learned to report along the way.

Project Papers

Wayback Machine mirror of the SPLASH-2 home page
Initial Report (PDF)
Additional Results and Comparisons (PDF)

Project Source

The ocean project source and documentation may be cloned or downloaded from this GitHub repository:

The source is written to operate on an SGI Origin 2000, though I have executed the p-thread version on a Solaris machine.

Libraries converting many of the ANL PARMACS macros for use with pthreads, MPI, and fork with shm on the SGI Origin 2000 are include in the GitHub repository.

Survey of Nucleotide (DNA) Database Search Techniques

This project was created with the help of Matt Maxel (mmaxel@isle.net) and Eric Indiran (epi@plpt.com)


This started as a 7 week project on "DNA Sequence Alignment", after about a week of study, we came up with the following plan. It didn't take to long to realize that we were too ambitious. The project evolved into a survey of nucleotide database search techniques.

Project Papers

PowerPoint presentation
Project paper
Definitions of related terms

Project Source

The source of the scripts and used for this project may be cloned or downloaded from this GitHub repository:

MLTP - A Multi-Layer Thread Package for SMP Linux (Thesis Project)

This was my MSCS thesis project. Please see my thesis project web page for more information on this project.


Last updated on December 29, 2018