Grids Computacionais Marcelo Musci musci@terra.com.br Computação de Alto Desempenho Jun/2004 Profa. DSc. Cristiana Bentes
Roteiro Conceituação Características de Grids Aspectos da Computação em Grid Soluções para computação em Grid Grids no Brasil Perspectivas 2
O que é um Grid? Uma plataforma para execução de aplicações paralelas. Amplamente distribuída - podem ter escala mundial Heterogênea nós componentes do grid Compartilhada não dedicação a uma única aplicação Sem controle central Com múltiplos domínios administrativos - recursos de várias instituições 3
O que é um Grid? Sistemas em Grid integram e coordenam recursos e usuários que vivem em diferentes domínios administrativos. [FOSTER, 2002] Coleção de recursos heterogêneos e distribuídos possibilitando que sejam executados em grupo para executar aplicações de larga escala. 4 Grid Plataforma para execução de aplicações paralelas
5 O que é um Grid? Antes do Conceito de Grids Cluster P2P
O que é um Grid? Computação em Grid x Cluster Cluster coleção de vários nós independentes, interconectados para trabalhar como um único recurso. Único gerenciador e sistema escalonador Nós próximos uns dos outros Maior dependência do canal de comunicação constantes trocas de mensagens 6
O que é um Grid? Web não é - pelo menos ainda - um Grid Sistema aberto, utiliza protocolos de propósito gerais - suporta o acesso a recursos distribuídos - mas estes, não são feitos de forma coordenada com interesse na qualidade de serviços. Conceito: Coordenar o compartilhamento de recursos e resolver problemas em uma organização virtual dinâmica e multi-institucional". Compartilhamento exposto não é unicamente troca de arquivos - Inclui acesso direto a computadores, software, dados e recursos. Série de indivíduos e/ou instituições definidas pelas regras de compartilhamento formam uma organização virtual. 7
Tipos de Grids Compute Grids Data Grids Science Grids Knowledge Grids Bio Grids Cluster Grids Campus Grid Tera Grids Simplesmente Grids 8
Plataformas de Execução de Aplicações Paralelas Os processadores usados por uma determinada aplicação constituem a plataforma de execução da aplicação. Plataformas de execução variam em diversos aspectos Conectividade canais de comunicação que interligam os processadores Heterogeneidade diferenças entre os processadores (velocidade/ arquitetura) Compartilhamento recursos usados por uma aplicação compartilhados por outra aplicação. Imagem do Sistema visão única da plataforma Escala quantos processadores tem a plataforma. 9 Plataformas de execução: SMP, MPP, NOW e Grid
SMP & MPP SMPs Multiprocessadores simétricos Vários processadores compartilham a mesma memória. MPPs Processadores maciçamente paralelos Vários nós independentes interconectados por rede. É controlado por um escalonador. Ex: Cluster. 10
NOW e Grid Nows redes de estações de trabalho PC s ligados por uma rede local Arquiteturalmente semelhantes a MPPs Não existe um escalonador para o sistema como um todo Não há como dedicar uma partição a uma só aplicação paralela performance/recursos compartilhados requisições requisições requisições CPU Mem. CPU Mem.... CPU Mem. 11
NOW e Grid Possível Grid composto por MPP e computadores de vários tipos conectados via Internet Os componentes de um Grid não se restringem a processadores e Variar em capacidade, software, periféricos instalados, etc. podem: - Variar em capacidade, software, periféricos instalados, etc. - Estar em domínios administrativos diferentes. 12
13 Características das Plataformas de Execução SMPs MPPs NOWs Grids Conectividade excelente muito boa boa média/ruim Heterogeneidade nula baixa média alta Compartilhado não Não* sim sim Imagem única comum comum múltipla Escala 10 1.000 1.000 100.000 Comportamento típico dos diferentes tipos de plataformas de execução
Grids podem diferir bastante TeraGrid 4 centros de supercomputação norte-americanos Cada centro com milhares de processadores dedicados ao TeraGrid Canais de altíssima velocidade (40 GBits/s) Poder agregado de 13,6 TeraFlops SETI@home Ciclos ociosos de 1.6 milhões de processadores espalhados em 224 países Computa em média a uma velocidade de 10 Teraflops 14
15 GRID - Exemplo TERAGRID
Computação em Grid Aspectos Além das questões de praxe em computação paralela, Computação em Grid adiciona os seguintes aspectos: Escalonamento de Aplicação Acesso e Autenticação Imagem do Sistema 16
Escalonador de Recursos Escalonar Distribuir Controla os Recursos do Sistema Recebe solicitações de vários usuários e decide entre estes usuários o uso dos recursos que controla. Decide quando e aonde cada processo executa. Escalonador de Recursos para Grids Não é possível Grande escala; Ampla Distribuição; Existência de Múltiplos Domínios Administrativos. 17 Motivo: convencer os administradores dos recursos que compõem o Grid a abrir mão do controle de seus recursos.
18 Escalonador de Aplicação Utilizar recursos controlados por vários escalonadores de recursos diferentes: Escolher quais recursos serão utilizados na execução da aplicação; Estabelecer quais tarefas cada um destes recursos realizará; Tarefas do Escalonador de Aplicação Escalonadores de Aplicação precisam: Conhecer detalhes da aplicação que escalonam; Saber quanto tempo cada recurso vai levar para processar uma dada tarefa.
19 Escalonamento em um Grid
Escalonador de Aplicação Necessita de informações sobre o Grid Não controlam os recursos que usam Submetem as solicitações aos escalonadores que administram os recursos Informações de monitoração são usadas em previsões de performance Necessita de um modelo de performance da aplicação Portanto, funciona apenas para uma classe de aplicações 20
21 Acesso e Autenticação Plataformas de execução paralela SMP roda uma só cópia do S.O. MPP e NOW possuem cópias distintas do S.O. cadastro de usuários. Grids - vários domínios administrativos Necessária forma de acesso para cada recurso Garantias de autenticação do usuário Idealmente gostariamos de ter um login único E propagável para os processos que criamos Segurança é um aspecto muito importante Oposição do administrador de sistema ao uso de Grid Implementar soluções particulares (Globus,Condor,etc.)
Imagem do Sistema Imagem do sistema são as abstrações que nos permitem lidar com um sistema computacional Arquivo, diretório, processo, usuário, grupo, etc Com vários domínios administrativos, a imagem do sistema é heterogênea Complica tremendamente o uso do Grid 22 Soluções Imagem do sistema implementada a nível de usuário [Condor] Novas abstrações para se lidar com o Grid [MyGrid]
Soluções para Computação em Grid 23 Globus Alliance Argonne National Laboratory, University of Southern California's, University of Chicago, University of Edinburgh, Center for Parallel Computers www.globus.org Condor University of Wisconsin PKI Lab www.cs.wisc.edu/condor MyGrid Universidade Federal de Campina Grande-RS www.dsc.ufcg.edu.br/mygrid Nome genérico designa outros Grids: - www.mygrid.org.uk - www.mygridsourceforge.net
Globus Conjunto de serviços para Computação em Grid Solução mais famosa e mais amplamente usada Evoluindo para integração com WebServices Não é uma solução completa (out of the box) Falta escalonamento de aplicação, imagem do sistema 24
Principais Serviços Globus GSI Autenticação única no Grid GRAM Submissão e controle de tarefas MDS Informações e diretórios Nexus Comunicação entre tarefas MPI-G MPI sobre Nexus GASS Transferência de arquivos GridFTP Transferência de arquivos 25
26 Globus - GRAM - MDS - GSI
Gerenciamento de Recursos Globus Resource Alocation Manager O GRAM é responsável pela administração de um conjunto local de máquinas (cluster, estação de trabalho, etc.) A grande vantagem de usar GRAM é o envio e controle de tarefas não importando qual o escalonador de recurso está sendo usado para controlar a máquina. As requisições enviadas ao GRAM são escritas em RSL (Resource Specification Language). As requisições em RSL são convertidas para um formato que o escalonador de recurso entenda. 27
Serviço de Informação Meta-computing Directory Service GIIS (Grid Index Information Service) GRIS (Grid Resource Information Service) GIIS GIIS--Reúne em em um um único único servidor as as informações de de vários GRISs. 28 GRIS GRIS- -Reúne informações locais. locais. Ex: Ex: espaço espaço em em disco, disco, sistema sistema operacional, memória, hardware, etc. etc.
Serviço de Segurança Globus Security Infrastructure Uma vez autenticado, o usuário recebe uma credencial que permite acessar recursos do Grid sem ter que se autenticar novamente Utiliza PKI (Public Key Infrastructure) e SSL (Secure Sockets Layer) 29 Após o usuário ter se identificado junto ao GSI todos os demais serviços Globus saberão identificar o usuário. Quais operações o usuário pode realizar? mapeamento local do usuário.
Globus - Comunicação Eterno conflito entre generalidade e performance Mecanismo genérico (TCP/IP) perda de performance se aplicação em máquina com memória compartilhada Uso do NEXUS Interface de baixo nível, com implementação adaptável, escolhe dentre as tecnologias de comunicação disponíveis a que vai oferecer a melhor performance Máquina com memória compartilhada usa memória Tarefas em MPP usa o switch de alta velocidade Tarefas em máquinas distantes usa TCP/IP Difícil de programar Programadores de aplicação devem usar MPI-G sobre o NEXUS 30
Globus Transferência de Dados Processamento no Grid enormes quantidades de dados Disponibilização do GASS (Global Access to Secundary Storage) serviço para acesso remoto a arquivos com um servidor GASS Problemas de implantação administradores de sistema Uso de GridFTP (extensão do FTP) Autenticação GSI e Kerberos Transferência em paralelo (várias conexões TCP) Transferência striped (conexões TCP entre várias fontes e um destino e vice-versa) Etc. 31
32 Globus - Avaliação Grande aceitação Serviços oferecidos razoavelmente independentes Utilização de apenas parte dos serviços em uma dada solução Pode-se começar utilizando serviços mais básicos e ir incorporando funcionalidades mais avançadas Não é uma solução pronta e completa (plug-andplay) para construção de Grids Esforço dos administradores, desenvolvedores e usuários para finalizar o Grid. Quais usuários terão acesso e em quais condições Necessidade de desenvolver escalonadores de aplicação
Condor 33 Condor é um sistema que usa ciclos ociosos para computação de alta vazão (não alta performance) Condor foi inicialmente projetado para NOWs Aplicações são Bag of Tasks Tarefas são submetidas ao Matchmaker Quando uma máquina fica ociosa, ela informa ao Matchmaker, que providência uma tarefa Tarefas podem terminar abruptamente Condor usa checkpointing e migração de tarefas para garantir progresso
34 MyGrid Solução completa para aplicações Bag of Tasks Meu Grid são todas as máquinas que eu posso acessar Casa perfeitamente com aplicações Bag of Tasks Arquitetura baseada na Grid Machine Abstraction Conjunto mínimo de serviços que precisam estar disponíveis para que uma máquina possa ser adicionada ao Grid do usuário Solução próxima de plug-and-play
35 Grid do CBPF Centro Brasileiro de Pesquisas Físicas Cluster Experimental:» Linux R.H.» Globus Toolkit - Sistema para Computação em Grid» OpenPBS Gerenciador de Filas» MPICH-G2 Biblioteca de computação paralela compatível com o Globus Importante» Integração OpenPBS, Globus e o MPICH-G2 permitindo aos usuários enviar jobs de forma simplificada;
36 Grid do CBPF
37 Iniciativa de Grid do Estado do Rio de Janeiro UFF, PUC-Rio, LNCC e CBPF GridRio
Grids no Brasil Ainda incipiente, mas começando a decolar Categorias: Grids em Produção esforços para produção de Grids para usuários Concepção de Middleware aperfeiçoamento de novas estruturas Aplicações utilização de Grids computacionais por clientes reais (física de alta energia e processamento de imagens) 38
Grids no Brasil 39 Grids em Produção Brazilian National Computational Grid LNCC, Unicamp, UFRGS, UFMG, UFRJ, INPE, USP, UERJ, UFF GridRio - Instituto de Computação da UFF, Depto. Informática PUC-Rio, LNCC Concepção de Middleware MyGrid -LSD/UFCG, LNCC, UNISANTOS, UFRJ/NCE MultiCluster - UFRGS EasyGrid UFF Projeto ISAM UFRGS, UFSM, Universidade Federal de Pelotas e UNISINOS InteGrade - Instituto de Matemática e Estatística -USP (IME/USP) Snow Project UFSC/LISHA, UFRGS/GPPD, LSI/USP Escalonamento em Grids não dedicados PUC-RIO Aproveitamento de ciclos ociosos UFRJ MultiEng UFSCar Aplicações Visualização Científica Engenharia Elétrica Poli-USP THOR Laboratório de Biofísica UFRJ GridGene LNCC, UFCG, UFRJ, PUC-Rio, Fiocruz Caverna Digital Poli-USP Previsão numérica de tempo e clima CPTEC/INPE Aplicação a área genômica UCB, UNB, Embrapa/Cenargegn Física de partículas UERJ Bioinformática UFRJ Mineração de dados e tratamento de imagens - PUCPR
Conclusões e Perspectivas 40 Computação em Grids área recente e dinâmica Uso como laboratórios virtuais que viabilizam colaborações científicas à distância Convergência entre tecnologias de Processamento de Alto Desempenho (PAD) e computação empresarial. Globus é desenvolvido com apoio da IBM (uso de Web Services) Necessidades de padronizações Muito interesse na área de Data Grids Grande volume de dados em processamento Modelos de programação mais sofisticados