Utilize este identificador para referenciar este registo:
https://hdl.handle.net/1822/38014
Título: | Parallel programming by transformation |
Outro(s) título(s): | Programação paralela por transformação |
Autor(es): | Gonçalves, Rui Carlos Araújo |
Orientador(es): | Sobral, João Luís Ferreira Batory, Don |
Data: | 27-Abr-2015 |
Resumo(s): | The development of efficient software requires the selection of algorithms and
optimizations tailored for each target hardware platform. Alternatively, performance
portability may be obtained through the use of optimized libraries.
However, currently all the invaluable knowledge used to build optimized libraries
is lost during the development process, limiting its reuse by other developers
when implementing new operations or porting the software to a new hardware
platform.
To answer these challenges, we propose a model-driven approach and framework
to encode and systematize the domain knowledge used by experts when
building optimized libraries and program implementations. This knowledge is
encoded by relating the domain operations with their implementations, capturing
the fundamental equivalences of the domain, and defining how programs
can be transformed by refinement (adding more implementation details), optimization
(removing inefficiencies), and extension (adding features). These
transformations enable the incremental derivation of efficient and correct by
construction program implementations from abstract program specifications.
Additionally, we designed an interpretations mechanism to associate different
kinds of behavior to domain knowledge, allowing developers to animate programs
and predict their properties (such as performance costs) during their
derivation. We developed a tool to support the proposed framework, ReFlO,
which we use to illustrate how knowledge is encoded and used to incrementally—
and mechanically—derive efficient parallel program implementations in different
application domains.
The proposed approach is an important step to make the process of developing
optimized software more systematic, and therefore more understandable
and reusable. The knowledge systematization is also the first step to enable the
automation of the development process. O desenvolvimento de software eficiente requer uma selecção de algoritmos e optimizações apropriados para cada plataforma de hardware alvo. Em alternativa, a portabilidade de desempenho pode ser obtida através do uso de bibliotecas optimizadas. Contudo, o conhecimento usado para construir as bibliotecas optimizadas é perdido durante o processo de desenvolvimento, limitando a sua reutilização por outros programadores para implementar novas operações ou portar o software para novas plataformas de hardware. Para responder a estes desafios, propomos uma abordagem baseada em modelos para codificar e sistematizar o conhecimento do domínio que é utilizado pelos especialistas no desenvolvimento de software optimizado. Este conhecimento é codificado relacionando as operações do domínio com as suas possíveis implementações, definindo como programas podem ser transformados por refinamento (adicionando mais detalhes de implementação), optimização (removendo ineficiências), e extensão (adicionando funcionalidades). Estas transformações permitem a derivação incremental de implementações eficientes de programas a partir de especificações abstractas. Adicionalmente, desenhamos um mecanismo de interpretações para associar diferentes tipos de comportamento ao conhecimento de domínio, permitindo aos utilizadores animar programas e prever as suas propriedades (e.g., desempenho) durante a sua derivação. Desenvolvemos uma ferramenta que implementa os conceitos propostos, ReFlO, que usamos para ilustrar como o conhecimento pode ser codificado e usado para incrementalmente derivar implementações paralelas eficientes de programas de diferentes domínios de aplicação. A abordagem proposta é um passo importante para tornar o processo de desenvolvimento de software mais sistemático, e consequentemente, mais perceptível e reutilizável. A sistematização do conhecimento é também o primeiro passo para permitir a automação do processo de desenvolvimento de software. |
Tipo: | Tese de doutoramento |
Descrição: | The MAP-i Doctoral Program. |
URI: | https://hdl.handle.net/1822/38014 |
Acesso: | Acesso aberto |
Aparece nas coleções: | DI/CCTC - Teses de Doutoramento (phd thesis) |
Ficheiros deste registo:
Ficheiro | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Rui Carlos Araújo Gonçalves.pdf | 6,59 MB | Adobe PDF | Ver/Abrir |