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.