Model-driven Engineering of Scientific Applications
Model-driven Engineering of Scientific Applications
Developing complex scientific applications that can process big datasets requires effective utilization of the computational power of the existing platforms including grids, clouds, clusters, multi-core and many-core processors, and graphical processing units (GPUs). However, scientists who need to leverage such platforms are not parallel or distributed programming experts. Thus, they face numerous challenges in conducting their experiments on such platforms including lack abstract domain-oriented tools, lack of a common parallel programming model, and unsuitable development environments. In this research, we introduce a novel, multi-level abstraction approach supported with a toolset that helps in engineering scientific applications. In our approach we capture and link problem model, data model, parallel program model, and deployment model.
Contact
malmorsy at swin dot edu dot au
Aspects captured by our MDE approach to parallelize programs
(+61 3) 9214 5725
Office Location
EN511c
Engineering Building
EN Building - 5th Floor
John Street, Hawthorn
Victoria 3122
Postal Address
Swinburne University of Technology
Faculty of Information and
Communication Technologies
PO Box 218
Hawthorn, Victoria
Australia 3122
Our approach is based on providing an extensible set of domain-specific visual languages to help in modelling program structure and input dataset structure. Our approach has two more DSVLs to develop parallelization plans, and deployment details. The approach is supported by a web-based designer tool including code generation, code editing, reverse engineering, pattern reuse. These sets of predominantly visual languages support capturing descriptions of the sequential program, parallelization specification details, and deployment details – i.e. it captures what code blocks to parallelize and how such blocks could be parallelized using available computational resources. These steps are language independent – i.e. regardless of the programming language used in developing the program. Such program details are used to guide the generation of the corresponding parallel programs using necessary parallel programming models that uses parallel and distributed programming models (MPI, OpenCL, or OpenMP) as needed. Programmers/scientists do not need to have experience with parallel patterns and heterogeneous computing platforms. Moreover, our approach saves efforts required to study implications of changing program deployment specifications, or rewriting programs when migrating from one platform to another. Thus, programmers/scientists can write a program, model its parallel and deployment aspects, and then get it to run on different computing platforms either single core, multi-core, many-core, or hardware accelerators by updating program deployment details.
High-level architecture of our MDE for parallel programming
Snapshot of matrix multiplication parallel model
Snapshot of N-body simulation models developed by our tool
Publications
Almorsy, M., Grundy, J.C. and Ruegg, U. HorusCML: Context-aware Domain Specific Visual Languages Designer, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing, Melbourne, Australia, July 27-1 Aug 2014, IEEE CPS -- Published version DOI Author pre-published version PDF
Almorsy, M., Grundy, J.C., Sadus, R., Barnes, D., Kaluza, O., van Straten, W., A Suite of Domain-Specific Visual Languages For Scientific Software Application Modelling, 2013 IEEE Symposium on Visual Languages and Human-Centric Computing, San Jose, CA, USA, Sept 15-19 2013, IEEE CPS.
-- Author pre-published version PDF Powerpoint PPT Published version DOI
Almorsy, M., Grundy, J.C., Sadus, R., Barnes, D., Kaluza, O., van Straten, W., Improving Scientists’ Experience In Developing High Performance Computing Scientific Applications Using Model-driven Engineering, technical report..PDF