Titulo Estágio
Comunicação em grupo para projetos de computação em grande escala.
Área Tecnológica
Engenharia de Software
Local do Estágio
DEI-FCTUC
Enquadramento
Ao longo da última década, os sistemas de computação voluntária mostraram ser capazes de criar infraestruturas de computação extremamente poderosas, capazes de rivalizarem com os melhores supercomputadores da lista TOP 500, com custos baixíssimos de investimento e de manutenção.
Os esforços para tirar partido de todo este poder computacional são dificultados for uma lacuna fundamental: todas as infraestruturas baseadas em computação voluntária estão limitadas a uma arquitetura cliente-servidor. Nesta abordagem, o servidor divide a computação num conjunto de tarefas independentes, que são distribuídas por trabalhadores (clientes) que, após completarem o seu serviço, enviam o resultado de volta.
Embora uma arquitetura cliente-servidor seja apropriada para aplicações "embaraçosamente" paralelas como o SETI@Home, este modelo é estruturalmente incapaz de suportar aplicações que exijam comunicação entre tarefas e que poderiam, de outra forma, tirar partido de uma plataforma de computação à escala da Internet.
O projeto “High Performance Computing Over the Large Scale Internet” (HPCoLSI) visa avançar o estado da arte em plataformas de computação sobre a Internet, através da conceção, implementação e avaliação de novos mecanismos capazes de irem além da arquitetura cliente-servidor tradicional, para suportarem cooperação descentralizada entre clientes.
Este Estágio procura resolver o desafio fundamental de fazer a transição de uma arquitetura centralizada para uma distribuída e escalável. Ao introduzir comunicação entre clientes, poderemos remover o servidor central da sequência de comunicação. Sempre que possível, trocas de dados diretas (ou retardadas) entre clientes poderão reduzir o uso de largura de banda. Adicionalmente, para aplicações com requisitos de IO controlado, a comunicação entre clientes pode acelerar a execução. Para suportar este objetivo, a maior parte do nosso trabalho irá centrar-se em dois aspetos principais: o primeiro consiste em preparar o middleware BOINC para tirar partido da comunicação entre-pares (P2P); o segundo será o de utilizar dispositivos móveis para fazer computação científica.
Uma abordagem P2P permitirá a criação de grupos de nodos semelhantes, para garantir comunicação oportuna entre eles (como podemos encontrar em sistemas P2P de streaming de sucesso), executar grupos descentralizados sobre vários domínios administrativos, guardar e recuperar dados da comunidade e, além disso, obter confiabilidade nestes serviços mesmo considerando ações maliciosas, erróneas, ou bizantinas. Uma das dificuldades consiste precisamente em formar grupos capazes de executar aplicações de forma confiável. Para resolver este problema, o Estagiário deverá investigar a possibilidade de utilização de bibliotecas provenientes do Facebook, de forma a tirar partido das redes sociais, para a criação de grupos estáveis, com múltiplos mecanismos capazes de garantir inclusão e exclusão de membros, com base na sua interação.
Esta utilização do Facebook será combinada com a possibilidade de utilização de dispositivos móveis, que poderão correr o BOINC para efetuar computação. Neste aspeto particular, queremos estudar o problema dos consumos de energia dos dispositivos móveis quando efetuam computação, não estando excluída a possibilidade de tirar partido da extraordinária capacidade de interação destes dispositivos com os proprietários, por exemplo, para localizar a sua posição ou para criar aplicações que requeiram intervenção do utilizador.
Para demonstrar os benefícios das soluções desenvolvidas durante o Estágio, vamos considerar uma aplicação proveniente de um problema real na área da Química, sendo que, no passado, desenvolvemos já alguma interação com o projeto BOINC Amiloide (http://www.ibercivis.pt/index.php?module=public§ion=channels&action=view&id_channel=3&id_subchannel=122).
Objetivo
* Utilização de redes sociais como base para a criação de grupos de computação no BOINC.
* Aumentar o cliente BOINC de forma a permitir comunicação entre clientes.
* Estudar a utilização da tecnologias BOINC em ambientes móveis.
Plano de Trabalhos - Semestre 1
Estudo do estado da arte e definição de requisitos (mês 1)
Nesta fase o estagiário deverá tomar contacto com o estado atual da tecnologia BOINC e das APIs do Facebook. O resultado final desta tarefa deverá ser uma definição mais refinada dos objetivos a alcançar, possivelmente numa definição formal de requisitos.
Definição de grupos BOINC no Facebook (meses 2-4)
Neste fase o Estagiário deverá utilizar dados do BOINC como sejam a localização dos PCs, a capacidade dos computadores, os interesses pessoais dos voluntários, etc. de forma a construir grupos ativos de utilizadores capazes de colaborarem na computação de tarefas do BOINC.
Escrita do relatório intermédio (mês 5)
Nesta tarefa o Estagiário deverá resumir as tarefas que efetuou e apresentar o trabalho que tenciona realizar na segunda parte do Estágio.
Plano de Trabalhos - Semestre 2
Criação da comunicação entre clientes BOINC (meses 6-8)
No fim deste tarefa deverá ser possível aos clientes BOINC comunicarem entre si.
Adoção das tecnologias anteriores para dispositivos móveis (meses 8-9)
Neste passo o Estagiário deverá estender o trabalho que realizou nas tarefas anteriores para dispositivos móveis, tendo em conta questões como o consumo de energia.
Escrita da tese (mês 10)
Condições
O trabalho será realizado no Departamento de Engenharia Informática, no Grupo de Software and Systems Engineering, do Centro de Informática e Sistemas da Universidade de Coimbra. As bolsas para Estagiários Licenciados têm o valor de 745 euros e terão uma duração de 8 meses.
Observações
Será dada preferência a alunos com bons resultados em disciplinas relacionadas com este trabalho (nomeadamente, Sistemas Distribuídos, Sistemas Operativos, Computação de Alto Desempenho ou Integração de Sistemas).
Orientador
Filipe Araujo (DEI) e Patrício Domingues (ESTG/IPLeiria)
filipius@dei.uc.pt 📩