Abstract

An important challenge in parallel computing is the mapping of parallel algorithms to parallel computing platforms. This requires several activities such as the analysis of the parallel algorithm, the definition of the logical configuration of the platform and the implementation and deployment of the algorithm to the computing platform. However, in current parallel computing approaches very often only conceptual and idiosyncratic models are used which fall short in supporting the communication and analysis of the design decisions. In this article, we present ParDSL, a domain-specific language framework for providing explicit models to support the activities for mapping parallel algorithms to parallel computing platforms. The language framework includes four coherent set of domain-specific languages each of which focuses on an activity of the mapping process. We use the domain-specific languages for modeling the design as well as for generating the required platform-specific models and the code of the selected parallel algorithm. In addition to the languages, a library is defined to support systematic reuse. We discuss the overall architecture of the language framework, the separate DSLs, the corresponding model transformations and the toolset. The framework is illustrated for four different parallel computing algorithms.

Highlights

  • It is increasingly acknowledged that the processing power of a single processor has reached the physical limitations, and serial computing has reached its limits

  • To model the particular concerns of parallel computing and to support the automation of the activities, we propose ParDSL, a domain-specific language framework consisting of four coherent set of domain-specific languages (DSLs) each of which focuses on a different aspect of the mapping process

  • The DSLs are used in the generation of platform-specific models and the code of selected parallel algorithms that needs to be mapped on parallel computing platforms

Read more

Summary

Introduction

It is increasingly acknowledged that the processing power of a single processor has reached the physical limitations, and serial computing has reached its limits. Models are not mere documentation but become “code” that are executable and that can be further used to generate even more refined models or code This contrasts with model-based software development in which models are used as blueprints at the most [2]. Developing domain-specific languages (DSLs) is an important approach for supporting model-driven software development and the application of executable models. The DSLs are used in the generation of platform-specific models and the code of selected parallel algorithms that needs to be mapped on parallel computing platforms. Both the languages and the transformations are implemented using the Epsilon language.

Parallel computing
Domain-specific languages
Modeling concerns for parallel computing
Modeling requirements for parallel computing
Modeling the physical computing platform
Modeling the decomposition of parallel algorithm
Modeling the logical computing platform
Modeling the mapping of parallel algorithm to the code
Need for automated support
Domain-specific language framework
Approach for developing DSL
Define the DSL language elements’ behavior
Physical configuration DSL
Algorithm decomposition DSL
Logical configuration DSL
Algorithm-to-code DSL
Model transformations using ParDSL
Logical configuration plan generator
Algorithm to code model generator
Code generator
Implementation and toolset
Language engineer toolset
Language user toolset
Library definition toolset
Algorithm decomposition editor
Transformation toolset
Evaluation of the DSL framework
Related work
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call