Grades Computacionais para Processamento de Alto
Desempenho
Fabieli De Conti1
Laboratório de Sistemas de Computação - LSC
Universidade Federal de Santa Maria (UFSM) - Santa Maria, RS - Brasil
1
[email protected]
Abstract. This paper describes the evolution of systems based on distributed
architectures that appeared to meet the growing demand for highperformance computing and resource sharing. The Cluster system is the local
interconnection of computers to provide greater processing capacity. The
system based on Grid Computing, and share processing power and storage
capacity, sharing different resources allocated anywhere in the world. In the
system of Cloud Computing on the user's computer only has the basic
resources to access their applications and data that are stored in central
processing and data.
Resumo. Este artigo descreve a evolução dos sistemas baseados em
arquiteturas distribuídas que surgiram para suprir a crescente demanda por
alto desempenho e compartilhamento de recursos computacionais. O sistema
Cluster é a interconexão local de computadores para prover maior
capacidade de processamento. O sistema baseado em Grade Computacional,
além de compartilhar poder de processamento e capacidade de
armazenamento, compartilha diferentes recursos alocados em qualquer parte
do mundo. No sistema de Computação em Nuvem, o computador do usuário
tem apenas os recursos básicos para acessar os seus aplicativos e dados que
estão armazenados em centrais de processamento e de dados.
1. Introdução
Atualmente, com a evolução dos computadores e das redes de computadores e possível,
montar sistemas computacionais compostos por grandes quantidades de computadores e
periféricos interconectados por uma rede de alta velocidade, estes sistemas são
conhecidos como sistemas distribuídos.
Cada vez mais as organizações necessitam reduzir seus ciclos de
desenvolvimento, melhorar a integração e interação entre as suas áreas, diminuindo
custos e se adaptando mais rapidamente a mudanças. A automação, a colaboração e os
sistemas de distribuição de recursos podem ser usados para atingir esses objetivos
Um sistema distribuído pode ser classificado de acordo com as suas
características e funcionalidades em Cluster, Grade Computacional ou Computação em
Nuvem. De maneira geral estes sistemas favorecem principalmente ao processamento de
alto desempenho, mas além desse benefício à Grade Computacional possibilita o
compartilhamento de recursos computacionais alocados em diferentes locais de maneira
controlada e eficiente. Já no caso da Computação em Nuvem, vai além do poder de
processamento ou compartilhamento de recursos, o computador do usuário tem apenas
os recursos básicos para acessar os programas e dados que estão armazenados em
centrais de processamento e de dados.
Este trabalho se propõe, a estudar os paradigmas baseados em arquiteturas
distribuídas, Cluster, Grades e Computação em Nuvens. Dando maior ênfase ao sistema
de Grade Computacional, relatando a instalação e configuração deste sistema, utilizando
o Middleware OurGrid. O restante do artigo está organizado da seguinte forma: A seção
seguinte faz uma introdução sobre Arquiteturas Distribuídas, abordando alguns de seus
sistemas. Em seguida é descrito com maiores detalhes o sistema de Grade
Computacional. No tópico seguinte é relatado sobre a prática realizada, explicando os
principais passos para a instalação do ambiente de grade baseando no Middleware
OurGrid. Finalizando, temos a conclusão e trabalhos que darão prosseguimento a este
estudo.
2. Sistemas Distribuídos
A demanda por recursos computacionais de alto desempenho teve um grande aumento
principalmente nas áreas de astronomia, meteorologia e genética, onde são executadas
aplicações que envolvem cálculos complexos e repetitivos. Para a execução dessas
aplicações muitas vezes o avanço tecnológico tornar-se uma barreira, pois não
acompanha a demanda do poder de processamento e em outros casos a adoção de
supercomputadores se torna inviável financeiramente. Como solução para a execução
desse tipo de aplicações, passou a ser utilizado, a soma dos recursos computacionais já
existentes de forma mais apropriada e equilibrada, o que possibilitou a execução de
aplicações paralelas distribuídas, em tempos razoáveis e com custo de implantação baixo.
Um sistema distribuído segundo a definição de Andrew Tanenbaum é uma
"coleção de computadores independentes que se apresenta ao usuário como um sistema
único e consistente". Um dos objetivos principais de um sistema distribuído é o de
facilitar o acesso dos usuários aos recursos remotos, como por exemplo: impressoras,
computadores, dados, arquivos, páginas da web, etc.
A seguir, serão apresentados os sistemas distribuídos, Cluster, Grade
Computacional e Computação em Nuvens.
2.1. Cluster
Segundo Buyya (1999), Cluster é um tipo de sistema para processamento paralelo e
distribuído que consiste de uma coleção de computadores interconectados e trabalhando
juntos como um único recurso computacional integrado. Com esse aglomerado de
computadores é possível realizar processamentos que até então somente computadores
de alto desempenho seriam capazes de fazer.
No Cluster, cada computador corresponde a um nó ou nodo, sendo que todos os
comutadores pertencentes ao mesmo cluster devem ter mesmo sistema operacional
instalado. Quanto maior a heterogeneidade dos equipamentos que compõem o cluster,
maior será a grau de complexidade para a implantação do mesmo. Além dos
computadores o Cluster é formado por switches, cabos, hubs e nobreaks, que são
interligados por uma rede Lan sem topologia obrigatória.
A idéia inicial deste sistema surgiu em 1960, quando a IBM, interligou os seus
mainframes e obteve ganho no processamento através do paralelismo. Em 1980, o
avanço tecnológico trouxe importantes aliados para os Clusters, tais como redes de alta
velocidade, microcomputadores mais potentes e ferramentas padronizadas para
computação distribuída de alto desempenho.
No ano de 1993, Donald Becker e Thomas Sterling deram início ao projeto de
construção de um sistema de processamento distribuído, com computadores de
propósito gerais. Esse projeto foi desenvolvido para propiciar um sistema de
processamento elevado com um custo de implantação baixo, ou seja, uma solução para a
crescente demanda de poder computacional e a substituição dos caros
supercomputadores, por hardware convencional.
A figura abaixo representa um exemplo de arquitetura de Cluster.
Figura 1. Exemplo de uma arquitetura de Cluster
2.2. Grade Computacional
Grade Computacional (Grid Computing) é definida por Ian Foster, como: “uma
insfraestrutura de hardware e software que provê acesso seguro, consistente, de forma
dispersa e a custo baixo à potenciabilidade computacional máxima”. A Palavra Grade
remete ao termo electrical power grid, que designa a rede elétrica. Segundo o próprio
Ian Foster, a semelhança entre as duas arquiteturas se deve ao fato que na rede elétrica
não nos importamos com a fonte geradora desta, assim como em um ambiente de grade
computacional, não devemos nos preocupar com a origem dos ciclos de processamento e
sim, que eles estão disponíveis para o uso pelas aplicações.
Esse sistema computacional surgiu nos anos 90, para suprir com a demanda por
alto desempenho computacional, e também para diminuir os custos computacionais,
através do compartilhamento de recursos das mais variadas plataformas e arquiteturas
que podem estar geograficamente distribuídos e são integrados através da Internet, como
pode ser observado na figuro abaixo.
Figura 2. Exemplo de uma arquitetura de Grade Computacional
2.3. Computação em Nuvens
Também conhecida por Cloud computing, Computação em Nuvens é definida pelo
gerente de Novas Tecnologias Aplicadas da IBM Brasil, Cezar Taurion, como: “um
termo usado para descrever um ambiente de computação baseado em uma rede massiva
de servidores, sejam virtuais ou físicos. Cloud computing hospeda as Cloud applications,
que são as aplicações que estão residentes nesta nuvem (Cloud). Cloud computing pode
ser visto como o estágio mais evoluído do conceito de virtualização.” A figura abaixo,
retrata o um ambiente de Computação em Nuvens.
Figura 3. Exemplo de uma arquitetura de Computação em Nuvens
Com a utilização deste sistema computacional, o custo com hardware, software,
licenças de sistemas e manutenção são reduzidos. Pois o processamento, armazenamento
e o próprio sistema são executados no provedor do serviço de Computação em Nuvens,
bastando assim que e o usuário tenha um computador com uma configuração mínima
para acessar através da Internet os seus dados e serviços.
Apesar de todas as vantagens citadas acima, a total aceitação dos serviços
oferecidos pelas empresas de Computação em Nuvem, pela comunidade, implica em
questões de segurança, privacidade dos dados e disponibilidade dos serviços. Questões
essas que estão sendo analisadas e implementadas as soluções gradativamente.
2.4. Comparativo entre os Sistemas Computacionais em estudo
Cada um dos sistemas computacionais em estudo apresenta características peculiares a
sua arquitetura, algumas dessas características serão apresentadas na tabela abaixo.
Tabela 1. Características dos Sistemas Computacionais em estudo
Característica
Sistema Homogêneo
Cluster
Compartilhamento de
recursos distribuídos
x
x
x
x
x
x
Aplicações com fraco
acoplamento
Alta Disponibilidade
x
x
Rede de longa Distância
Aplicações com forte
acoplamento
x
x
Alta Latência
Rede Local
x
x
Recursos Descentralizados
Baixa Latência
Computação em
Nuvens
x
Sistema Homogêneo
Recursos Centralizados
Grade
Computacional
x
x
x
Observando a tabela, percebemos diferenças salientes entre esses Sistemas
Computacionais, mas, apesar disso em alguns itens eles convergem. Como é caso de
Cluster e Grade Computacional que tem como um dos objetivos fundamentais, aumentar
o poder de processamento com baixo custo de implantação, no caso da Grade
Computacional existe também a preocupação em compartilhar outros recursos
distribuídos em diferentes locais.
Já no caso da Computação em Nuvem, a idéia principal do sistema deixa de ser o
processamento de alto desempenho, para dar comodidade aos usuários de terem acesso
aos seus dados e aplicações em qualquer local através da internet.
Cada um desses sistemas tem suas vantagens e desvantagens e escolha pela
adoção de um ou de outro, está estritamente relacionada com a necessidade dos usuários
e a capacidade de investimentos.
3. Grade Computacional
Neste tópico, será abordado de forma mais detalhado o Sistema de Grade
Computacional, apresentando sua arquitetura e definindo Middleware.
3.1. Arquitetura
Segundo Ian Foster, assim como a arquitetura de protocolos TCP/IP, a arquitetura grade
foi inicialmente organizada em camadas, constituída por uma pilha de protocolos, as
camadas inferiores dão suporte às camadas superiores. O gargalo da arquitetura é
representado pelas camadas Conectividade e Recurso, que definem um pequeno
conjunto de protocolos, implementados sobre uma diversidade de recursos e que são a
base para uma grande escala de serviços fornecidos nas camadas superiores. Na figura
abaixo se pode observar a arquitetura de um ambiente de grade.
Figura 4. Arquitetura em camadas do ambiente de grade
Os níveis apresentados na figura acima podem ser entendidos como:
Fábrica: os componentes deste nível implementam operações específicas locais
que ocorrem em cada recurso como resultado das operações de compartilhamento nos
níveis superiores.
Conectividade: esta camada define os protocolos básicos de comunicação e
autenticação necessários para as transações de rede específicas do ambiente de grade. Os
protocolos de comunicação permitem a troca de dados entre os Níveis de fábrica e
recursos.
Recursos: neste nível, encontramos os protocolos de autenticação e comunicação
do nível conectividade para definir protocolos e API s
s (Application Programming
Interface) que forneçam segurança na negociação, iniciação, monitoramento, controle,
geração de relatórios e outros detalhes envolvidos nas operações com recursos
individuais.
Coletivo: enquanto no nível de recursos são tratadas as operações no âmbito de
cada recurso individualmente, neste nível os componentes atuam nas interações entre
coleções de recursos.
Aplicação: esta camada compreende as aplicações dos usuários que operam no
ambiente da organização virtual. Os níveis anteriores provêem serviços úteis às
aplicações desenvolvidas que as invocam.
Atualmente está sendo adotada como padrão para a arquitetura da computação
em grade a Open Grid Services Architecture (OGSA), desenvolvida pelo Global Grid
Fórum (GGF, 2005), que define os serviços e toda a estrutura que pode ser provida em
um ambiente de grade. Um componente importante da OGSA é a Open Grid Services
Infrastructure (OGSI), que define mecanismos para criação, gerência e troca de
informações entre os Serviços da Grade.
3.3. Middleware
O Middleware é responsável por fornecer as ferramentas que possibilitam aos vários
elementos pertencentes ao Grid formarem um ambiente único. (Re) Configuráveis
flexíveis e adaptáveis. Permitindo assim que os utilizadores interagem com os recursos
computacionais através desta camada de software que esconde a complexidade e
diversidade da infra-estrutura oferecendo uma interface uniforme para acesso aos
recursos. Monitoração de recursos, informação sobre desempenho e sobre a utilização
dos recursos disponíveis, ferramentas para segurança e tolerância a falhas, alocação de
processos do usuário aos recursos, submissão e terminação dos processos.
Middleware é o componente responsável pela autenticação e autorização de
acesso aos recursos, entrada e saída de dados e aplicações, execução de programas,
localização de recursos e balanceamento de carga.
São exemplos de Middleware: OurGrid, Globus Toolkit, MyGrid, Legion entre
outros.
4. Prática
Neste trabalho foi realizada uma prática, utilizando o Middleware OurGrid que é um
projeto da UFCG em parceria com a HP, desenvolvido em Java e scripts Shell, com
Código Aberto e que tem como principal objetivo a criação de um ambiente de execução
para aplicações do tipo Bag-of-Tasks (BoT), ou seja, aplicações paralelas cujas tarefas
são independentes umas das outras.
O OurGrid diferencia as máquinas da Grade, entre máquina base e máquina do
grid. Sendo que a máquina base é aquela que controla a execução da aplicação, já as
outras máquinas que compõem a Grade são chamadas de máquina do Grid.
O pacote OurGrid é composto por três componentes, MyGrid, Peers e
UserAgents, que serão descritos abaixo:
O componente MyGrid deve ser instalado na máquina base, pois é a Interface do
sistema, responsável pelo escalonamento e gerência dos recursos. Nela cada aplicação
corresponde a um Job, que é subdividido em várias tarefas denominadas de Tasks.
O Peer, também deve ser instalado em uma máquina base, pois é responsável por
organizar e disponibilizar o acesso as máquinas do Grid.
O UserAgent é instalado nas máquinas do grid, é responsável pela execução e
cancelamento de tarefas, recebimento de arquivos vindos da máquina base e transferência
de arquivos para a máquina base.
4.1 Execução
Para realizar os testes no ambiente de Grade configurado, trabalhamos com aplicações
exemplo, seguindo os seguintes comandos:
Inicializar o Peer: peer start
Inicializar o UserAgent: useragent start
Inicializar o MyGrid: mygrid start
Submeter um Job: mygrid addjob NomeDoArquivo.jdf
Verificar o status do job: mygrid status
Cancelar o Job: mygrid canceljob NomeDoJob
Parar a execução do Peer: peer stop
Parar a execução do UserAgent: useragent stop
Parar a execução do MyGrid: mygrid stop
A figura a baixo demonstra a tela exibida quando a execução do Job foi concluída
com sucesso. Para obter essa tela é necessário digitar o comando de verificação do status
do Job, já mencionado.
Figura 5. Exemplo de uma execução de Job
5. Considerações Finais
Este trabalho realizou um estudo sobre Grades Computacionais para Processamento de
Alto Desempenho, dando um enfoque também para os Sistemas Computacionais
Distribuídos, Cluster e Computação em Nuvem. Através do levantamento das
características desses sistemas, foi possível conhecer a arquitetura e entender o seu
funcionamento.
Analisando a arquitetura dos sistemas em estudos, observamos que: o Cluster
Computacional está estreitamente voltado para uma solução local, geralmente
homogêneo e que busca alto poder de processamento, com baixo custo de implantação.
Já a Grade Computacional, têm a característica de compartilhar diversos recursos
e expandir geograficamente por uma extensa área, necessitando de planos de execução
para o gerenciamento de variadas configurações. Um item que deve ser observado é que
na composição de uma Grade Computacional pode ter cluster.
Na Computação em Nuvens, o poder de processamento não é trivial, o mais
importante é fornecer aos usuários acesso aos recursos e serviços através da Internet.
O Middleware OurGrid, nos testes realizados, mostrou-se simples e funcional.
As próximas atividades que darão continuidade a este trabalho estarão focadas na
execução de aplicações reais e na comparação de desempenho entre com outros
Middleware.
Referências
Buyya, R, (1999) "High Performance Cluster Computing: Architectures and Systems",
Prentice Hall, volume 1.
Foster, I.and kesselman, C.(2003), “The Grid 2”: Blueprint of a Future Computing
Infrastructure, Morgan Kaufmann, 2ª edição.
Foster, I., Kesselman, C., Nick, J.M. and Tuecke, (2002) “S. Grid Services for
Sistributed Systems Integration”. IEEE Computer, ISSN 0018-9162 Vol. 35, N. 6, p.
37-46, Maio de 2009
Foster, I., Kesselman, C., Nick, J.M. and Tuecke, (2002) “The Physiology of the Grid”:
An Open Grid Services Architecture for Distributed Systems Integration. Open Grid
service Infrastructure WG, Global Grid Forum, Março de 2009.
Tanenbaum, S., Andrew (2002), “Distributed Systems”: Principles and Paradigms,
Prentice Hall, 2ª edição.
Taurion,
C.
(2007)
“Mas
afinal,
o
que
é
Cloud
Computing?”
http://computerworld.uol.com.br/tecnologia/cezar_taurion/idgcoluna.2007-12-19.124
3549572/IDGColunaPrint_view, Junho de 2009.
Download

Grades Computacionais para Processamento de Alto Desempenho