Proteus [2] is a simulator for MIMD multiprocessors that multiplexes "multiple" threads on a single CPU. It is worth mentioning some of its main features. Proteus supports direct execution with augmentation. That is, all instructions local to a processor are directly executed on the hosts CPU. Any other instruction that require the simulator engine to intervene (i.e., shared memory access, a communication call, etc.) are "interpreted" by the engine. In order to keep track of the "execution" time of a program, the basic blocks of instructions in a user's code is augmented with cycle counting code. Thus in Proteus, time is measured in cycles. Proteus supports both shared memory and message passing (direct) architectures. Proteus was designed to be modular, making it easy to replace its various modules for experimentation purposes. More information on Proteus can be obtained from [2] or [1].