Skip to main content

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


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.

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

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19



  2. It is instructive to note that the last iPhone6 could have been ranked in the top 500 in 1994, the reader may find the performance of his own computer in [21].




  1. Intel math kernel library (intel mkl) v11.0.

  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)

    Article  Google Scholar 

  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. 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)

  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)

  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)

    Article  Google Scholar 

  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)

  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. 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)

  10. Bourgoin, M., Chailloux, E., Lamotte, J.L.: Efficient abstractions for GPGPU programming. Int. J. Parallel Program. 42(4), 583–600 (2014)

    Article  Google Scholar 

  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. Cantonnet, F., Yao, Y., Zahran, M.M., El-Ghazawi, T.A.: Productivity analysis of the UPC language. In: IPDPS (2004)

  13. Chamberlain, B., Callahan, D., Zima, H.: Parallel programmability and the Chapel language. Int. J. High Perform. Comput. Appl. 21(3), 291–312 (2007)

    Article  Google Scholar 

  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)

  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. Clark, T., Muller, P.: Exploiting model driven technology: a tale of two startups. Softw. Syst. Model. 11(4), 481–493 (2012)

    Article  Google Scholar 

  17. Clayberg, E., Rubel, D.: Eclipse: Building Commercial-Quality Plug-ins (2nd Edn) (Eclipse). Addison-Wesley Professional, Boston (2006)

    Google Scholar 

  18. Colton, D.L., Kress, R.: Integral Equation Methods in Scattering Theory. Wiley, New York (1983)

    MATH  Google Scholar 

  19. Dagum, L., Menon, R.: OpenMP: an industry-standard API for shared-memory programming. Comput. Sci. Eng. 5, 46–55 (1998)

  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)

  21. Dongarra, J.J.: Performance of various computers using standard linear equations software. SIGARCH Comput. Archit. News 20(3), 22–44 (2014)

    Article  Google Scholar 

  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)

  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)

    Article  Google Scholar 

  24. Gonnord, J., Leca, P., Robin, F.: Au delà de 50 mille milliards d’opérations par seconde! La Recherche 393, 39–44 (2006)

  25. Grospellier, G., Lelandais, B.: The Arcane development framework. In: POOSC ’09. ACM (2009)

  26. Group, O.M.: Corba component model 4.0 specification. Technical report, Object Management Group (2006)

  27. Group, O.M.: MOF 2.4 Specification. Technical report (2011).

  28. Hanson, R., Tacy, A.: GWT in Action: Easy Ajax with the Google Web Toolkit. Manning Publications Co., Greenwich (2007)

    Google Scholar 

  29. Harrington, R.: Time-harmonic electromagnetic fields. In: IEEE Press Series on Electromagnetic Wave Theory. Wiley (2001)

  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)

  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)

  32. Kepner, J.: HPC productivity: an overarching view. Int. J. High Perform. Comput. Appl. 18(4), 393–397 (2004)

    Article  Google Scholar 

  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)

  34. KhronosGroup. The OpenCL specification v1.2. Technical report (2011).

  35. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. Springer, New York (1997)

    Book  Google Scholar 

  36. Kirk, D.: NVIDIA CUDA software and GPU parallel computing architecture. In: ISMM, pp. 103–104 (2007)

  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)

  38. Larus, J.R.: Spending Moore’s dividend. Commun. ACM 52(5), 62–69 (2009)

    Article  Google Scholar 

  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)

  40. Merali, Z.: Computational science:...error. Nature 467, 775–777 (2010)

  41. Miller, J., Mukerji, J.: Mda guide version 1.0.1. omg/2003-06-01. Technical report, OMG, (2003)

  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)

  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)

    Article  Google Scholar 

  44. Moore, G.E.: Cramming more components onto integrated circuits. Electronics 38(8), 114–117 (1965)

    Google Scholar 

  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)

  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)

  47. Northover, S., Wilson, M.: SWT: the standard widget toolkit. Addison-Wesley, The Eclipse series (2004)

    Google Scholar 

  48. Oudin, H.: Méthode des éléments finis., (Sept. 2008)

  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)

  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)

  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)

  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)

  53. Reid, J.: Coarrays in the next fortran standard. SIGPLAN Fortran Forum, 29(2), 2010

  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)

    Article  MATH  Google Scholar 

  55. Shankland, S.: In newest tally, supercomputing progress tapers off. CNET, november, (2014).

  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. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0. Addison-Wesley Professional, (2009)

  58. Stone, J., Gohara, D., Shi, G.: Opencl: A parallel programming standard for heterogeneous computing systems. Computing in science & engineering 12(3), 66 (2010)

    Article  Google Scholar 

  59. UPC Consortium. UPC Language Specifications, v1.2. Tech Report LBNL-59208, Lawrence Berkeley National Lab, (2005).

  60. Weiland, M.: Chapel, Fortress and X10: Novel Languages for HPC. Technical report, The University of Edinburgh, (October 2007).

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Ileana Ober.

Additional information

Communicated by Prof. Dorina Petriu.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Ober, I., Palyart, M., Bruel, JM. et al. On the use of models for high-performance scientific computing applications: an experience report. Softw Syst Model 17, 319–342 (2018).

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI:


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