The Gilgamesh processor-in-memory architecture and its execution model

The emergence of semiconductor fabrication technology allowing a tight coupling between high-density DRAM and CMOS logic on the same chip has led to the important new class of Processor-In-Memory (PIM) architectures. Newer developments provide powerful parallel processing capabilities on the chip, exploiting the facility to load wide words in single memory accesses, and supporting complex address manipulations in the memory. Furthermore, large arrays of PIMs can be arranged into a massively parallel architecture. In this paper, we describe key features of the Gilgamesh PIM architecture developed at Caltech and JPL, and introduce an object-based execution model for this architecture based on the notion of macroservers. Macroservers are associated with a state space in which a set of lightweight threads executes asynchronously; the location and distribution of objects and data in PIM memory can be dynamically controlled. We discuss the elements of a software architecture for Gilgamesh and illustrate some aspects of macroservers by outlining a sparse matrix algorithm.

[1]  Piyush Mehrotra,et al.  Enhancing OpenMP With Features for Locality Control , 1998 .

[2]  Thomas L. Sterling,et al.  Support for Irregular Computations in Massively Parallel PIM Arrays, Using an Object-Based Execution Model , 2000, IPDPS Workshops.

[3]  José E. Moreira,et al.  Demonstrating the scalability of a molecular dynamics application on a Petaflop computer , 2001, ICS '01.

[4]  Hans P. Zima,et al.  Compiling for distributed-memory systems , 1993 .

[5]  Hans P. Zima High Performance Fortran - History, Status and Future , 2002, ISHPC.

[6]  Jaewook Shin,et al.  Mapping Irregular Applications to DIVA, a PIM-based Data-Intensive Architecture , 1999, ACM/IEEE SC 1999 Conference (SC'99).

[7]  Seth Copen Goldstein,et al.  Active Messages: A Mechanism for Integrated Communication and Computation , 1992, [1992] Proceedings the 19th Annual International Symposium on Computer Architecture.

[8]  Seung-Moon Yoo,et al.  FlexRAM: toward an advanced intelligent memory system , 1999, Proceedings 1999 IEEE International Conference on Computer Design: VLSI in Computers and Processors (Cat. No.99CB37040).

[9]  Thomas L. Sterling,et al.  Microservers: a new memory semantics for massively parallel computing , 1999, ICS '99.

[10]  Piyush Mehrotra,et al.  Language support for multidisciplinary applications , 1998 .

[11]  Thomas Sterling,et al.  Macroservers: An Execution Model for DRAM Processor-In-Memory Arrays , 2000 .

[12]  Barbara M. Chapman,et al.  Programming in Vienna Fortran , 1992, Sci. Program..

[13]  Peter Brezany,et al.  Vienna Fortran - A Language Specification. Version 1.1 , 1992 .