next up previous
Next: Revised Graphics Model Up: New Directions Previous: New Virtual Machine Design

Multi-threading

The new system will add multi-threading capability. Multi-threading is needed for two reasons. The first is that there are times when a long running calculation needs to be carried out, but the user interface should remain responsive during the calculation and perhaps be able to monitor the calculation. This can be accomplished within the current single-threaded event-driven model but is extremely awkward. It is conceptually much simpler to start a separate thread for the long-running calculation.

A second reason for the need for multi-threading is that systems with two or more processors are becoming more affordable and there is thus a need for software that allows experimentation with how to take advantage of this hardware in statistical computing.

A question that needs to be resolved is what synchronization mechanisms should be provided. For performance reasons there may be a need to provide low level primitives such as mutexes at least at the C level. But it may be advisable to use a higher level mechanism in the high-level language level. One possible approach is to follow the example of the Limbo [3] language and base synchronization on the channels mechanism from the communicating sequential processes (CSP) approach to parallel computing.


next up previous
Next: Revised Graphics Model Up: New Directions Previous: New Virtual Machine Design
Luke Tierney
5/27/1998