Skip to main content

MassiveThreads: A Thread Library for High Productivity Languages

  • Chapter
Concurrent Objects and Beyond

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8665))

Abstract

An efficient implementation of task parallelism is important for high productivity languages. Specifically, it requires a tasking layer that fulfills following requirements: (i) its performance scales to high core counts, and (ii) it is seamlessly integrated into a runtime system that performs inter-node communication and synchronization. More specifically, it should facilitate interactions between tasks and threads dedicated for inter-node communication. There have been many implementations that satisfy (i), but, to the best of our knowledge, none of such systems satisfy both requirements.

To address this issue, we propose a thread library called MassiveThreads. It provides not only lightweight threads and a scalable dynamic load-balancing mechanism among CPU cores, but also Pthread-compatible API and I/O semantics. In MassiveThreads, issuing a blocking I/O call triggers a user-level context switch instead of blocking the underlying OS-level thread. These features simplify interactions between tasks and communication threads by instantiating both of them on top of MassiveThreads.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. Blumofe, R.D., Joerg, C.F., Kuszmaul, B.C., Leiserson, C.E., Randall, K.H., Zhou, Y.: Cilk: An Efficient Multithreaded Runtime System. SIGPLAN Not. 30(8), 207–216 (1995)

    Google Scholar 

  2. BSC: Nanos++, http://pm.bsc.es/projects/nanox

  3. Callahan, D., Chamberlain, B.L., Zima, H.P.: The Cascade High Productivity Language. In: Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS 2004), pp. 52–60 (2004)

    Google Scholar 

  4. Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: An Object-Oriented Approach to Non-Uniform Cluster Computing. In: OOPSLA 2005: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 519–538. ACM, New York (2005)

    Chapter  Google Scholar 

  5. Lea, D.: A Java Fork/Join Framework. In: JAVA 2000: Proceedings of the ACM 2000 Conference on Java Grande, pp. 36–43. ACM, New York (2000)

    Chapter  Google Scholar 

  6. Drepper, U.: ELF Handling for Thread-Local Storage

    Google Scholar 

  7. Message Passing Interface(MPI) Forum: MPI: A Message-Passing Interface Standard. Technical report, Knoxville, TN, USA (1994)

    Google Scholar 

  8. Mohr, E., Kranz, D.A., Halstead Jr., R.H.: Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs. IEEE Trans. Parallel Distrib. Syst. 2(3), 264–280 (1991)

    Article  Google Scholar 

  9. Olivier, S., Huan, J., Liu, J., Prins, J., Dinan, J., wen Tseng, C.: UTS: An Unbalanced Tree Search Benchmark

    Google Scholar 

  10. Pheatt, C.: Intel®Threading Building Blocks. J. Comput. Small Coll. 23(4), 298–298 (2008)

    Google Scholar 

  11. Shekhtman, G.: State Threads for Internet Applications, http://state-threads.sourceforge.net/docs/st.html

  12. Taura, K., Tabata, K., Yonezawa, A.: StackThreads/MP: Integrating Futures into Calling Standards. SIGPLAN Not. 34(8), 60–71 (1999)

    Article  Google Scholar 

  13. von Behren, R., Condit, J., Zhou, F., Necula, G.C., Brewer, E.: Capriccio: Scalable Threads for Internet Services. In: SOSP 2003: Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, pp. 268–281. ACM, New York (2003)

    Chapter  Google Scholar 

  14. Wheeler, K.B., Murphy, R.C., Thain, D.: Qthreads: An API for Programming with Millions of Lightweight Threads. In: IPDPS, pp. 1–8. IEEE (2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Nakashima, J., Taura, K. (2014). MassiveThreads: A Thread Library for High Productivity Languages. In: Agha, G., et al. Concurrent Objects and Beyond. Lecture Notes in Computer Science, vol 8665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44471-9_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44471-9_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44470-2

  • Online ISBN: 978-3-662-44471-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics