Concurrent Non-deferred Reference Counting on the Microgrid: First Experiences
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 implicit heap management of functional array languages in general and Single 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 workload from reference-counting overhead. Experiments using cycle-accurate simulation of a realistic Microgrid show that, by exploiting asynchronism, 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 Assignment C and the Microgrid, our approach is applicable to a wide range of languages and platforms.
Unable to display preview. Download preview PDF.
- 5.Doligez, D., Leroy, X.: A Concurrent, Generational Garbage Collector for a Multithreaded Implementation of ML. In: POPL 1993: 20th Symposium on Principles of Programming Languages, pp. 113–123. ACM, New York (1993)Google Scholar
- 12.Grelck, C., Scholz, S.B.: Efficient Heap Management for Declarative Data Parallel Programming on Multicores. In: 3rd Workshop on Declarative Aspects of Multicore Programming (DAMP 2008), San Francisco, USA, pp. 17–31. ACM Press, New York (2008)Google Scholar
- 13.Grelck, C., Trojahner, K.: Implicit Memory Management for SaC. In: Grelck, C., Huch, F. (eds.) IFL 2004, pp. 335–348 (2004); University of Kiel, Institute of Computer Science and Applied Mathematics technical report 0408Google Scholar
- 14.Jesshope, C.: A model for the design and programming of multi-cores. Advances in Parallel Computing, High Performance Computing and Grids in Action (16), 37–55 (2008)Google Scholar
- 15.Joisha, P.G.: A principled approach to nondeferred reference-counting garbage collection. In: 4th International Conference on Virtual Execution Environments (VEE 2008), pp. 131–140. ACM, New York (2008)Google Scholar
- 16.Marlow, S., Harris, T., James, R.P., Peyton Jones, S.: Parallel Generational-Copying Garbage Collection with a Block-Structured Heap. In: ISMM 2008: 7th International Symposium on Memory Management, pp. 11–20. ACM, New York (2008)Google Scholar
- 18.Shvachko, K., Kuang, H., Radia, S., Chansler, R.: The Hadoop distributed file system. In: 26th Symposium on Massive Storage Systems and Technologies (MSST 2010). IEEE Press, Incline Village, USA (May 2010)Google Scholar