Publicação

PlaCoR: plataforma para a computação orientada ao recurso

Ver documento

Detalhes bibliográficos
Resumo:A Plataforma para a Computação orientada ao Recurso (PlaCoR) foi desenhada como um ambiente de programação e execução de aplicações baseadas no modelo da computação orientada ao recurso (CoR), especificado em CoRes, integralmente escrito em C++ Moderno. A escolha do C++ trouxe enormes vantagens, no suporte à: i) programação orientada aos objetos, através da herança múltipla (na construção dos recursos); ii) programação genérica (permitindo abstrair na API as diferentes classes de recursos); iii) programação concorrente (para tirar partido de fios de execução e estruturas de sincronização nativas ao C++). A plataforma possui facilidades para: i) comunicação inter-domínios, ii) passagem de mensagens entre recursos comunicantes, iii) memória partilhada distribuída (DSM), iv) ativação remota de fios de execução (RPC), v) criação e gestão de recursos e vi) gestão da consistência entre todas as réplicas de um recurso. Atualmente, o desenho de aplicações CoR assenta nos recursos domínio, grupo, clausura, agente, proto-agente, dado, barreira, guarda e guarda para leituras/escritas. Os domínios estabelecem o primeiro nível de concorrência/paralelismo, quer sejam criados no início da aplicação ou lançados dinamicamente. Os agentes, pelo seu lado, estão associados ao grão fino de paralelismo e de comunicação por passagem de mensagens. O domínio, o grupo e a clausura são recursos estruturados que disponibilizam operações de adesão/saída de recursos; distingue-os o facto dos dois primeiros serem dinâmicos enquanto a clausura é estática, na medida em que as operações de adesão/saída são coletivas e o número total de membros é fixado inicialmente - características necessárias para o arranque paralelo de aplicações do tipo SPMD e a passagem de mensagens intra-clausura. A guarda é usada para a criação de zonas de exclusão mútua distribuídas (leituras/escritas), a barreira para a sincronização entre agentes, enquanto o dado contempla os mecanismos de memória partilhada distribuída, usado para disponibilizar os dados do utilizador num ambiente de domínios distribuídos. A avaliação da plataforma tomou como exemplo de aplicação a leitura e processamento de eventos registados em TTree, recorrentemente usados na experiência ATLAS. As várias versões desenvolvidas justificaram a criação de um módulo específico, a unidade Pool, que realiza o modelo fork-join. O experimento confirmou a viabilidade da orientação ao recurso como paradigma de programação híbrido que integra múltiplos fios de execução e sincronização distribuída, com facilidades de comunicação de grão fino para a passagem de mensagens e de comunicação em contextos seguros, o acesso remoto a memória e a ativação remota de agentes.
Autores principais:Ribeiro, Bruno Manuel Gonçalves
Assunto:Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
Ano:2019
País:Portugal
Tipo de documento:dissertação de mestrado
Tipo de acesso:acesso aberto
Instituição associada:Universidade do Minho
Idioma:português
Origem:RepositóriUM - Universidade do Minho
Descrição
Resumo:A Plataforma para a Computação orientada ao Recurso (PlaCoR) foi desenhada como um ambiente de programação e execução de aplicações baseadas no modelo da computação orientada ao recurso (CoR), especificado em CoRes, integralmente escrito em C++ Moderno. A escolha do C++ trouxe enormes vantagens, no suporte à: i) programação orientada aos objetos, através da herança múltipla (na construção dos recursos); ii) programação genérica (permitindo abstrair na API as diferentes classes de recursos); iii) programação concorrente (para tirar partido de fios de execução e estruturas de sincronização nativas ao C++). A plataforma possui facilidades para: i) comunicação inter-domínios, ii) passagem de mensagens entre recursos comunicantes, iii) memória partilhada distribuída (DSM), iv) ativação remota de fios de execução (RPC), v) criação e gestão de recursos e vi) gestão da consistência entre todas as réplicas de um recurso. Atualmente, o desenho de aplicações CoR assenta nos recursos domínio, grupo, clausura, agente, proto-agente, dado, barreira, guarda e guarda para leituras/escritas. Os domínios estabelecem o primeiro nível de concorrência/paralelismo, quer sejam criados no início da aplicação ou lançados dinamicamente. Os agentes, pelo seu lado, estão associados ao grão fino de paralelismo e de comunicação por passagem de mensagens. O domínio, o grupo e a clausura são recursos estruturados que disponibilizam operações de adesão/saída de recursos; distingue-os o facto dos dois primeiros serem dinâmicos enquanto a clausura é estática, na medida em que as operações de adesão/saída são coletivas e o número total de membros é fixado inicialmente - características necessárias para o arranque paralelo de aplicações do tipo SPMD e a passagem de mensagens intra-clausura. A guarda é usada para a criação de zonas de exclusão mútua distribuídas (leituras/escritas), a barreira para a sincronização entre agentes, enquanto o dado contempla os mecanismos de memória partilhada distribuída, usado para disponibilizar os dados do utilizador num ambiente de domínios distribuídos. A avaliação da plataforma tomou como exemplo de aplicação a leitura e processamento de eventos registados em TTree, recorrentemente usados na experiência ATLAS. As várias versões desenvolvidas justificaram a criação de um módulo específico, a unidade Pool, que realiza o modelo fork-join. O experimento confirmou a viabilidade da orientação ao recurso como paradigma de programação híbrido que integra múltiplos fios de execução e sincronização distribuída, com facilidades de comunicação de grão fino para a passagem de mensagens e de comunicação em contextos seguros, o acesso remoto a memória e a ativação remota de agentes.