InteGrade: Um Sistema de Middleware para Computação em Grade Oportunista - Goldchleger, Andrei (2004)
A necessidade de poder computacional é crescente nas mais diversas áreas de atuação humana, tanto na indústria como no ambiente acadêmico. A Computação em Grade permite a interligação de recursos computacionais dispersos de maneira a permitir sua utilização mais efetiva, provendo aos usuários acesso simplificado ao poder computacional de diversas máquinas. Entretanto, os primeiros projetos de Computação em Grade objetivavam a interligação de máquinas paralelas ou aglomerados de alto desempenho e alto custo, acessível apenas a poucas instituições. Em contraponto ao alto custo das máquinas paralelas, os computadores pessoais se difundiram de maneira extraordinária nos últimos quinze anos. A expansão da base instalada foi acompanhada de uma crescente evolução na capacidade de tais máquinas. Os aglomerados dedicados de computadores pessoais representam a primeira tentativa de utilização de tais recursos para computação paralela e, apesar de serem amplamente utilizados, ainda requerem um investimento significativo. Entretanto, as mesmas instituições que adquirem tais aglomerados dedicados normalmente possuem centenas ou até milhares de computadores pessoais, os quais têm sua capacidade utilizada apenas parcialmente, resultando em grande ociosidade dos recursos. Os sistemas de Computação em Grade Oportunistas fornecem a possibilidade de se utilizar a base instalada de computadores pessoais de maneira a realizar computação utilizando a parte dos recursos que, de outra forma, estariam ociosos. Diversos sistemas dessa categoria foram desenvolvidos e utilizados com êxito para realizar tarefas de computação em diversas áreas como astronomia, biologia e matemática. O InteGrade, sistema de Computação em Grade Oportunista aqui apresentado, pretende oferecer características inovadoras para sistemas oportunistas, como suporte a aplicações paralelas que demandam comunicação entre nós e a utilização de coleta e análise de padrões de uso das máquinas da Grade, de maneira a permitir que se realize previsões sobre a disponibilidade das máquinas, permitindo uma utilização mais eficiente das mesmas. Além disso, o InteGrade emprega amplamente o paradigma de Orientação a Objetos, tanto na definição da arquitetura do sistema quanto na sua implementação. O trabalho aqui apresentado consistiu no estudo de outros projetos de Computação em Grade, na definição de uma arquitetura inicial para o InteGrade, passando pela descrição de seus principais módulos assim como sua implementação. Além disso, também descrevemos o projeto e a implementação de uma biblioteca para programação paralela no InteGrade utilizando o modelo BSP.