The simulation laboratory is implemented as a distributed system using PVM. Its components may run on the same or different processors. A typical configuration uses 2-3 processors, with the most powerful processors assigned to MITSIM and MesoTS. The modules in the system communicate with each other via message passing, shared memory, and data files. In every iteration of the simulation, each module in the simulation laboratory checks for messages received from other partners. All messages are processed before the simulation is advanced to the next iteration. When all processes are ``checked in,'' SIMLAB advances the simulation clock by 1 step and broadcasts the new time to every module in the system. Each module then proceeds until it reaches the master clock time received from SIMLAB.