A tar file containing my Parallel Proteus source code can be 
obtained by anonymous ftp from:  
    ftp.lcs.mit.edu in pub/ulana/parallel_proteus/release.tar.Z


Because I have RSI & can't type, I haven't been able to package 
up the code with all the necessary libraries and tools so that 
it could just be compiled and run.  However, if you're not 
planning to run on a CM5, that would not have been very helpful 
anyway.  I think that the code I am providing will be most useful 
as a guide or reference as to how to parallelize Proteus on your 
own system.

The code included there runs on a Thinking Machine's CM5.  It 
uses the Strata communications library for the CM5 (available 
from rdb@lcs.mit.edu) and the CM5 cmmd communication library.

The application included with the simulator is sor -- successive 
over-relaxation, which performs a relaxation function on a 
grid of points.

Parallel Proteus simulates message-passing multicomputers 
ONLY - not shared-memory machines.

Parallel Proteus supports 3 different synchronization 
techniques:  Periodic Global Barriers, local barriers and 
predictive barrier scheduling.  These are described in 
my Master's Thesis available on the web:  
http://www.psg.lcs.mit.edu/~ulana

The most important files to look at are:
main_p.c, req-queue_synch_p.c, par_req_queue_p.c, 
msg_barrier.c, send_req.c, receive_req.c and local_barrier.c.

If you have any questions, I will be happy to answer them by 
phone only (617) 253-6583 (again, because of my RSI, sending 
long detailed email messages is out of the question).
