skip to main content
10.1145/2488551.2488554acmotherconferencesArticle/Chapter ViewAbstractPublication PageseurompiConference Proceedingsconference-collections
research-article

Improving MPI applications with a new MPI_Info and the use of the memoization

Published: 15 September 2013 Publication History

Abstract

The MPI forum is actively working for a better MPI standard. The results are the new version 3 of the MPI standard, and the efforts for the incoming MPI 3.1/4.0. The technological changes provide many opportunities for improvements and new ideas. This paper introduces two main contributions in this direction: (1) how to improve the MPI_Info object implementation, and (2) a new way of using the former improved MPI_Info object as a storage solution.
The MPI_Info object [1] is described as an unordered set of key-value pairs (both key and value are strings, and keys are unique). And it is implemented as a linked list in the two major MPI implementations available.
We propose a new MPI_Info object implementation that (1) is based on the use of hash tables (what improves the overall performance), and (2) abstracts the underlying hash table infrastructure (what facilitates the usage of the most appropriated solution). Our proposal opens the possibility of extending the use of the MPI_Info object as a shared storage solution among MPI processes. To demonstrate the capabilities of our proposal, we explore the utilization of the memoization technique on MPI applications in order to improve the execution performance.

References

[1]
Message Passing Interface Forum: The Info Object. In: MPI: A Message-Passing Interface Standard Version 3.0. Volume 1. University of Tennessee (2012) 367--372
[2]
Bentley, J. L.: Appendix C as "Space-For-Time Rule 2.". In: Writing efficient programs. Prentice-Hall, Inc., Upper Saddle River, NJ, USA (1982)
[3]
Feinleib, D.: Big Data and NoSQL: Five Key Insights. http://www.forbes.com/ (March 2013)
[4]
Cui, H., Wu, J., Tsai, C. C., Yang, J.: Stable deterministic multithreading through schedule memoization. In: Proceedings of the 9th USENIX conference on Operating systems design and implementation, USENIX Association (2010) 1--13
[5]
Schnarr, E., Larus, J. R.: Fast out-of-order processor simulation using memoization. SIGOPS Oper. Syst. Rev. 32(5) (October 1998) 283--294
[6]
Agosta, G., Bessi, M., Capra, E., Francalanci, C.: Automatic memoization for energy efficiency in financial applications. Sustainable Computing: Informatics and Systems 2(2) (2012) 105--115
[7]
Kamimura, K., Oda, R., Yamada, T., Tsumura, T., Matsuo, H., Nakashima, Y.: A speed-up technique for an auto-memoization processor by reusing partial results of instruction regions. In: Networking and Computing (ICNC), 2012 Third International Conference on, IEEE (2012) 49--57
[8]
Richardson, S. E.: Caching function results: Faster arithmetic by avoiding unnecessary computation. Technical report, Mountain View, CA, USA (1992)
[9]
Bratko, I.: Prolog programming for artificial intelligence. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA (1986)
[10]
Ziarek, L., Sivaramakrishnan, K., Jagannathan, S.: Partial memoization of concurrency and communication. SIGPLAN Not. 44(9) (August 2009) 161--172
[11]
Stivala, A., Stuckey, P. J., Garcia de la Banda, M., Hermenegildo, M., Wirth, A.: Lock-free parallel dynamic programming. J. Parallel Distrib. Comput. 70(8) (August 2010) 839--848
[12]
Chaos, A.: Another Look at my old Benchmark. http://attractivechaos.wordpress.com/2008/10/07/another-look-at-my-old-benchmark/ (October 2008)
[13]
Troy, H. D.: UThash. http://uthash.sourceforge.net/ (January 2012)
[14]
Rabl, T., Gómez-Villamor, S., Sadoghi, M., Muntés-Mulero, V., Jacobsen, H. A., Mankovskii, S.: Solving big data challenges for enterprise application performance management. Proc. VLDB Endow. 5(12) (August 2012) 1724--1735
[15]
Kovács, K.: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Neo4j vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris comparison. http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis (March 2013)
[16]
J. Rodrigo, F., Blas, J. G., Carretero, J.: A hierarchical parallel storage system based on distributed memory for large scale systems, EuroMPI 2013 (September 2013)
[17]
Open MPI. http://www.open-mpi.org/ (March 2013)
[18]
MPICH2. http://www.mpich.org/ (March 2013)
[19]
OpenMP Architecture Review Board: OpenMP application program interface version 3.1 (July 2011)
[20]
Royuela, S., Duran, A., Martorell, X.: Compiler automatic discovery of ompss task dependencies. In Kasahara, H., Kimura, K., eds.: Languages and Compilers for Parallel Computing. Volume 7760 of Lecture Notes in Computer Science. Springer Berlin Heidelberg (2013) 234--248
[21]
Graham, R. L., Woodall, T. S., Squyres, J. M.: Open MPI: A flexible high performance MPI. In: Proceedings, 6th Annual International Conference on Parallel Processing and Applied Mathematics, Poznan, Poland (September 2005)
[22]
Timonen, V.: Mandelbrot with MPI. http://wili.cc/blog/mandelbrot-mpi.html (March 2013)

Cited By

View all
  • (2016)Improving performance using computational compression through memoizationInternational Journal of High Performance Computing Applications10.1177/109434201663781330:4(469-485)Online publication date: 1-Nov-2016

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
EuroMPI '13: Proceedings of the 20th European MPI Users' Group Meeting
September 2013
289 pages
ISBN:9781450319034
DOI:10.1145/2488551
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • ARCOS: Computer Architecture and Technology Area, Universidad Carlos III de Madrid

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 September 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. MPI
  2. high performance computing
  3. memoization

Qualifiers

  • Research-article

Funding Sources

Conference

EuroMPI '13
Sponsor:
  • ARCOS
EuroMPI '13: 20th European MPI Users's Group Meeting
September 15 - 18, 2013
Madrid, Spain

Acceptance Rates

EuroMPI '13 Paper Acceptance Rate 22 of 47 submissions, 47%;
Overall Acceptance Rate 66 of 139 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2016)Improving performance using computational compression through memoizationInternational Journal of High Performance Computing Applications10.1177/109434201663781330:4(469-485)Online publication date: 1-Nov-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media