Skip to main content
Erschienen in: International Journal of Parallel Programming 6/2017

10.11.2016

Supporting Enhanced Exception Handling with OpenMP in Object-Oriented Languages

verfasst von: Xing Fan, Mostafa Mehrabi, Oliver Sinnen, Nasser Giacaman

Erschienen in: International Journal of Parallel Programming | Ausgabe 6/2017

Einloggen

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

search-config
loading …

Abstract

The proliferation of parallel processing in shared-memory applications has encouraged developing assistant frameworks such as OpenMP. OpenMP has become increasingly prevalent due to the simplicity it offers to elegantly and incrementally introduce parallelism. However, it still lacks some high-level language features that are essential in object-oriented programming. One such mechanism is that of exception handling. In languages such as Java, the concept of exception handling has been an integral aspect to the language since the first release. For OpenMP to be truly embraced within this object-oriented community, essential object-oriented concepts such as exception handling need to be given some attention. The official OpenMP standard has little specification on error recovery, as the challenges of supporting exception-based error recovery in OpenMP extends to both the semantic specifications and related runtime support. This paper proposes a systematic mechanism for exception handling with the co-use of OpenMP directives, which is based on a Java implementation of OpenMP. The concept of exception handling with OpenMP directives has been formalized and categorized. Hand in hand with this exception handling proposal, a flexible approach to thread cancellation is also proposed (as an extension on OpenMP directives) that supports this exception handling within parallel execution. The runtime support and its implementation are discussed. The evaluation shows that while there is no prominent overhead introduced, the new approach provides a more elegant coding style which increases the parallel development efficiency and software robustness.

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 "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!

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!

Literatur
1.
Zurück zum Zitat Bull, M.: Measuring synchronisation and scheduling overheads in OpenMP. In: Proceedings of First European Workshop on OpenMP. vol. 8, p. 49 (1999) Bull, M.: Measuring synchronisation and scheduling overheads in OpenMP. In: Proceedings of First European Workshop on OpenMP. vol. 8, p. 49 (1999)
2.
Zurück zum Zitat Duran, A., Ferrer, R., Costa, J.J., Gonzàlez, M., Martorell, X., Ayguadé, E., Labarta, J.: A proposal for error handling in OpenMP. Int. J. Parallel Prog. 35(4), 393–416 (2007)CrossRefMATH Duran, A., Ferrer, R., Costa, J.J., Gonzàlez, M., Martorell, X., Ayguadé, E., Labarta, J.: A proposal for error handling in OpenMP. Int. J. Parallel Prog. 35(4), 393–416 (2007)CrossRefMATH
4.
Zurück zum Zitat Giacaman, N., Sinnen, O.: Parallel task for parallelising object-oriented desktop applications. Int. J. Parallel Prog. 41(5), 621–681 (2013)CrossRef Giacaman, N., Sinnen, O.: Parallel task for parallelising object-oriented desktop applications. Int. J. Parallel Prog. 41(5), 621–681 (2013)CrossRef
5.
Zurück zum Zitat Giacaman, N., Sinnen, O., Akeila, L.: Object-oriented parallelisation: improved and extended parallel iterator. In: 14th IEEE International Conference on Parallel and Distributed Systems, ICPADS’08, pp. 113–120. IEEE (2008) Giacaman, N., Sinnen, O., Akeila, L.: Object-oriented parallelisation: improved and extended parallel iterator. In: 14th IEEE International Conference on Parallel and Distributed Systems, ICPADS’08, pp. 113–120. IEEE (2008)
6.
Zurück zum Zitat Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)CrossRef Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)CrossRef
7.
Zurück zum Zitat Keen, A.W., Olsson, R.A.: Exception handling during asynchronous method invocation. In: Euro-Par 2002 Parallel Processing, volume 2400 of Lecture Notes in Computer Science, pp. 656–660. Springer, Berlin (2002) Keen, A.W., Olsson, R.A.: Exception handling during asynchronous method invocation. In: Euro-Par 2002 Parallel Processing, volume 2400 of Lecture Notes in Computer Science, pp. 656–660. Springer, Berlin (2002)
8.
Zurück zum Zitat Knafla, B., Leopold, C.: Parallelizing a real-time steering simulation for computer games with OpenMP. In: Bischof, C., Bücker, M., Gibbon, P., Joubert, G.R., Lippert, T., Mohr, B., Peters F. (eds.) Parallel Computing: Architectures, Algorithms, and Applications. IOS Press, Amsterdam, Netherlands (2008) Knafla, B., Leopold, C.: Parallelizing a real-time steering simulation for computer games with OpenMP. In: Bischof, C., Bücker, M., Gibbon, P., Joubert, G.R., Lippert, T., Mohr, B., Peters F. (eds.) Parallel Computing: Architectures, Algorithms, and Applications. IOS Press, Amsterdam, Netherlands (2008)
9.
Zurück zum Zitat Münchhalfen, J.F., Hilbrich, T., Protze, J., Terboven, C., Müller, M.S.: Classification of common errors in OpenMP applications. In: DeRose, L., de Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) Using and Improving OpenMP for Devices, Tasks, and More, pp. 58–72. Springer, Berlin (2014) Münchhalfen, J.F., Hilbrich, T., Protze, J., Terboven, C., Müller, M.S.: Classification of common errors in OpenMP applications. In: DeRose, L., de Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) Using and Improving OpenMP for Devices, Tasks, and More, pp. 58–72. Springer, Berlin (2014)
10.
Zurück zum Zitat OpenMP Architecture Review Board: OpenMP application program interface 4.0, July 2013 OpenMP Architecture Review Board: OpenMP application program interface 4.0, July 2013
11.
Zurück zum Zitat Saillard, E., Carribault, P., Barthou, D.: Static validation of barriers and worksharing constructs in OpenMP applications. In: DeRose, L., de Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) Using and Improving OpenMP for Devices, Tasks, and More, pp. 73–86. Springer, Berlin (2014) Saillard, E., Carribault, P., Barthou, D.: Static validation of barriers and worksharing constructs in OpenMP applications. In: DeRose, L., de Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) Using and Improving OpenMP for Devices, Tasks, and More, pp. 73–86. Springer, Berlin (2014)
12.
Zurück zum Zitat Salva, S., Delamare, C., Bastoul, C.: Web service call parallelization using OpenMP. In: A Practical Programming Model for the Multi-Core Era, volume 4935 of Lecture Notes in Computer Science, pp. 185–194. Springer, Berlin (2008) Salva, S., Delamare, C., Bastoul, C.: Web service call parallelization using OpenMP. In: A Practical Programming Model for the Multi-Core Era, volume 4935 of Lecture Notes in Computer Science, pp. 185–194. Springer, Berlin (2008)
13.
Zurück zum Zitat Stroustrup, B.: The Design and Evolution of C++. Pearson Education India, Delhi (1994) Stroustrup, B.: The Design and Evolution of C++. Pearson Education India, Delhi (1994)
14.
Zurück zum Zitat Vikas, Giacaman, N., Sinnen, O.: Pyjama: OpenMP-like implementation for Java, with GUI extensions. In: Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM ’13, pp. 43–52, New York, NY, USA. ACM (2013) Vikas, Giacaman, N., Sinnen, O.: Pyjama: OpenMP-like implementation for Java, with GUI extensions. In: Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores, PMAM ’13, pp. 43–52, New York, NY, USA. ACM (2013)
15.
Zurück zum Zitat Vikas, Travis, S., Giacaman, N., Sinnen, O.: Using OpenMP under Android. In: OpenMP in the Era of Low Power Devices and Accelerators, volume 8122 of Lecture Notes in Computer Science, pp. 15–29. Springer, Berlin (2013) Vikas, Travis, S., Giacaman, N., Sinnen, O.: Using OpenMP under Android. In: OpenMP in the Era of Low Power Devices and Accelerators, volume 8122 of Lecture Notes in Computer Science, pp. 15–29. Springer, Berlin (2013)
16.
Zurück zum Zitat Wang, Y., Nicolau, A., Cammarota, R., Veidenbaum, A.V.: A fault tolerant self-scheduling scheme for parallel loops on shared memory systems. In: 2012 19th International Conference on High Performance Computing (HiPC), pp. 1–10, Dec 2012 Wang, Y., Nicolau, A., Cammarota, R., Veidenbaum, A.V.: A fault tolerant self-scheduling scheme for parallel loops on shared memory systems. In: 2012 19th International Conference on High Performance Computing (HiPC), pp. 1–10, Dec 2012
17.
Zurück zum Zitat Wong, M., Klemm, M., Duran, A., Mattson, T, Haab, G., de Supinski, B.R., Churbanov, A.: Towards an error model for OpenMP. In: Beyond Loop Level Parallelism in OpenMP: Accelerators. Tasking and More, volume 6132 of Lecture Notes in Computer Science, pp. 70–82. Springer, Berlin (2010) Wong, M., Klemm, M., Duran, A., Mattson, T, Haab, G., de Supinski, B.R., Churbanov, A.: Towards an error model for OpenMP. In: Beyond Loop Level Parallelism in OpenMP: Accelerators. Tasking and More, volume 6132 of Lecture Notes in Computer Science, pp. 70–82. Springer, Berlin (2010)
18.
Zurück zum Zitat Zhang, L., Krintz, C., Nagpurkar, P.: Supporting exception handling for futures in Java. In: Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java, PPPJ ’07, pp. 175–184, New York, NY, USA. ACM (2007) Zhang, L., Krintz, C., Nagpurkar, P.: Supporting exception handling for futures in Java. In: Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java, PPPJ ’07, pp. 175–184, New York, NY, USA. ACM (2007)
Metadaten
Titel
Supporting Enhanced Exception Handling with OpenMP in Object-Oriented Languages
verfasst von
Xing Fan
Mostafa Mehrabi
Oliver Sinnen
Nasser Giacaman
Publikationsdatum
10.11.2016
Verlag
Springer US
Erschienen in
International Journal of Parallel Programming / Ausgabe 6/2017
Print ISSN: 0885-7458
Elektronische ISSN: 1573-7640
DOI
https://doi.org/10.1007/s10766-016-0474-x

Weitere Artikel der Ausgabe 6/2017

International Journal of Parallel Programming 6/2017 Zur Ausgabe