Skip to main content

2012 | OriginalPaper | Buchkapitel

6. Advanced Memory Checking Frameworks for MPI Parallel Applications in Open MPI

verfasst von : Shiqing Fan, Rainer Keller, Michael Resch

Erschienen in: Tools for High Performance Computing 2011

Verlag: Springer Berlin Heidelberg

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

In this paper, we describe the implementation of memory checking functionality that is based on instrumentation tools. The combination of instrumentation based checking functions and the MPI-implementation offers superior debugging functionalities, for errors that otherwise are not possible to detect with comparable MPI-debugging tools. Our implementation contains three parts: first, a memory callback extension that is implemented on top of the Valgrind Memcheck tool for advanced memory checking in parallel applications; second, a new instrumentation tool was developed based on the Intel Pin framework, which provides similar functionality as Memcheck it can be used in Windows environments that have no access to the Valgrind suite; third, all the checking functionalities are integrated as the so-called memchecker framework within Open MPI. This will also allow other memory debuggers that offer a similar API to be integrated. The tight control of the user’s memory passed to Open MPI, allows us to detect application errors and to track bugs within Open MPI itself. The extension of the callback mechanism targets communication buffer checks in both pre- and post-communication phases, in order to analyze the usage of the received data, e.g. whether the received data has been overwritten before it is used in an computation or whether the data is never used. We describe our actual checks, classes of errors being found, how memory buffers are being handled internally, show errors actually found in user’s code, and the performance implications of our instrumentation.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
The MemPin tool in this work is developed only targeting at Windows platforms, although it may be used under Linux too.
 
2
E.g. this showed up uninitialized data in derived objects, e.g. communicators created using MPI_Comm_dup.
 
Literatur
2.
Zurück zum Zitat DeSouza, J., Kuhn, B., de Supinski, B.R.: Automated, scalable debugging of MPI programs with Intel message checker. In: Proceedings of the 2nd International Workshop on Software Engineering for High Performance Computing System Applications, vol. 4, pp. 78–82. ACM Press, New York (2005) DeSouza, J., Kuhn, B., de Supinski, B.R.: Automated, scalable debugging of MPI programs with Intel message checker. In: Proceedings of the 2nd International Workshop on Software Engineering for High Performance Computing System Applications, vol. 4, pp. 78–82. ACM Press, New York (2005)
3.
Zurück zum Zitat Keller, R., Resch, M.: Testing the correctness of MPI implementations. In: Proceedings of the 5th International Symposium on Parallel and Distributed Computing Conference, Timisoara, pp. 291–295 (2006) Keller, R., Resch, M.: Testing the correctness of MPI implementations. In: Proceedings of the 5th International Symposium on Parallel and Distributed Computing Conference, Timisoara, pp. 291–295 (2006)
4.
Zurück zum Zitat Keller, R., Fan, S., Resch, M.: Memory debugging of MPI-parallel applications in open MPI. In: Joubert, G., Bischof, C., Peters, F., Lippert, T., Bucker, M., Gibbon, P., Mohr B. (eds.) Proceedings of ParCo’07, Julich (2007) Keller, R., Fan, S., Resch, M.: Memory debugging of MPI-parallel applications in open MPI. In: Joubert, G., Bischof, C., Peters, F., Lippert, T., Bucker, M., Gibbon, P., Mohr B. (eds.) Proceedings of ParCo’07, Julich (2007)
5.
Zurück zum Zitat Krammer, B., Mueller, M.S., Resch, M.M.: Runtime checking of MPI applications with Marmot. In: Proceedings of the International Conference ParCo 2005, Malaga (2005) Krammer, B., Mueller, M.S., Resch, M.M.: Runtime checking of MPI applications with Marmot. In: Proceedings of the International Conference ParCo 2005, Malaga (2005)
6.
Zurück zum Zitat Luk, C.K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: building customized program analysis tools with dynamic instrumentation. In: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 190–200. ACM, New York (2005) Luk, C.K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: building customized program analysis tools with dynamic instrumentation. In: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 190–200. ACM, New York (2005)
10.
Zurück zum Zitat Seward, J., Nethercote, N.: Using Valgrind to detect undefined value errors with bit-precision. In: Proceedings of the USENIX’05 Annual Technical Conference, Anaheim (2005) Seward, J., Nethercote, N.: Using Valgrind to detect undefined value errors with bit-precision. In: Proceedings of the USENIX’05 Annual Technical Conference, Anaheim (2005)
11.
Zurück zum Zitat Shiqing Fan, R.K., Resch, M.: Enhanced memory debugging of mpi-parallel applications in open mpi. In: 4th Parallel Tools Workshop, Stuttgart (2010) Shiqing Fan, R.K., Resch, M.: Enhanced memory debugging of mpi-parallel applications in open mpi. In: 4th Parallel Tools Workshop, Stuttgart (2010)
12.
Zurück zum Zitat Srivastava, A., Eustace, A.: Atom: A System for Building Customized Program Analysis Tools, pp. 196–205. ACM, New York (1994) Srivastava, A., Eustace, A.: Atom: A System for Building Customized Program Analysis Tools, pp. 196–205. ACM, New York (1994)
16.
Zurück zum Zitat Woodall, T., Graham, R., Castain, R., Daniel, D., Sukalski, M., Fagg, G., Gabriel, E., Bosilca, G., Angskun, T., Dongarra, J., Squyres, J., Sahay, V., Kambadur, P., Barrett, B., Lumsdaine, A.: Open MPI’s TEG point-to-point communications methodology: comparison to existing implementations. In: Recent Advances in Parallel Virtual Machine and Message Passing Interface, vol. 3241, pp. 105–111. Springer, Budapest (2004) Woodall, T., Graham, R., Castain, R., Daniel, D., Sukalski, M., Fagg, G., Gabriel, E., Bosilca, G., Angskun, T., Dongarra, J., Squyres, J., Sahay, V., Kambadur, P., Barrett, B., Lumsdaine, A.: Open MPI’s TEG point-to-point communications methodology: comparison to existing implementations. In: Recent Advances in Parallel Virtual Machine and Message Passing Interface, vol. 3241, pp. 105–111. Springer, Budapest (2004)
Metadaten
Titel
Advanced Memory Checking Frameworks for MPI Parallel Applications in Open MPI
verfasst von
Shiqing Fan
Rainer Keller
Michael Resch
Copyright-Jahr
2012
Verlag
Springer Berlin Heidelberg
DOI
https://doi.org/10.1007/978-3-642-31476-6_6

Neuer Inhalt