@article{CullerGSvE93,
author = {Culler, David E. and Goldstein, Seth Copen and Schauser,
Klaus Erik and von~Eicken, Thorsten},
title = {{TAM --- a compiler controlled threaded abstract machine}},
journal = {Journal of Parallel and Distributed Computing},
year = {1993},
volume = {18},
pages = {347-370},
month = {Jul},
abstract = {The Threaded Abstract Machine (TAM) refines dataflow
execution models to address the critical constraints that modern
parallel architectures place on the compilation of
general-purpose parallel programming languages. TAM defines a
self-scheduled machine language of parallel threads, which
provides a path from dataflow-graph program representations to
conventional control flow. The most important feature of TAM is
the way it exposes the interaction between the handling of
asynchronous message events, the scheduling of computation, and
the utilization of the storage hierarchy. This paper provides a
complete description of TAM and codifies the model in terms of a
pseudo machine language TL0. Issues in compilation from a high
level parallel language to TL0 are discussed in general and
specifically in regard to the Id90 language. The implementation
of TL0 on the CM-5 multiprocessor is explained in detail. Using
this implementation, a cost model is developed for the various
TAM primitives. The TAM approach is evaluated on sizable Id90
programs on a 64 processor system. The scheduling hierarchy of
quanta and threads is shown to provide substantial locality while
tolerating long latencies. This allows the average thread
scheduling cost to be extremely low.},
url = {http://www.cs.cmu.edu/~seth/papers/CullerGSvE93.pdf},
keywords = {Active Messages, Parallel Computing,Threaded Abstract
Machine (TAM)},
}