NOMADIC THREADS
Stephen Jenks
Nomadic Threads is an abstract multithreaded architecture for distributed
memory multicomputers that significantly reduces the number of message
transfers when compared to conventional "remote memory access" approaches. Instead of
statically executing on its assigned processor and fetching data from remote
storage, a Nomadic Thread transfers itself to the processor which contains the
data it needs. This enables Nomadic Threads to take advantage of spatial
locality found in the usage of many data structures, because the migration of a
thread to
a node makes access to surrounding data local. By reducing the number of
messages
and taking advantage of locality, the Nomadic Threads approach allows
programs to
use fewer data transfers than conventional approaches while providing a simple
runtime interface to compilers.
The Nomadic Threads runtime system is currently
implemented for the Thinking Machines Corp. Connection Machine 5 (CM5), but is
portable to other distributed memory systems, including networks of
workstations.
Current research involves compilation issues including thread building
issues and determining how the compiler can automatically choose between
caching and Nomadic threads based on program structure and anticipated
behavior.