Skip to main content

Concurrent Non-deferred Reference Counting on the Microgrid: First Experiences

  • Conference paper
Implementation and Application of Functional Languages (IFL 2010)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6647))

Included in the following conference series:

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 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.

This research is supported by EU research grant FP7/2007/215216 Apple-CORE.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bailey, D., et al.: The NAS Parallel Benchmarks. International Journal of Supercomputer Applications 5(3), 63–73 (1991)

    Article  Google Scholar 

  2. Baumann, A., Barham, P., Dagand, P.E., et al.: The multikernel: a new OS architecture for scalable multicore systems. In: 22nd Symposium on Operating Systems Principles (SOSP 2009), pp. 29–44. ACM, New York (2009)

    Chapter  Google Scholar 

  3. Bousias, K., Guang, L., Jesshope, C., Lankamp, M.: Implementation and Evaluation of a Microthread Architecture. J. Systems Architecture 55(3), 149–161 (2009)

    Article  Google Scholar 

  4. Collins, G.E.: A Method for Overlapping and Erasure of Lists. Communications of the ACM 3(12), 655–657 (1960)

    Article  MathSciNet  Google Scholar 

  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 

  6. Ghemawat, S., Gobioff, H., Leung, S.T.: The Google file system. SIGOPS Oper. Syst. Rev. 37(5), 29–43 (2003)

    Article  Google Scholar 

  7. Grelck, C., Scholz, S.B.: Towards an Efficient Functional Implementation of the NAS Benchmark FT. In: Malyshkin, V.E. (ed.) PaCT 2003. LNCS, vol. 2763, pp. 230–235. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  8. Grelck, C.: Shared memory multiprocessor support for functional array processing in SAC. Journal of Functional Programming 15(3), 353–401 (2005)

    Article  MATH  Google Scholar 

  9. Grelck, C., Kreye, D., Scholz, S.B.: On Code Generation for Multi-Generator WITH-Loops in SAC. In: Koopman, P., Clack, C. (eds.) IFL 1999. LNCS, vol. 1868, pp. 77–94. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  10. Grelck, C., Scholz, S.B.: Merging compositions of array skeletons in SAC. Journal of Parallel Computing 32(7+8), 507–522 (2006)

    Article  Google Scholar 

  11. Grelck, C., Scholz, S.B.: SAC: A Functional Array Language for Efficient Multithreaded Execution. Int. Journal of Parallel Programming 34(4), 383–427 (2006)

    Article  MATH  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 0408

    Google 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 

  17. Scholz, S.B.: Single Assignment C: Efficient Support for High-Level Array Operations in a Functional Setting. J. Functional Programming 13(6), 1005–1059 (2003)

    Article  MathSciNet  MATH  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Herhut, S., Joslin, C., Scholz, SB., Poss, R., Grelck, C. (2011). Concurrent Non-deferred Reference Counting on the Microgrid: First Experiences. In: Hage, J., Morazán, M.T. (eds) Implementation and Application of Functional Languages. IFL 2010. Lecture Notes in Computer Science, vol 6647. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24276-2_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-24276-2_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-24275-5

  • Online ISBN: 978-3-642-24276-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics