Programming the FlexRAM Parallel Intelligent Memory

Basilio Fraguela, University of A Coruna, Spain and FlexRAM Group, University of Illinois

Abstract

In the FlexRAM architecture, the main memory of a computer is enhanced with many simple processors. The result is a highly-parallel, heterogeneous machine that is able to exploit computation in the main memory. A major challenge in the FlexRAM and other similar architectures is how to effectively program them with little effort. In this talk, we show how to effectively hand-program an intelligent memory architecture at a high level and with very modest effort. To program it, we propose a family of high-level compiler directives inspired by OpenMP called CFlex. Such directives enable the processors in memory to execute the program in cooperation with the main processor. In addition, we propose libraries of highly-optimized functions called Intelligent Memory Operations (IMOs). These functions program the processors in memory through CFlex, but make them completely transparent to the programmer. Simulation results show that, with CFlex and IMOs, a server with 64 simple processors in memory runs on average 10 times faster than a conventional server. Moreover, a set of conventional programs with 240 lines on average are transformed into CFlex parallel form with only 7 CFlex directives and 2 additional statements on average. This presentation is based on a paper that appeared in the International Symposium on Principles and Practice of Parallel Programming (PPoPP), June 2003: Basilio Fraguela, Jose Renau, Paul Feautrier, David Padua, and Josep Torrellas, "Programming the FlexRAM Parallel Intelligent Memory System"