D4-4 Final Pattern Transformation System
This deliverable describes the final pattern transformation system, where we describe a number of new advancements including: • The L APEDO framework, a new refactoring framework for introducing heterogeneous (i.e., a mixture of CPU and GPU components) skeletons into C++ (using Fastflow) and Erlang (using Skel) programs; this combines hybrid skeletons for C++/Erlang, program shaping refactorings, automatic generation of openCL offloading code, a static division of work between CPU and GPU devices, and new refactorings to introduce hybrid skeletons into C++/Erlang programs; • PaRTE (Parallel Refactoring Tool for Erlang), incorporating the Erlang refactoring implementation from D4.1 and the pattern discovery from D2.11, D2.12 and D.13 into an integrated tool set for parallelising Erlang programs; • Formalising Refactorings, using an operational and functional semantics to show soundness; • Refactoring use-cases for heterogeneous examples in Erlang and also demonstrating Program Shaping on the AGH use-case.
he ParaPhrase Refactoring Tool for Erlang (PaRTE)  is a source-level code refactoring tool from sequential source programs to parallel programs written using the Skel skeleton library. PaRTE is an inter-operable framework that supports the discovery of parallel pattern candidates in Erlang, and provides program shaping refactorings and parallelization refactorings. It makes use of high-level cost models, which allow to predict with reasonable accuracy the parallel performance of the refactored program, enabling programmers to make informed decisions about which refactorings to apply.