ABSTRACT
High performance architectures evolve continuously to be more powerful. Such architectures also usually become more difficult to use efficiently. As a scientist is not a low level and high performance programming expert, Domain Specific Languages (DSLs) are a promising solution to automatically and efficiently write high performance codes. However, if DSLs ease programming for scientists, maintainability and portability issues are transferred from scientists to DSL designers. This paper deals with an approach to improve maintainability and programming productivity of DSLs through the generation of a component-based parallel runtime. To study it, the paper presents a DSL for multi-stencil programs, that is evaluated on a real-case of shallow water equations.
- B. A. Allan et al. A component architecture for high-performance scientific computing. International Journal of High Performance Computing Applications, 20(2):163--202, 2006. Google ScholarDigital Library
- C. Augonnet, S. Thibault, R. Namyst, and P.-A. Wacrenier. StarPU: a unified platform for task scheduling on heterogeneous multicore architectures. Concurrency and Computation: Practice and Experience, 23(2):187--198, 2011. Google ScholarDigital Library
- S. Balay, W. Gropp, L. McInnes, and B. Smith. Efficient Management of Parallelism in Object Oriented Numerical Software Libraries. In E. Arge, A. M. Bruaset, and H. P. Langtangen, editors, Modern Software Tools in Scientific Computing, pages 163--202. Birkhäuser Press, 1997. Google ScholarDigital Library
- F. Baude, D. Caromel, C. Dalmasso, M. Danelutto, V. Getov, L. Henrio, and C. Pérez. Gcm: a grid extension to fractal for autonomous distributed components. annals of telecommunications, 64(1-2):5--24, 2009.Google Scholar
- J. Bigot, Z. Hou, C. Pérez, and V. Pichon. A low level component model easing performance portability of hpc applications. Computing, 96(12):1115--1130, 2014. Google ScholarDigital Library
- J. Bigot and C. Pérez. Increasing reuse in component models through genericity. In S. Edwards and G. Kulczycki, editors, Formal Foundations of Reuse and Domain Engineering, volume 5791 of Lecture Notes in Computer Science, pages 21--30. Springer Berlin Heidelberg, 2009. Google ScholarDigital Library
- M. Christen, O. Schenk, and H. Burkhart. PATUS: A Code Generation and Autotuning Framework for Parallel Iterative Stencil Computations on Modern Microarchitectures. In Parallel & Distributed Processing Symposium (IPDPS), 2011 IEEE International, pages 676--687. IEEE, May 2011. Google ScholarDigital Library
- H. Coullon and S. Limet. The SIPSim implicit parallelism model and the SkelGIS library. Concurrency and Computation: Practice and Experience, 2015.Google Scholar
- L. Dagum and R. Menon. Openmp: an industry standard api for shared-memory programming. Computational Science Engineering, IEEE, 5(1):46--55, Jan 1998. Google ScholarDigital Library
- Z. DeVito, N. Joubert, F. Palacios, S. Oakley, M. Medina, M. Barrientos, E. Elsen, F. Ham, A. Aiken, K. Duraisamy, E. Darve, J. Alonso, and P. Hanrahan. SC '11, pages 9:1--9:12, New York, NY, USA, 2011. ACM.Google Scholar
- A. Fernández, V. Beltran, S. Mateo, T. Patejko, and E. Ayguadé. A data flow language to develop high performance computing dsls. In Proceedings of the Fourth International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing, WOLFHPC '14, pages 11--20, Piscataway, NJ, USA, 2014. IEEE Press. Google ScholarDigital Library
- S. Ferrari and F. Saleri. A new two-dimensional shallow water model including pressure effects and slow varying bottom topography. M2AN Math. Model. Numer. Anal., 38(2):211--234, 2004.Google ScholarCross Ref
- T. Gautier, J. Lima, N. Maillard, and B. Raffin. Xkaapi: A runtime system for data-flow task programming on heterogeneous architectures. In Proceedings of the 2013 IEEE 27th International Symposium on Parallel and Distributed Processing, IPDPS '13, pages 1299--1308, Washington, DC, USA, 2013. IEEE Computer Society. Google ScholarDigital Library
- M. B. Giles, G. R. Mudalige, Z. Sharif, G. Markall, and P. H. Kelly. Performance Analysis of the OP2 Framework on Many-core Architectures. SIGMETRICS Perform. Eval. Rev., 38(4):9--15, Mar. 2011. Google ScholarDigital Library
- M. Mitchell. Creating minimal vertex series parallel graphs from directed acyclic graphs. In Proc. of the 2004 Australasian Symposium on Information Visualisation, volume 35 of APVis '04, pages 133--139, Darlinghurst, Australia, 2004. Australian Computer Society, Inc. Google ScholarDigital Library
- J. Nieplocha, B. Palmer, V. Tipparaju, M. Krishnan, H. Trease, and E. Aprà. Advances, applications and performance of the global arrays shared memory programming toolkit. Int. J. High Perform. Comput. Appl., 20(2):203--231, May 2006. Google ScholarDigital Library
- Object Management Group. Corba component model 4.0 specification. Specification Version 4.0, Object Management Group, April 2006.Google Scholar
- J. Ragan-Kelley, C. Barnes, A. Adams, S. Paris, F. Durand, and S. Amarasinghe. Halide: A language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '13, pages 519--530, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- J. Richard, V. Lanore, and C. Pérez. Towards application variability handling with component models: 3d-fft use case study. In Proc. of The 8th Workshop on UnConventional High Performance Computing (UCHPC), Vienna, Austria, Aug. 2015. To appear.Google Scholar
- C. Schmitt, S. Kuckuk, F. Hannig, H. Köstler, and J. Teich. Exaslang: A domain-specific language for highly scalable multigrid solvers. In Proceedings of the Fourth International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing, WOLFHPC '14, pages 42--51, Piscataway, NJ, USA, 2014. IEEE Press. Google ScholarDigital Library
- B. Schoenmakers. A new algorithm for the recognition of series parallel graphs. Technical report, CWI - Centrum voor Wiskunde en Informatica, 1995. Google ScholarDigital Library
- C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd edition, 2002. Google ScholarDigital Library
- Y. Tang, R. Chowdhury, B. Kuszmaul, C.-K. Luk, and C. Leiserson. The pochoir stencil compiler. In L. Fortnow and S. P. Vadhan, editors, SPAA, pages 117--128. ACM, 2011. Google ScholarDigital Library
- J. Valdes, R. Tarjan, and E. Lawler. The recognition of series parallel digraphs. In Proceedings of the Eleventh Annual ACM Symposium on Theory of Computing, STOC '79, pages 1--12, New York, NY, USA, 1979. ACM. Google ScholarDigital Library
Index Terms
- From DSL to HPC component-based runtime: a multi-stencil DSL case study
Recommendations
DSL implementation using staging and monads
DSL '99: Proceedings of the 2nd conference on Domain-specific languagesThe impact of Domain Specific Languages (DSLs) on software design is considerable. They allow programs to be more concise than equivalent programs written in a high-level programming languages. They relieve programmers from making decisions about data-...
DSL evolution through composition
RAM-SE '10: Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software EvolutionThe use of domain specific languages (DSL), instead of general purpose languages introduces a number of advantages in software development even if could be problematic to maintain the DSL consistent with the evolution of the domain. Traditionally, to ...
A generative programming approach to developing DSL compilers
GPCE'05: Proceedings of the 4th international conference on Generative Programming and Component EngineeringDomain-Specific Languages (DSLs) represent a proven approach to raising the abstraction level of programming. They offer high-level constructs and notations dedicated to a domain, structuring program design, easing program writing, masking the ...
Comments