Software & Systems Modeling

, Volume 17, Issue 1, pp 319–342 | Cite as

On the use of models for high-performance scientific computing applications: an experience report

  • Ileana Ober
  • Marc Palyart
  • Jean-Michel Bruel
  • David Lugato
Regular Paper


This paper reports on a four-year project that aims to raise the abstraction level through the use of model-driven engineering (MDE) techniques in the development of scientific applications relying on high-performance computing. The development and maintenance of high-performance scientific computing software is reputedly a complex task. This complexity results from the frequent evolutions of supercomputers and the tight coupling between software and hardware aspects. Moreover, current parallel programming approaches result in a mixing of concerns within the source code. Our approach relies on the use of MDE and consists in defining domain-specific modeling languages targeting various domain experts involved in the development of HPC applications, allowing each of them to handle their dedicated model in a both user-friendly and hardware-independent way. The different concerns are separated thanks to the use of several models as well as several modeling viewpoints on these models. Depending on the targeted execution platforms, these abstract models are translated into executable implementations by means of model transformations. To make all of these effective, we have developed a tool chain that is also presented in this paper. The approach is assessed through a multi-dimensional validation that focuses on its applicability, its expressiveness and its efficiency. To capitalize on the gained experience, we analyze some lessons learned during this project.


HPC High-performance calculus MDE Model-driven engineering Architecture Fortran 


  1. 1.
    Intel math kernel library (intel mkl) v11.0.
  2. 2.
    Allan, B.A., Armstrong, R., Bernholdt, D.E., Bertrand, F., Chiu, K., Dahlgren, T.L., Damevski, K., Elwasif, W.R., Epperly, T.G.W., Govindaraju, M., Katz, D.S., Kohl, J.A., Krishnan, M., Kumfert, G., Larson, J.W., Lefantzi, S., Lewis, M.J., Malony, A.D., Mclnnes, L.C., Nieplocha, J., Norris, B., Parker, S.G., Ray, J., Shende, S., Windus, T.L., Zhou, S.: A component architecture for high-performance scientific computing. Int. J. High Perform. Comput. Appl. 20(2), 163–202 (2006)CrossRefGoogle Scholar
  3. 3.
    Allen, E., Chase, D., Hallett, J., Luchangco, V., Maessen, J.-W., Ryu, S., Steele, G. L. Jr., Tobin-Hochstadt, S.: The Fortress Language Specification. Technical report, Sun Microsystems Inc, (2007).
  4. 4.
    Aranda, J., Damian, D., Borici, A.: Transition to model-driven engineering—What is revolutionary, what remains the same? In: 15th International Conference on Model Driven Engineering Languages and Systems, MODELS 2012, pages 692–708 (2012)Google Scholar
  5. 5.
    Arkin, E., Tekinerdogan, B., Imre, K.M.: Model-driven approach for supporting the mapping of parallel algorithms to parallel computing platforms. In: MoDELS, pages 757–773, (2013)Google Scholar
  6. 6.
    Augonnet, C., Thibault, S., Namyst, R., Wacrenier, P.-A.: StarPU: a unified platform for task scheduling on heterogeneous multicore architectures. Concurr. Comput. Pract. Exp. 23(2), 187–198 (2011)CrossRefGoogle Scholar
  7. 7.
    Bauer, M., Treichler, S., Aiken, A.: Singe: Leveraging warp specialization for high performance on gpus. In: Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’14, pages 119–130, New York, NY, USA. ACM (2014)Google Scholar
  8. 8.
    Bigot, J., Pérez, C.: High performance composition operators in component models. In: Foster, I., Grandinetti, L., Joubert, G.R., Gentzsch, W. (eds.) High Performance Computing: From Grids and Clouds to Exascale, Volume 20 of Advances in Parallel Computing, pp. 182–201. Amsterdam, IOS Press (2011)Google Scholar
  9. 9.
    Bodin, F.: Keynote: compilers in the manycore era. In: HiPEAC ’09: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers, pp. 2–3, Berlin, Heidelberg. Springer (2009)Google Scholar
  10. 10.
    Bourgoin, M., Chailloux, E., Lamotte, J.L.: Efficient abstractions for GPGPU programming. Int. J. Parallel Program. 42(4), 583–600 (2014)CrossRefGoogle Scholar
  11. 11.
    Breu, R., Agreiter, B., Farwick, M., Felderer, M., Hafner, M., Innerhofer-Oberperfler, F.: Living models-ten principles for change-driven software engineering. Int. J. Softw. Inform. 5(1–2), 267–290 (2011)Google Scholar
  12. 12.
    Cantonnet, F., Yao, Y., Zahran, M.M., El-Ghazawi, T.A.: Productivity analysis of the UPC language. In: IPDPS (2004)Google Scholar
  13. 13.
    Chamberlain, B., Callahan, D., Zima, H.: Parallel programmability and the Chapel language. Int. J. High Perform. Comput. Appl. 21(3), 291–312 (2007)CrossRefGoogle Scholar
  14. 14.
    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: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA ’05, pp. 519–538. ACM (2005)Google Scholar
  15. 15.
    Clark, T., France, R.B., Gogolla, M., Selic, B.V.: Meta-modeling model-based engineering tools (Dagstuhl Seminar 13182). Dagstuhl Rep. 3(4), 188–226 (2013)Google Scholar
  16. 16.
    Clark, T., Muller, P.: Exploiting model driven technology: a tale of two startups. Softw. Syst. Model. 11(4), 481–493 (2012)CrossRefGoogle Scholar
  17. 17.
    Clayberg, E., Rubel, D.: Eclipse: Building Commercial-Quality Plug-ins (2nd Edn) (Eclipse). Addison-Wesley Professional, Boston (2006)Google Scholar
  18. 18.
    Colton, D.L., Kress, R.: Integral Equation Methods in Scattering Theory. Wiley, New York (1983)MATHGoogle Scholar
  19. 19.
    Dagum, L., Menon, R.: OpenMP: an industry-standard API for shared-memory programming. Comput. Sci. Eng. 5, 46–55 (1998)Google Scholar
  20. 20.
    DeVito, Z., Joubert, N., Palacios, F., Oakley, S., Medina, M., Barrientos, M., Elsen, E., Ham, F., Aiken, A., Duraisamy, K., Darve, E., Alonso, J., Hanrahan, P.: Liszt: a domain specific language for building portable mesh-based pde solvers. In: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, SC ’11, pp. 9:1–9:12. ACM (2011)Google Scholar
  21. 21.
    Dongarra, J.J.: Performance of various computers using standard linear equations software. SIGARCH Comput. Archit. News 20(3), 22–44 (2014)CrossRefGoogle Scholar
  22. 22.
    Foxy, G., Hawick, K., White, A.: Characteristics of hpc scientific and engineering applications. In: Second Pasadena Workshop on System Software on Tools for High Performance Computing Environments (1996)Google Scholar
  23. 23.
    Gamatié, A., Le Beux, S., Piel, E., Ben Atitallah, R., Etien, A., Marquet, P., Dekeyser, J.-L.: A model-driven design framework for massively parallel embedded systems. ACM Trans. Embed. Comput. Syst 10(4), 39:1–39:36 (2011)CrossRefGoogle Scholar
  24. 24.
    Gonnord, J., Leca, P., Robin, F.: Au delà de 50 mille milliards d’opérations par seconde! La Recherche 393, 39–44 (2006)Google Scholar
  25. 25.
    Grospellier, G., Lelandais, B.: The Arcane development framework. In: POOSC ’09. ACM (2009)Google Scholar
  26. 26.
    Group, O.M.: Corba component model 4.0 specification. Technical report, Object Management Group (2006)Google Scholar
  27. 27.
    Group, O.M.: MOF 2.4 Specification. Technical report (2011).
  28. 28.
    Hanson, R., Tacy, A.: GWT in Action: Easy Ajax with the Google Web Toolkit. Manning Publications Co., Greenwich (2007)Google Scholar
  29. 29.
    Harrington, R.: Time-harmonic electromagnetic fields. In: IEEE Press Series on Electromagnetic Wave Theory. Wiley (2001)Google Scholar
  30. 30.
    Hutchinson, J., Whittle, J., Rouncefield, M., Kristoffersen, S.: Empirical assessment of MDE in industry. In: Proceedings of the 33rd International Conference on Software Engineering, ICSE, pp. 471–480 (2011)Google Scholar
  31. 31.
    Kalliamvakou, E., Palyart, M., Murphy, G., Damian, D.: A field study of modellers at work. In: 2015 IEEE/ACM 7th International Workshop on Modeling in Software Engineering (MiSE) (2015)Google Scholar
  32. 32.
    Kepner, J.: HPC productivity: an overarching view. Int. J. High Perform. Comput. Appl. 18(4), 393–397 (2004)CrossRefGoogle Scholar
  33. 33.
    Keutzer, K., Massingill, B.L., Mattson, T.G., Sanders, B.A.: A design pattern language for engineering (parallel) software: merging the PLPP and OPL projects. In: Proceedings of the 2010 Workshop on Parallel Programming Patterns, ParaPLoP ’10. ACM (2010)Google Scholar
  34. 34.
    KhronosGroup. The OpenCL specification v1.2. Technical report (2011).
  35. 35.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. Springer, New York (1997)CrossRefGoogle Scholar
  36. 36.
    Kirk, D.: NVIDIA CUDA software and GPU parallel computing architecture. In: ISMM, pp. 103–104 (2007)Google Scholar
  37. 37.
    Kuhn, A., Murphy, G.C., Thompson, C.A.: An exploratory study of forces and frictions affecting large-scale model-driven development. In: 15th International Conference on Model Driven Engineering Languages and Systems, MODELS, pp. 352–367 (2012)Google Scholar
  38. 38.
    Larus, J.R.: Spending Moore’s dividend. Commun. ACM 52(5), 62–69 (2009)CrossRefGoogle Scholar
  39. 39.
    Luk, C.-K., Hong, S., Kim, H.: Qilin: exploiting parallelism on heterogeneous multiprocessors with adaptive mapping. In: Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 42, pp. 45–55. ACM (2009)Google Scholar
  40. 40.
    Merali, Z.: Computational science:...error. Nature 467, 775–777 (2010)Google Scholar
  41. 41.
    Miller, J., Mukerji, J.: Mda guide version 1.0.1. omg/2003-06-01. Technical report, OMG, (2003)Google Scholar
  42. 42.
    Mohagheghi, P., Dehlen, V.: Where is the proof? - a review of experiences from applying mde in industry. In: Proceedings of the 4th European Conference on Model Driven Architecture: Foundations and Applications, ECMDA-FA ’08, (2008)Google Scholar
  43. 43.
    Moody, D.L.: The “physics” of notations: Toward a scientific basis for constructing visual notations in software engineering. IEEE Trans. Software Eng. 35, 756–779 (2009)CrossRefGoogle Scholar
  44. 44.
    Moore, G.E.: Cramming more components onto integrated circuits. Electronics 38(8), 114–117 (1965)Google Scholar
  45. 45.
    Nanthaamornphong, A., Morris, K., Filippone, S.: Extracting uml class diagrams from object-oriented fortran: Foruml. In: Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering, SE-HPCCSE ’13, pages 9–16, New York, NY, USA. ACM (2013)Google Scholar
  46. 46.
    Nassiet, D., Livet, Y., Palyart, M., Lugato, D.: Paprika: rapid UI development of scientific dataset editors for high -performance computing. In: Proceedings of the 15th international conference on Integrating System and Software Modeling, SDL’11, pages 69–78. Springer-Verlag, (2011)Google Scholar
  47. 47.
    Northover, S., Wilson, M.: SWT: the standard widget toolkit. Addison-Wesley, The Eclipse series (2004)Google Scholar
  48. 48.
    Oudin, H.: Méthode des éléments finis., (Sept. 2008)
  49. 49.
    Palyart, M.: Une approche basée sur les modèles pour le développement d’applications de simulation numérique haute-performance. PhD thesis, Université Paul Sabatier - Toulouse III, (2012)Google Scholar
  50. 50.
    Palyart, M., Lugato, D., Ober, I., Bruel, J.-M.: Improving scalability and maintenance of software for high-performance scientific computing by combining MDE and frameworks. In: Proceedings of the 14th international conference on Model driven engineering languages and systems, MODELS’11, pages 213–227. Springer-Verlag, (2011)Google Scholar
  51. 51.
    Palyart, M., Lugato, D., Ober, I., Bruel, J.-M.: MDE4HPC: An approach for using Model-Driven Engineering in High-Performance Computing. In: 15th System Design Languages Forum (SDL 2011), (2011)Google Scholar
  52. 52.
    Palyart, M., Lugato, D., Ober, I., Bruel, J.-M.: HPCML: A Modeling Language Dedicated to High-Performance Scientific. In: 1st International Workshop on Model-Driven Engineering for High Performance and CLoud computing (MDHPCL). ACM, (October 2012)Google Scholar
  53. 53.
    Reid, J.: Coarrays in the next fortran standard. SIGPLAN Fortran Forum, 29(2), 2010Google Scholar
  54. 54.
    Shan, H., Singh, J.P.: A Comparison of MPI, SHMEM and Cache-Coherent Shared Address Space Programming Models on a Tightly-Coupled Multiprocessors. Int. J. Parallel Program. 29(3), 283–318 (2001)CrossRefMATHGoogle Scholar
  55. 55.
    Shankland, S.: In newest tally, supercomputing progress tapers off. CNET, november, (2014).
  56. 56.
    Snir, M., Otto, S.W., Huss-Lederman, S., Walker, D.W., Dongarra, J.: MPI: The complete reference. MIT Press, Cambridge, MA (1996)Google Scholar
  57. 57.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0. Addison-Wesley Professional, (2009)Google Scholar
  58. 58.
    Stone, J., Gohara, D., Shi, G.: Opencl: A parallel programming standard for heterogeneous computing systems. Computing in science & engineering 12(3), 66 (2010)CrossRefGoogle Scholar
  59. 59.
    UPC Consortium. UPC Language Specifications, v1.2. Tech Report LBNL-59208, Lawrence Berkeley National Lab, (2005).
  60. 60.
    Weiland, M.: Chapel, Fortress and X10: Novel Languages for HPC. Technical report, The University of Edinburgh, (October 2007).

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Ileana Ober
    • 1
  • Marc Palyart
    • 2
  • Jean-Michel Bruel
    • 1
  • David Lugato
    • 3
  1. 1.IRITUniversity of ToulouseToulouseFrance
  2. 2.University of British ColumbiaVancouverCanada
  3. 3.CEA CESTALe BarpFrance

Personalised recommendations