Skip to main content

Portable Explicit Threading and Concurrent Programming for MPI Applications

  • Conference paper

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

Abstract

New applications for parallel computing in today’s data centers, such as online analytical processing, data mining or information retrieval, require support for concurrency. Due to online query processing and multi-user operation, we need to concurrently maintain and analyze the data. While the Portable Operating System Interface (POSIX) defines a thread interface that is widely available, and while modern implementations of the Message Passing Interface (MPI) support threading, this combination is lacking in safety, security and reliability. The development of such parallel applications is therefore complex, difficult and error-prone. In response to this, we propose an additional layer of middleware for threaded MPI applications designed to simplify the development of concurrent parallel programs. We formulate a list of requirements and sketch a design rationale for such a library. Based on a prototype implementation, we evaluate the run-time overhead to estimate the overhead caused by the additional layer of indirection.

Keywords

  • Threads
  • Parallel programming
  • Concurrent programming
  • Message passing interface

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (Canada)
  • 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Latham, R., Ross, R., Thakur, R.: Can MPI Be Used for Persistent Parallel Services? In: Mohr, B., Träff, J.L., Worringen, J., Dongarra, J. (eds.) PVM/MPI 2006. LNCS, vol. 4192, pp. 275–284. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  2. Dagum, L., Menon, R.: OpenMP: An Industry Standard API for Shared-Memory Programming. IEEE Computational Science and Engineering 5(1), 46–55 (1998)

    CrossRef  Google Scholar 

  3. OpenMP Architecture Review Board: The OpenMP API Specification for Parallel Programming (2008)

    Google Scholar 

  4. Duran, A., Gonzàlez, M., Corbalán, J.: Automatic Thread Distribution for Nested Parallelism in OpenMP. In: Proc. ICS, USA, pp. 121–130 (2005)

    Google Scholar 

  5. UPC Consortium: UPC Language Specifications, v1.2. Technical Report LBNL-59208, Lawrence Berkeley National Lab (2005)

    Google Scholar 

  6. Zheng, Y., Blagojevic, F., Bonachea, D., Hargrove, P.H., Hofmeyr, S., Iancu, C., Min, S.J., Yelick, K.: Getting Multicore Performance with UPC. In: Proc. PP, USA. SIAM (2010)

    Google Scholar 

  7. Mallón, D.A., Taboada, G.L., Teijeiro, C., Touriño, J., Fraguela, B.B., Gómez, A., Doallo, R., Mouriño, J.C.: Performance Evaluation of MPI, UPC and OpenMP on Multicore Architectures. In: Ropo, M., Westerholm, J., Dongarra, J. (eds.) PVM/MPI. LNCS, vol. 5759, pp. 174–184. Springer, Heidelberg (2009)

    CrossRef  Google Scholar 

  8. Balaji, P., Buntinas, D., Goodell, D., Gropp, W., Thakur, R.: Fine-Grained Multithreading Support for Hybrid Threaded MPI Programming. Int. J. High. Perform. C. 24, 49–57 (2010)

    CrossRef  Google Scholar 

  9. Thakur, R., Gropp, W.: Test Suite for Evaluating Performance of Multithreaded MPI Communication. Parallel Computing 35, 608–617 (2009)

    CrossRef  Google Scholar 

  10. Lusk, E., Chan, A.: Early Experiments with the OpenMP/MPI Hybrid Programming Model. In: Eigenmann, R., de Supinski, B.R. (eds.) IWOMP 2008. LNCS, vol. 5004, pp. 36–47. Springer, Heidelberg (2008)

    CrossRef  Google Scholar 

  11. Smith, L., Bull, M.: Development of Mixed Mode MPI / OpenMP Applications. Scientific Programming 9, 83–98 (2001)

    Google Scholar 

  12. Hoefler, T., Kambadur, P., Graham, R.L., Shipman, G., Lumsdaine, A.: A Case for Standard Non-Blocking Collective Operations, Germany. Springer (October 2007)

    Google Scholar 

  13. The Austin Group, The Open Group, The IEEE: ISO/IEC/IEEE 9945:2009 Information Technology – Portable Operating System Interface (POSIX©) Base Specifications (7) (2009)

    Google Scholar 

  14. Zhang, Z., Savant, J., Seidel, S.: A UPC Runtime System Based on MPI and POSIX Threads. In: Proc. PDP, USA, pp. 195–202. IEEE (2006)

    Google Scholar 

  15. Rodrigues, E.R., Navaux, P.O.A., Panetta, J., Mendes, C.L.: A New Technique for Data Privatization in User-Level Threads and its Use in Parallel Applications. In: Proc. SAC, USA, pp. 2149–2154. ACM (2010)

    Google Scholar 

  16. Alam, S.R., Kuehn, J.A., Barrett, R.F., Larkin, J.M., Fahey, M.R., Sankaran, R., Worley, P.H.: Cray XT4: An Early Evaluation for Petascale Scientific Simulation. In: Proc. SC, USA, pp. 39:1–39:12. ACM (2007)

    Google Scholar 

  17. Dongarra, J., Beckman, P., Aerts, P., Cappello, F., Lippert, T., Matsuoka, S., Messina, P., Moore, T., Stevens, R., Trefethen, A., Valero, M.: The International Exascale Software Project: A Call To Cooperative Action By the Global High-Performance Community. Int. J. High. Perform. C. 23, 309–322 (2009)

    CrossRef  Google Scholar 

  18. Buhr, P.A., Harji, A.S.: Concurrent Urban Legends: Research Articles. CCPE 17, 1133–1172 (2005)

    Google Scholar 

  19. Boehm, H.J.: Threads Cannot Be Implemented as a Library. SIGPLAN Notices 40, 261–268 (2005)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berka, T., Hagenauer, H., Vajteršic, M. (2012). Portable Explicit Threading and Concurrent Programming for MPI Applications. In: Wyrzykowski, R., Dongarra, J., Karczewski, K., Waśniewski, J. (eds) Parallel Processing and Applied Mathematics. PPAM 2011. Lecture Notes in Computer Science, vol 7204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31500-8_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31500-8_9

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-642-31500-8

  • eBook Packages: Computer ScienceComputer Science (R0)