Artículo

Estamos trabajando para incorporar este artículo al repositorio
Consulte el artículo en la página del editor
Consulte la política de Acceso Abierto del editor

Abstract:

Programming correct parallel software in a cost-effective way is a challenging task requiring a high degree of expertise. As an attempt to overcoming the pitfalls undermining parallel programming, this paper proposes a pattern-based, formally grounded tool that eases writing parallel code by automatically generating platform-dependent programs from high-level, platform-independent specifications. The tool builds on three pillars: (1) a platform-agnostic parallel programming pattern, called PCR, (2) a formal translation of PCRs into a parallel execution model, namely Concurrent Collections (CnC), and (3) a program rewriting engine that generates code for a concrete runtime implementing CnC. The experimental evaluation carried out gives evidence that code produced from PCRs can deliver performance metrics which are comparable with handwritten code but with assured correctness. The technical contribution of this paper is threefold. First, it discusses a parallel programming pattern, called PCR, consisting of producers, consumers, and reducers which operate concurrently on data sets. To favor correctness, the semantics of PCRs is mathematically defined in terms of the formalism FXML. PCRs are shown to be composable and to seamlessly subsume other well-known parallel programming patterns, thus providing a framework for heterogeneous designs. Second, it formally shows how the PCR pattern can be correctly implemented in terms of a more concrete parallel execution model. Third, it proposes a platform-agnostic C++ template library to express PCRs. It presents a prototype source-to-source compilation tool, based on C++ template rewriting, which automatically generates parallel implementations relying on the Intel CnCC++ library. © 2017 Springer-Verlag GmbH Germany

Registro:

Documento: Artículo
Título:Formal specification and implementation of an automated pattern-based parallel-code generation framework
Autor:Pérez, G.; Yovine, S.
Filiación:ICC-CONICET and Universidad de Buenos Aires, Ciudad Autónoma de Buenos Aires, Argentina
Palabras clave:Automated code generation; Formal methods; Parallel programming; Software design patterns; Codes (symbols); Computer architecture; Computer programming; Concretes; Cost effectiveness; Formal methods; Formal specification; Parallel programming; Program translators; Semantics; Software design; Specifications; Automated code generation; C++ template library; Experimental evaluation; Parallel implementations; Platform independent; Software design patterns; Source-to-source compilation; Technical contribution; C++ (programming language)
Año:2017
Página de inicio:1
Página de fin:20
DOI: http://dx.doi.org/10.1007/s10009-017-0465-2
Título revista:International Journal on Software Tools for Technology Transfer
Título revista abreviado:Int. J. Softw. Tools Technol. Trans.
ISSN:14332779
Registro:https://bibliotecadigital.exactas.uba.ar/collection/paper/document/paper_14332779_v_n_p1_Perez

Citas:

---------- APA ----------
Pérez, G. & Yovine, S. (2017) . Formal specification and implementation of an automated pattern-based parallel-code generation framework. International Journal on Software Tools for Technology Transfer, 1-20.
http://dx.doi.org/10.1007/s10009-017-0465-2
---------- CHICAGO ----------
Pérez, G., Yovine, S. "Formal specification and implementation of an automated pattern-based parallel-code generation framework" . International Journal on Software Tools for Technology Transfer (2017) : 1-20.
http://dx.doi.org/10.1007/s10009-017-0465-2
---------- MLA ----------
Pérez, G., Yovine, S. "Formal specification and implementation of an automated pattern-based parallel-code generation framework" . International Journal on Software Tools for Technology Transfer, 2017, pp. 1-20.
http://dx.doi.org/10.1007/s10009-017-0465-2
---------- VANCOUVER ----------
Pérez, G., Yovine, S. Formal specification and implementation of an automated pattern-based parallel-code generation framework. Int. J. Softw. Tools Technol. Trans. 2017:1-20.
http://dx.doi.org/10.1007/s10009-017-0465-2