Concurrent non-deferred reference counting on the Microgrid: first experiences

Authors
  • S. Herhut
  • C. Joslin
  • S.-B. Scholz
  • R. Poss
Publication date 2011
Host editors
  • J. Haage
  • M.T. Morazán
Book title Implementation and Application of Functional Languages
Book subtitle 22nd International Symposium, IFL 2010, Alphen aan den Rijn, The Netherlands, September 1-3, 2010: revised selected papers
ISBN
  • 9783642242755
ISBN (electronic)
  • 9783642242762
Series Lecture Notes in Computer Science
Event 22nd International Symposium on Implementation and Application of Functional Languages (IFL'10), Alphen a/d Rijn, Netherlands
Pages (from-to) 185-202
Publisher Heidelberg: Springer
Organisations
  • Faculty of Science (FNWI) - Informatics Institute (IVI)
Abstract
We present a first evaluation of our novel approach for non- deferred reference counting on the Microgrid many-core architecture. Non-deferred reference counting is a fundamental building block of im- plicit heap management of functional array languages in general and Sin- gle Assignment C in particular. Existing lock-free approaches for multi- core and SMP settings do not scale well for large numbers of cores in emerging many-core platforms. We, instead, employ a dedicated core for reference counting and use asynchronous messaging to emit reference counting operations. This novel approach decouples computational work- load from reference-counting overhead. Experiments using cycle-accurate simulation of a realistic Microgrid show that, by exploiting asynchro- nism, we are able to tolerate even worst-case reference counting loads reasonably well. Scalability is essentially limited only by the combined sequential runtime of all reference counting operations, in accordance with Amdahl’s law. Even though developed in the context of Single As- signment C and the Microgrid, our approach is applicable to a wide range of languages and platforms.
Document type Conference contribution
Language English
Published at https://doi.org/10.1007/978-3-642-24276-2_12
Permalink to this page
Back