Gail A. Alverson

Learn More
This paper describes an integrated architecture, compiler, runtime, and operating system solution to exploiting heterogeneous parallelism. The architecture is a pipelined multi-threaded multiprocessor, enabling the execution of very fine (multiple operations within an instruction) to very coarse (multiple jobs) parallel activities. The compiler and runtime(More)
This paper describes the scheduling issues specic to the Tera MTA high performance shared memory multithreaded multiprocessor and presents solutions to classic scheduling problems. The Tera MTA exploits parallelism at all levels, from ne-grained instruction-level parallelism within a single processor to parallel programming across processors, to(More)
Writing parallel numerical programs is difficult. One problem is that the regular code and communication structure of typical parallel algorithms often becomes obfuscated when special cases at the boundaries of the computation are handled. Another problem is that parallel architectures can have vastly different communication structures, which makes it hard(More)
The development of Tera's MTA system was unusual. It respected the need for fast hardware and large shared memory, facilitating execution of the most demanding parallel application programs. But at the same time, it met the need for a clean machine model enabling calculated compiler optimizations and easy programming; and the need for novel architectural(More)
In parallel programming, the need to manage communication, load imbalance, and irregularities in the computation puts substantial demands on the programmer. Key properties of the architecture, such as the number of processors and the cost of communication, must be exploited to achieve good performance, but coding these properties directly into a program(More)
This paper discussed how ne-grain synchronization can be supported on a multiprocessor without inordinate amounts of hardware, and described Alewife's implementation. The paper motivated the use of ne-grain synchronization as an attractive method of synchronizing programs that avoids unnecessary serialization, and hence maximizes concurrency. We argued that(More)
  • 1