Programming the FlexRAM parallel intelligent memory system

Basilio B. Fraguela, Jose Renau, Paul Feautrier, David Padua, Josep Torrellas

Research output: Contribution to conferencePaperpeer-review


In an intelligent memory 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. While several instantiations of this architecture have been proposed, the question of how to effectively program them with little effort has remained a major challenge. In this paper, we show how to effectively hand-program an intelligent memory architecture at a high level and with very modest effort. We use FlexRAM as a prototype architecture. 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.

Original languageEnglish (US)
Number of pages12
StatePublished - Jul 28 2003
Event2003 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming - San Diego, CA, United States
Duration: Jun 11 2003Jun 13 2003


Other2003 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Country/TerritoryUnited States
CitySan Diego, CA


  • Compiler directives
  • Intelligent memory architecture
  • Parallel languages
  • Programming heterogeneous computers

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Programming the FlexRAM parallel intelligent memory system'. Together they form a unique fingerprint.

Cite this