Você está na página 1de 289
ANTAL TH TA ALTO DESEMPENHO REDES, CLUSTERS E GRIDS COMPUTACIONAIS Mario Dantas aw AUT TA a ALTO DESEMPENHO REDES, CLUSTERS E GRIDS COMPUTACIONAIS NV enirOM PEIN > Copyright © 2005 by Mario Dantas Copyright © 2005 by Axcel Books do Brasil Editora Ltda. Nenhuma parte desta publicagéo poderé ser reproduzida sem autorizacdo prévia ¢ escrita de Axcel Books do Brasil Editora. ‘XPVM Images courtesy of Dr. James Arthur Kohl, Oak Ridge National Laboratory, Research supported by the Mathematics, Information and Computacional Sciences Oiice, Office of Advanced Sclentific Computing Re- search, U. S. Department of Energy, under contraet No, DE-ACO5-0000R22725 with UT-Battelle, LLC. Editora de Producéo: Gisella Narcist Editor Responsével: Ricardo Reinprecht Projeto Grafico: Editora Axcel Equipe Axcel: Alberto Baptista Garcia. Carlos Alberto Sa Ferreira, Fagner Silva Henrique, Ingo Bertelli e Marcio Teixeira de Mello Computagao Distribuidas de Alto Desempenho: Redes, Clusters e Grids Computacionais Mario Dantas ISBN: 85-7323-240-4 Os originais de livros enviados para avaliagéo pela Editora serao destruidos, depois de analisados. Nao ser feita sua devolugo em nenbuma hipétese. Os conceitos emitidos nesta obra sao de inteira responsabilidade do Autor. VAN IAXCEL Axcel Books do Brasil Editora Ay. Paris, 571 - Bonsucesso 21041-020 ~ Rio de Janeiro - RI Tel. (21) 2564-0085 ~ Fax: (21) 2564-1607 E-mail: editora@axcel.com.br Web Site: http://www.axcel.com.br Dedicatoria Para Ménica, Izabella e Maria Clara por todo 0 amor, carinho e imensa compreensdo € suporte para minha dedicagao neste projeto. Agradecimentos Gostaria de enderecar meus primeiros agradlecimentos aos meus pals, Marto Soares Dantas Lysia Ribeiro Dantas por toda uma vida de incentivo e carinho. Aos tios Garibaldi ¢ Helena ppelo ensinamento da competigio sadia. Aos tios Anauro e Regina pelas ligées de planejamento ‘estratégico ¢ a tia Yvone pelo carinho e ambiente propicio para revisar parte do livro. Aos professores Joao Bosco Sobral, Roberto Willrich, Rosvelter Coelho e Vitério Mazzola companheiros ¢ amigos dos Laboratérios LabWeb ¢ de Sistemas Distribuidos do Departamento de Informatica e Estatistica (INE), do Centro Tecnolégico (CTC) da Universidade Federal de Santa Catarina (UFSC), Aos Professores Alba Melo, Claudia Barenco, Fernando Albuquerque, Gerson Pfitscher, Jodo Gondim, Luis A. Frota, Maria Emilia Walter, Murilo Camargo, Paulo Gondim, Rafael de Sousa, Ricardo Jacobl ¢ Ricardo Putini dos Departamentos de Cléncia da Computagao (CIC) e Engenharia de Redes {LabRedes) da Universidade de Brasflia (UnB) pelo continuo companhetrismo. & importante mencionar o apoio que recebi de varios profissionais de empresas de tecnologia, no tocante a disponibilizar imagens ¢ as autorizag6es para publicé-las. Desta forma. sou nmuito grato a atencao de Elizabeth Swanson ¢ Claude Paquette (Cray), Karen Bosco e Renatas Frias (Freescale), Ricardo Franco e Franklin Silva (Intel), Fernanda Silos (NEC), James Kohl (Oak Ridge National Laboratory - XPVM), Federica Pisani (Quad- ries) € Richard Cameron (SGD. ‘Acs alunos Ana Marilza Fleischmann, Anderson Hosken, Cassiano Rista, José Geraldo Lopes, José Nelson Allemand, Lorena Passos, Rafael Baggjo, Romulo Alvim, Flavio Grossmann e Tania Ramos pelo imenso entusiasmo na participagéo em pesquisas relacionadas ao projeto deste novo livro. ‘A Deus por sua continua protegao. Mutto obrigado a todos vocés. Prefacio ‘Agrande motivagdo para escrever este ltvro nasceu da verifieagéo em varios de projetos de consultorta, cursos de graduacdo e pés-graduagdo que apesar da crescente utilizagao dos ambientes de clusters e grids computacionals, existe ainda uma escassez de matertal sobre esses t6picos em portugués. Por outro lado, considerando-se a ltteratura internacional (em inglés), pode-se verificar uma grande quantidade de Iinformagéo, todavia muttas vezes dispersa em varios segmentos da computacdo ¢ mutto espectalizada em aspectos tals como arquiteturas e redes de computadores, computagéo paralela e distribuida. Desta forma, nosso objetivo fol preparar um material que pudesse cobrir de uma forma mats estruturada os componentes existentes nos cendrios dos clusters e grids computacionals. Com esse objetivo, apresentamos aspectos. relevantes ao entendimento desses ambientes de alto desempenho, provendo ainda experténclas através de estudos de casos para uma melhor compreensdo do assunto, sem perder a qualidade de contetido. ‘Semelhante ao paradigma que utilizamos em no dia-a-dia dos projetos, orientagdes de Braduagéo je pés-graduacdo, indicamos um conjunto de leituras complementares. O objetivo é que o leitor possa abrir ainda mais seus horizontes, sobre o t6pico complexo que sdo os sistemas distribuidos de alto desempenho, : © lio fot elaborado, imaginando que uma leltura linear deva ser a opgio natural do leltor. Todavia, para nao esquecer aqueles que Jé possuem alguma experiencia os capitulos s4o modulares permitindo sua leitura sem um comprometimento de entendimento. Procuramos ao longo do livro apresentar além dos conceitos, exemplos de casos que podem servir como guia de melhor aprendizado. Entendemos que o material contido neste livro deve ser interessante para todos os estudantes independente de sua drea formacdo em computagio (banco de dados, engenharia de software, rede de computadores, arquitetura de computadores). Por outro lado, profissionals de diferentes 4reas da tecnologia da informacao (gerentes de TI, apoto ao usuario, desenvolvimento de aplicagées, suporte aos sistemas operacionais e redes) podem entender como melhor utilizar os ambientes computacionais de suas organizagées visando um desempenho diferenciado das aplicagées. Em adigao, acreditamos que profissionais de outras dreas tais como biologia, quimica, medicina, fisica, meteorologia ¢ finangas podem se beneficiar com entendimento sobre os ambientes distribuidos de alto desenipenho. Finaltzando, espero que o lettor goste de nossa abordagem que visa uma compreensdo geral, todavia culdadosa das configuragées dos clusters e grids computacionals. Devido me) a grande quantidade de informagoes técnicas existentes no lturo e suas interacdes, é possivel que alguns erros tenham ocorrido. Assim, comentarios e criticas podem ser enviadas para meu endere¢o eletrénico. Florianépolis, Margo de 2005. Prof. Mario Dantas marto@inf.ufsc.br 8 Sumario Capitulo 1: Computagéo Distribuida de Alto Desempenho.... Introdugéo .. Arquitetura e fe Comp Ambientes de Clusters. Configuragées de Grids A Organizagao do Livro Reviso do Capitulo. Fundamentos Relevantes Exercicios Propostos Referéncias .. Bibliografia e Fonte de Consulta Capitulo 2: Fundamentos Basicos Introdugzo :. Arquiteturas Computacionais Multiprocessadores. Multicomputadores.. Symmetric Multiprocessors (SMP) Cache Coherence Non-Uniform Memory Access (¢cNUMA).. Massively Parallel Processors (MPP) . Sistemas Distribuidos Clusters ... Escalonamento Estatico Escalonamento Dinamico.. Dependabilidade ‘Ameacas. Meio: Prevengao de Falhas.. Tolerancia a Falhas Implementacao de Tolerancia a Falha Remogao de Falha: Previsao de Falhas Atributos Disponibilidade. Confiabilidade .. Seguranga Capitulo3: Processadores de Rede, Dispositivos de Interconexdo e Protocolos Leves Modelo Tradicional de Red Aplicagdes e Interfaces de Re Processadores de Rede ... Caracteristicas de um Processador de Rede .. Dispositivos de interconexao .. Dispositivos Convencionais de Interconexao Dispositivos de interconexao de Alto Desempenho Quadrics 86 Scalable Coherent Interface (SCI) 88 Infiniband 8B Protocolos Leves.. 88 ‘Arquitetura TCP/| 89 Protocolos de Alto Desempenho. Protocolos e Melhoria de Desempenho Protocolos de Transporte. Selegio do Servico de Transporte. Multiplexacdo ‘Controle da Inf Reviso do Capitulo, Fundamentos Relevantes Exercicios Propostos Referéncia Bibliografia e Fonte de Consulta Capitulo 4: Ambientes de Programagio, Ferramentas e Middlewares Ambientes de Software. Ambientes de Programag: Web Services... PVM (Parallel Virtual Machine) .. MPI (Message Passing Interface) Ferramentas : Sistemas Gerenciadores de Tarefas e Recursos ‘Ambientes de Middleware Sistemas de Imagem Unicé Middlewares de Grid Revisdo do Capitulo. Fundamentos Relevantes ( Y Computacio Distribuida de Alto Desernpenho: Redes, Clusters e Grids Computeconais Exercicios Propostos Utilizagdo dos Nés.. Configuragées Nao-dedicadas . 154 Configuracées Dedicadas . 164 Tipos de Hardware 170 Aplicagdes Alvo i” Ambientes de 174 Nivel de Aplicagao ou Middleware 75 Nivel de Sistema Operacional 176 Nivel de Hardware 176 Revistio do Capitulo. Fundamentos Relevantes Exercicios Propostos Referencias . Bibliografia Capitulo 6: Estudos de Casos de Clusters Introdugio .. Classificagao dos Agregados .. Agregados Categoria | Agregados Categoria I Redes de Interconexao Exemplos de Ambientes de Clusters Revisdo do Capitulo. Fundamentos Relevantes Exercicios Propostos Referencias. Bibliografia .. Capitulo 7: Grids Computacionals Introducao .. Fundamentos de Grid. Conceitos Bésicos... Qual a diferenca : Qual seria a diferenga entres os ambientes de cluster e grid computacionais?.... 208, Arquiteturas e Topologias.. 209 Portais de Grid 215 Open Grid Services Architecture (OGSA) .. Open Grid Services infrastructure (OGSI).. Areas Adicionais de Pesquisa e Desenvolvir Ambientes Usuétios Experiéncias Middlewares de Grids Grids de Dados Reviséo do Capitulo Fundamentos Releve Exercicios Propostes ... Referéncias Bibliografia e Fonte de Consulta ..nnnsnsnnne Capitulo 8: Estudos de Casos de Grids Computacionais Introdugéo Ambientes internacionais Fundamentos Relevantes Exercicios Propostos west ReFeTENCIS srvnmnesnnnnes Bibliografia e Fonte de Consulta Glossario . senetensenssenseteteasenastnecensenssensieinensasenssnasenatenstesseesseeseies LOB ice Remissivo... TT TED TUS C EC TLC TS Ca G ) Computago Distibuido de Ato Desempenbo: Redes, Clusters e Grids Computacionais No inicio dos anos setenta, quando pela primeira vez na hist6ria os primetros computadores comecaram a efetuar sua interligago por intermédio das redes, J4 surge a idéta de agregar os recursos computacionais nao ultlizados. Um par de programas, conhecidos como Creeper e Reaper-ran, so utilizados na ARPAnet em um conjunto de experimentos voltados para a computagio distribufda [Grid, 2005). Em 1973, o prestigioso centro de pesquisas PARC (Palo Alto Research Center) [PARC, 2005] da Xerox instala a primeira rede Ethernet. O objetivo da rede era poder prover ‘uma espinha dorsal para aplicagées distribuidas. De uma outra forma, pode-se dizer que seus idealizadores visualizavam que as aplicagdes pudessem se mover de um computador para outro visando & utilizagdo dos ciclos ociosos das méquinas que formavam a rede. Nos anos noventa, alguns esforgos de pesquisa trouxeram respostas interessantes no sentido da agregacdo dos recursos computacionais distribuidos em larga escala. O Principal objetivo dessas pesquisas era produzir resultados positivos no sentido de efetuar um processamento willl de problemas Jé conhecidos ¢ de dificil solugdo em uma ‘nica méquina. A engenharia de software no desenvolvimento de aplicagdes, que usualmente requeriam o uso de centenas (ou até milhares) de maquinas que estejam distribufdas geograficamente na Internet, torna-se uma realidade. Dols exemplos classicos so os projetos distributed.net e o SETI@Home. O projeto distributed.net [DistributedNET, 2005], conhecido também como dnet, tem seu foco na quebra de c6digos cifrados, Jé 0 projeto SETI@HomelSeti, 2005}, que € reconhecido como o mats popular e bem-sucedido projeto de computacdo distribufda de que se tem noticia. JA contabiliza desde de 1999 mais de dois milhées de usuarios para disponibilizar recursos para busca de vida extraterrestre. ‘Acra da informacéo que atualmente est em curso trouxe iniimeras facilidades para 0 dla-a-dia da soctedade moderna. A cada dia somos surpreendidos com novas manelras de disponibilizar antigos servigos de manetra digital em rede. No Brasil jé existem milhares de servigos diferenctados oferecidos na forma digital. Exemplos de servigos so aqueles dispontbilizados pelos bancos, hotéls, locadoras de veiculos, companhias aéreas, jornais, Detrans, Receita Federal, Previdéncia Social, Tribunats Estaduais, Tribunals Federais € inGmeros outros exemplos. A utilizacao da tecnologia da informacao (TI) em conjunto com as facilidades providas elo segmento da industria de telecomunicagées (algumas vezes denominada por alguns autores como TIC ~ Tecnologia da Informagio ¢ Comuntcagéo) tem revolucionado de forma positiva as relagdes entre pessoas ¢ organizacdes. Muitos servicos comerciais Copitulo 1 — Computagdo Distribuido de Alto Desempenho clentificos séo providos por intermédio de Servigos Web, podendo ser acessados pela Internet ou por intermédio de redes mévels sem-flo. Como varios pesquisadores comentam, um exemplo 6 [Protasio, 2004) a utilizagdo de inovagées tecnolégicas, que devem estar baseadas na infra-estrutura ¢ na capacitacéo de pessoas. Nos ditimos anos tem sido verificada uma maior preocupagso das comunidades académicas ¢ Indiistria com relagao ao relativo balxo desempenho dos computadores ‘comercials convencionats. © lettor 4 deve ter observado que nos iltimos anos ndo existe um grande crescimento na oferta dos processadores com relégios (clocks) de maior freqiéncla, ou um aumento significativo no tamanho das memérias. De uma outra forma, podemos dizer que muitos dos atuais microcomputadores comerciais ¢ seus sistemas de interconexdo esto bascados em tecnologias de geracées J4 obsoletas. A importancia do sistema de interconexao pode ser entendida pela importéncla de sua fungéo nos computadores, onde esse é responsavel pela ligacdo do processador, médulos de meméria e a ligacdo do subsistema de entrada ¢ saida. Quanto a0 subsistema de entrada e saida, nestes encontram-se dispositivos, tais como a placa de rede, 0 modem, os discos rigidos, o mouse, o teclado ¢ outros periféricos. Um fato interessante que deve ser observado é a preocupagdo da imprensa nao especializada em informatica quanto ao aspecto da limitagéo tecnolégica que os computadores comecam a atinglr. Jornals nao especializados tém produzido reportagens chamando a atencdo de seus leitores de maneira progressiva, com relagdo ao problema de baixo rendimento dos computadores comerciais convencionais. Um exemplo que ‘demonstra esta tendéncia ¢ uma recente reportagem do famoso Jornal Financial Times, de Londres. Em urna matéria, o repérter chama a atengdo para a pesquisa dos processadores denominados de ultra-rapido [Cookson, 2004]. A reportagem apresenta um cenério moderno de arquitetura de processadores destacando as arquiteturas RISC (Reduced Instruction Set Computing), VLIW (Very Long Instruction Word) ¢ a EDGE (Explicit Dataflow Graph Execution). O documento ainda faz uma pequena revisio hist6rica, destacando que a familia de processadores x86 da Intel em 1990 tinha uma freqiiéncia da ordem de 33 MHz, enquanto que os atuals processadores atingem cerca de 3.4 GHz, A matéria enfatiza que 0 avango do desempenho foi de cem vezes em quatorze anos, todavia os novos processadores embora mais velozes nao conseguem sustentar 0 mesmo nivel de taxa de crescimento. As limitagGes na capacidade de processamento impéem restrigdes aos muitos tipos de software, tals como os programas de escritérios, de manipulacao de imagens, Jogos, clentificos e servidores utilizados nas organizagdes. Uma forma de contornar a limitagao ( 4 ) Computardo Distibuida de Alto Desempento: Redes, Clusters e Grids Computaconais local de processamento é a utilizacdo de técnicas que possibilitem o processamento distribuido, £ interessante entender que a adocSo de métodos distribuidos é vantajosa mesmo que novas arquiteturas complexas sejam popularizadas, uma vez que estas Poderéo ser utilizadas em conjunto de wma forma distribuida. ‘A agregagdo de recursos computacionals, em configuracées de clusters ou grids, tem sido um t6pico importante de estudo em intimeras universidades, centros de pesquisa e empresas de tecnologias de'TI. A grande meta da agregacéo de recursos computacionals, Por intermédio dos clusters ou grids, é prover respostas para as limitagGes encontradas nas arquiteturas computacionals centralizadas. Desta forma, o desenvolvimento da ‘computagao distribuida em larga escala ganha uma especial importancla. esforgo da computacéo distribuida em larga escala é, usualmente, denominada de computacao de alto desempenho. ‘Nosso foco neste capitulo, e com certeza ao longo do livro, est voltado para o t6pico de infra-estrutura para prover alto desempenho para as aplicagées distribuidas. Essa abordagem permite que os usnérios finals possam desfrutar de uma grande gama de servigos na utllizagao de novas tecnologias. Desta forma, vamos atacar alguns pontos relacionados ao problema de desempenho da infra-estrutura de TI com o objetivo de um provimento diferenciado de diversos tipos de servicos. Introducaéo Com 0 aumento da prestacéo de servigos digitais em rede de uma maneira nunca antes observada na histérla, surge a necessidade de um continuo aumento em disponibilizar recursos computacionais com um elevado grau de eficiéncia. Em outras palavras, como aumento no volume dos servigos oferecidos A comuntdade via rede € necessdrio que as facilidades computacionais possam acompanhar essas iniciativas de uma manelra eficaz com uma prestago de servicos com qualidade. Todavia, € de conhecimento da comunidade académica e indiistria que o grande avango no desenvolvimento de processadores, que vinha sendo observado nas tiltimas décadas, comega a esbarrar em limites da prépria fisica. Exemplos de restrigSes que comegam a ser atingidas, devido ao uso de técnicas convencionals, so: ‘© O limite na quantidade de componentes que podem ser instalados nos circuitos dos processadores: © 0 aquecimento dos processadores atuais quando executando em altas freqiiéncias; Capitulo 1 Computagdo Distrbuida de Alto Desempenho ‘© Agrande quantidade de colisées ¢ conseqiiente ineficiéncta da topologia de barramento encontrada nos computadores convencionais. Configuracées de barramentos s40 empregadas para a transmisséo de sinal entre os elementos de uma arquitetura de computadores comuns (exemplo IBM-PC); © A limitagéo de armazenamento ¢ transferéncia de informacdo nas memérlas com as tecnologlas ora existentes. No contexto exposto, 0 processamento distribufdo em larga escala, ou processamento de alto desempenho, representa um esforgo diferencial de resposta no sentido de agregar recursos computacionals dispersos localmente ou geograficamente. processamento distribufdo é um paradigma computacional interessante sob muttos aspectos. A utilizacdo descentralizada de componentes de hardware, pacotes software € até mesmo 0 uso de instrumentos geograficamente dispersos - exemplos S40 0s telesc6pios € aceleradores de particulas - j4 € uma realidade computacional para diversos usudrios. Diversos projetos comerciais [GridToday, 2003] ¢ de pesquisa (GCF, 2005] nos tém indicado a possibilidade de prover as aplicagées recursos nunca antes imaginados. Por outro lado, a complexidade envolvida nestes cenérios também é bastante grande. A computagao distribuida de alto desempenho, pode ser entendida como um segmento da ciéncia da computacéo que tem como objetivo a melhoria do desempenho de aplicacées distribufdas ¢ paralelas, utilizando-se de complexas in- fra-estruturas computacionais. As duas configuracées que vamos estudar neste livro do os clusters ¢ os grids computacionais. Por outro lado, as aplicagdes que executam sob esses ambientes sao usualmente divididas em duas grandes classes: as distribufdas e as paralelas. O primetro grande grupo de configurag6es de alto desempenho os clusters, ¢ caracterizado pelo agrupamento fisico considerando-se um pequeno limite geografico, ou virtual, de inimeros computadores para a execugio de aplicagbes. Esta infra- estrutura conhecida em inglés como cluster ¢, também, denominada em portugues ‘como agregado. Como pecullaridades iniciais dos clusters, podemos dizer que, por exemplo, eles podem ser formados por computadores do tipo IBM-PC dedicados € agrupados fisicamente em uma sala. Uma outra maneira de formar um cluster € a conexdo virtual de computadores espalhados em uma rede de computadores. Nestas configuracdes um pacote de software apropriado (exemplos s4o 0 Condor [Condor, 20051, Oscar [Oscar, 2005] ¢ OpenMosix [OpenMosix, 2005]) auxilia a que G) Computagto Distrbulda de Ato Desempeno: Redes, Custer e Grids Computacionais computadores distribufdos ao longo de uma rede possam servir a solicitagées de tercelros como seus recursos computacionais. Em outras palavras, aplicagdes podem solicitar a execucdo de tarefas em mAquinas existentes ¢ distribuidas na organizagéo que nao estejam em uma mesma sala ou andar. As configuracées conhecidas como grids computacionais representam as infra- estruturas com interoperabilidade entre ambientes computacionais dispersos em uma grande drea geogréfica. Quanto A abrangéncia de um grid, podemos supor os Iumites de uma organizagio, de uma cidade, de um estado, de um pais, de um continente ou entre continentes com uma énfase no compartilhamento em massa de recursos € servico especificos. Alguns exemplos de compartilhamento de recursos 40 os processadores, os dispositivos de armazenamento e a utllizacdo de dispositivos especials. Por outro lado, os servigos so caracterizados por determinadas aplicagies que podem ser usadas remotamente. Diferente dos clusters, que pertencem a uma nica organizacdo, os grids computactonais podem ser vistos como cooperativas de clusters de diferentes organizacdes com 0 objetivo de prover recursos e servicos ‘finicos ¢ diferenciados. Rehr. eeeeeeeeeieeeennseeensnnanssssnnananssamseesseeed Os termos agregados e computagdo em grade computacionais séo empregados por alguns autores para tndtcar as configuragées de clusters e grids computactonats. Ao longo do ltvro sdo empregados os termos clusters e agregados significando o meu conceito. Nosso objettvo é produztr uma mator familiartdade para ambos os termos. Quanto ao termo grade computactonal, este néo deverd ser utilizado, pols na verdade a tradugéo mats apropriada para o portugués deveria ser matha computactonal. Quanto as classes de aplicagées, a primeira, denominada de distribuidas, ¢ aquela caracterizada pelo uso de recursos distribuidos e que néo tém necessarlamente relagéo entre s1, Podemos imaginar uma organizacéo, onde diferentes usudrios desejam executar um conjunto bastante grande de aplicagdes em uma determinada infra-estrutura distribuida. Nesta situago, um software do tipo middleware (ou pacote de software que faz interface entre o usurio ¢ o ambiente computactonal) deverd efetuar o escalonamento das tarefas para os computadores oclosos da rede da organizagio. Ao final, espera-se ‘uma melhoria global na execugdo das tarefas, embora uma ou outra aplicagao possa no ter um ganho significativo. Em outras palavras, ndo existe uma relacdo entre 0 desempenho particular de uma especifica aplicacdo e as demais aplicagbes. CCopituo 1 — Conmputagao Distribuida de Ato Desempenho ( 7 ) Por outro lado, as aplicacées paralelas sio distintas, uma vez que uma tinica aplicacao é subdividida em porgdes menores e distribuidas entre processadores distintos. Entretanto, neste tipo de aplicacao existe uma relacdo de interdependéncia entre as porgées distribuidas. Em outras palavras, ao final as porgées so agrupadas para produzir um ‘nico resultado, ou conjunto de resultados. Como um exemplo, imagine o processamento de uma aplicacao na 4rea de computago grafica onde uma determinada pessoa virtual est4 sendo criada. E inaceltével que uma parte do corpo da pessoa nao apareca, ou que apenas alguns fragmentos sejam apresentados. Esta classe de aplicacdo tem como pecullaridade o necessério processamento de todas as partes com um elevado grau de sincronismo ¢ desempenho, Dos exemplos de casos que apresentamos acima, fica patente que é importante que uma determinada aplicacdo seja classificada como distribufda ou paralela. Em adigao, que a aplicagao utilize os recursos computacionais adequados para que se obtenha um resultado diferenciado. Arquitetura e Redes de Computadores Um fator fundamental no sucesso da implementagio de uma abordagem de computacao distribuida ¢ a escolha apropriada de uma tecnologia de rede de computadores na construgéo da infra-estrutura do ambiente. De uma outra forma, pode-se afirmar que & desejdvel que a tecnologia de rede, utilizada na infra-estrutura para suporte as aplicacdes distribuidas, deva inclutr: a disponibilidade de uma grande largura de banda, taxas de transmiss4o compativels com o meio, um baixo retardo de comunteacdo e a possibilidade de escalabilidade. Em outras palavras, pode-se dizer que nada adianta o desenvolvimento de solugées distribufdas de software se 0 projeto de infra-estrutura nao permatir a tradugao da aplicacao como uma solugao diferencial de desempenho. Com 0 objetivo de fornecer um ambtente de rede adequado, visando que as aplicagbes possam atingir um alto desempenho, vamos estudar neste livro novas tecnologias de rede. Mecanismos que se propéem a servir como um diferencial nos aspectos de inter- face de rede, dispositivos € protocolos de comunicagao. Com relagéo ao melhor Processamento no nivel das interfaces de rede. processadores de redes como novos mecantsmos permitem um mator processamento na placa de rede. Novos dispositivos de interligagao visam prover uma grande largura de banda com ligag6es ponto-a-ponto estéticas e dinamicas. Finalmente, 0 uso de protocolos mais apropriados para troca € comunteagéo de processos das aplicagées. (@) Computagto Distriouida de Ato Deserpenho: Redes, Clusters e Grids Computacionais Na literatura comercial [NGN, 2005], os esforcos envolvidos no desenvolvimento deste novo cenério, visando melhorar a comunicagio fim-a-fim das aplicagées, séo denominados de redes de nova geragéo (Next Generation Networks - NGN). Entretanto, como vamos verificar no Capitulo 3, acreditamos que ¢ demasiadamente simples a utilizacdo de um. ‘anico acrnimo para representar todo um conjunto de esforcos complexos na melhoria de desempenho das redes. Ambientes de Clusters Mais recentemente, uma determinada forma local de agrupar computadores vern sendo traduzida em ambiente interessante para aumento de desempenho de aplicacées distribuidas e paralelas. Estes ambientes sio conhecidos como clusters, ou agregados, computacionals. Os agregados computacionais podem ser caracterizados levando-se em. consideragéo diversas métricas. Entre elas: © Caracteristicas de uso dos componentes da configuracéo, ou seja, computadores podem estar dedicados, ou nao-dedicados, a execugio de tarefas submetidas a infra- estrutura computacional; ‘© Os componentes da configuracéo podem ser formados por elementos homogéneos, ou heterogéneos. A diferenga entre os elementos pode ser tanto no nivel do hardware quanto no nivel do sistema operactonal; @ Os limites de um agregado por variar de uma extensdo de um laboratério até as fronteiras da organizacdo. Fato este que deve ser levado em consideracéo para a execugio das aplicagées e projeto da rede fisica; © As redes que compéem a infra-estrutura ¢ fazem a ligagéo dos componentes podem ter caracterfsticas de conexio compartilhada, ponto-a-ponto estética (ou dinamica) ow ainda ser hfbrida; ‘© As aplicagdes que sero executadas no ambiente deverdo ser orientadas para o alto desempenho, para a alta-disponibilidade ou possuir as duas caracteristicas. Os clusters de computadores tém sido formados de manetra popular por intermédio da agregacdo de computadores comuns (exemplo IBM-PO), dispositivos de interconexao (exemplos séo os switches) € pacotes de software abertos (exemplos s4o o Oscar ¢ 0 OpenMosix). Todavia, no s6 as solugées de prateleira como aquelas apresentadas anterlormente podem ser classificadas como clusters. Diversos fabricantes de tecnologia, tals como a IBM, Cray. Nec, SGI e SUN tém adotado técnicas de clusterizacao para aumentar o desempenho de seus computadores. Vamos explorar algumas dessas arquiteturas nos Capitulos 2 ¢ 5. Cophulo 1 — Computarao. sme dete mo (9) Configuragées de Grids Atualmente a computagao distribuida de alto desempenho vem sendo bastante baseada_ em configuragoes de grids computacionais. Mas o que seria esta nova abordagem diferente da estrutura da Internet e dos Servigos Web? ‘O termo grid computing fo! criado a partir de uma proposta computacional que se basela na similaridade as malhas de energia elétrica. Em outras palavras, a idéia € a agregago massiva e disponibilizagio de recursos e servicos computacionais oriundos de inameras configuracées geograficamente distribuidas. Os usudrios podem ter acesso aos recursos € servigos sem a necessidade de conhecimento onde os mesmos esto localizados. Uma configuracéo de grid computacional pode ser entendida como uma plataforma de computadores geografleamente dispersos, onde os usuarios fazem acesso ao ambiente através de uma interface dnica. De uma outra manera, podemos dizer que os ambientes de grid provém de uma tecnologia de acesso comum, os servicos € recursos ‘geograficamente dispersos em organizagées participantes da configuracéo que permitem © compartilhamento das facilidades (servicos ¢ recursos), A diferenga fundamental en- tre uma configuragio de grid e uma outra caracterizada como ambiente distribuido convencional referente a grande quantidade de servigos e recursos que os amblentes de grid focam no seu compartilhamento, Infciativas em diversas éreas do conhecimento jé se beneficiam com 0 uso de infra- estruturas de grid. Exemplos podem ser verificados no estudo do cosmo (Cosmo, 2005], [Sky, 2005), do genoma (IASCC, 2005], TUPAC, 2005)), medicina {GridStar, 20051, negéclos ¢ jogos [GridStar, 2005]. A Organizacao do Livro Este livro fol organizado da seguinte forma: © No Capitulo 2 apresentamos os fundamentos bastcos que s4o necessérios para 0 desenvolvimento de aplicagées distribuidas de alto desempenho, Com este objetivo _apresentamos conceltos relatives as arquiteturas dos computadores, as politicas e técnicas utilizadas para o escalonamento de aplicagées ¢ por fim um estudo sobre dependabilidade; ‘© Os processadores de rede, dispositivos de interconexio ¢ protocolos leves esto descritos no Capitulo 3. Estes trés elementos formam, juntamente com as redes de ‘comuntcagao, a base da infra-estrutura distribufda de alto desempenho. Este capitulo (10) ‘Computagto Distibud de Alto Desempenho: Redes, listers e Grids Computacionals apresenta a nova abordagem das interfaces de redes, que devem ser utilizadas para melhor aproveitar as larguras de bandas disponiveis nas redes fisicas. Dispositivos de rede diferenciados que podem prover altas taxas de transferénclas com baixo retardo s4o apresentados, também, neste capftulo. Finalizando, o Capitulo 3 prové uma reviséo de protocolos que podem ser utilizados para um melhor desempenho das aplicagées quando executadas sob redes com altas taxas de transmissac © Osambientes de programacéo, ferramentase middleware s4o encontrados no Capitulo 4. Estes trés alicerces de software é importante que seja compreendidos, pois em ‘uma diltima analise fazem a interface entre as aplicagées ¢ a infra-estrutura distribuida; © No Capitulo 5 dedicamos uma atencdo as configuragées dos clusters computacionais, com especial énfase em suas caracteristicas. Com esta meta, apresentamos amblentes € suas propostas para melhoria de desempenho de aplicagées: ‘© Exemplos de casos de clusters so tlustrados no Capitulo 6. Este serve como parametro para ilustrar as experiénclas com infra-estruturas dos agregados computacionais. ‘© Os grids computacionais estdo cobertos pelo Capitulo 7. O capitulo introduz um hist6rico da computagdo distribufda em larga escala da Internet, passando pela Web até as configuragées de grid. Outros tépicos que sfo tratados sdo as configuragées, os usudrios, as aplicacées, politicas de utilizagéo, administracéo e seguranca dessa infra- estrutura geograficamente distribuida. © Finalizamos este livro com 0 Capitulo 8, onde apresentamos estudos de casos de uso dos ambientes de grid. A meta é promover uma visio geral de projetos que jé empregam_ técnicas relacionadas aos grids computaclonals para prover um alto desempenho para as aplicag6es das organizagées. No final de cada capitulo existe uma seeao de revisdo do contetido apresentado. Em adigSo, as segdes de fundamentos relevantes ¢ exercicios propostos visam uma melhor fixagao do material apresentado no capitulo. Com o objetivo de estender o contetido programético discutido em cada capitulo, a seco denominada de Referéncias procura indicar fontes adicionais de informagées sobre os t6picos cobertos no capitulo. : Revisao do Capitulo Neste capitulo apresentamos inicialmente um cendrlo dos aspectos que tmpulstonam as Pesquisas sobre os t6picos da computagao de alto desempenho. Assim, foram destacados 0s limites que configuragées computactonais atuals comegam a atingir ea sugestio das (Capitulo 1 ~ Computagao Distribuida de Aito Desempenho. an ) infra-estruturas de cluster e grid como solucées alternativas para o continuo processamento diferencial de aplicagées. Pontos tecnol6gicos tais como as novas interfaces de rede, dispositivos de interconexéo € protocolos de alto desempenkho foram sugeridos como diregdes apropriadas para a formagao das infra-estruturas dos agregados e dos grids. Fundamentos Relevantes Para que o leitor demonstre seu bom conhecimento dos ambientes distribufdos é necessario conhecer os acréntmos ¢ fundamentos relactonados a seguir: ‘© Agregar recursos computacionais © Clusters ‘© Computacéo de alto desempenho © Grids © Largura de banda ‘© Limitacao no desenvolvimento dos processadores ‘© Processadores de rede © Protocolos de alto desempenho Exercicios Propostos 1. Verifique a configuragdo de seu computador pessoal, com especial énfase no clock do seu processador (em QHz) e quantidade de memoria (Mbytes). Faga uma pequena tabela comparativa com outros dols computadores, um de dois anos passados e um outro desse ano, considerando os parametros de processador ¢ meméria. 2. O que vem a ser um servidor, software ou hardware? Quantos processadores existem no principal computador de sua organizacgéo ¢ de que forma esses esto interligados? 3. Diferencie uma configuragao de cluster de uma outra de grid computacional. 4. Qual a diferenca entre uma aplicagéo distribuida e uma outra paralela? 5. Como vocé imagina que seria uma aplicagao paralela distribuida em termos de desenvolvimento ¢ ambiente computacional? de Alto Desempento: Redes, Cstes e Grids Computacionais 6. Cite diferengas de largura de banda ¢ retardo de redes flxas (tals como a Internet) e redes sem flo. 7, Paca uma visita aos Projetos distributed.net e Set@home e descreva de maneira sucinta seus objetivos, ambientes de hardware e software. 8. Faca uma pesquisa na Internet sobre o tema computagdo de alto desempenho (high performance computing). Efetue um filtro das informagées e depots faca uma definigéo utilizando o material selecionado. 9. Procure na Internet documentagdo com relagao a limitagao fisica dos processadores. Como sugestdo procure sobre a Lei de Moore e os limites que a Jed J4 comega a alcangar. 10. Procure diferenciar os pacotes de middleware com relagio a outros tipos de software. Exemplos so os ambientes de programacao e ferramentas. No Capitulo 4, 0 leitor dever4 encontrar um material mais orientado a esses ambientes. 11. Faga acesso a sitios tais como Global Grid Férum, Globus e GridStar e procure identificar o objetivo dessas inictativas. Referéncias ‘A grande quantidade de iniciativas em termos de clusters ¢ grids computacionals representa bem a idéla da importancla do processamento de alto desempenho. Varios exemplos na Srea dos clusters podem ser encontrados na Web. Alguns sitios interessantes sao [Beowulf 2005], [Top500, 2005] ¢ (Extreme, 2005]. Por outro lado, experiéncias com os grids podem ser encontradas em [Globus, 2005], [Legion, 2005}, {Condor-G, 2005] [CoGrid, 2005}. Quanto as redes de nova geragéo o sitio [NGN, 2005] 6 uma boa indicagéo. Os processadores de rede podem ser encontrados em {Cisco2, 2002}, (Intel, 2005] € (Freescale, 2005]. Os dispositivos de conexéo podem ser pesquisados em [Infintband, 2005}, [Myrinet, 2005] e [Quadrics, 2005). Bibliografia e Fonte de Consulta ASCC, http:/twgrid.orgtwgrid_press/ISGC2003_poster:pdf, disponfvel em Margo de 2005. BEOWULF, http:/www.beowulf.org/, disponivel em Marco de 2005. CISCO2, White Paper Cisco 7200 Serie Network - Processor Engine NPE G1, 2002. Capitulo 1 ~ Computoge Distribuida de Ato COGRID, http://cogrid.colostate.edu/project/downloads/COGridDescription.pdf, disponivel em Marco de 2005. CONDOR, http:/www.cs.wise.edu/condor/, disponivel em Marco de 2005. COOKSON, C., Processador. Meta é eriar componente capaz de realizar 1 bilhdo de célculos por segundo. IBM pesquisa o chip ultra-répido, Financial Times, London, Tradugao Valor Econémico, Secao Empresas Tecnologia & Telecomunicagées, 10,11 ¢ 12 de Dezembro de 2004. COSMOS, https:/!webmall inf-ufse.br/horde/util/go.php?url=http%3A%2P%2F www. damtp.cam.ac.uk%2Fcosmos%2F &Horde=132/329028ab56a68a7370 1fe474db35"\t “blank, disponivel em Margo de 2005. DISTRIBUTE.NET, http:/Awww.distributed.net/, disponivel em Margo de 2005. EXTREME, http://www.extremenetworks.com/solutions/applications/clustering.asp, disponivel em Margo de 2005. FREESCALE, httpy/www-freescale.com, disponivel on-line em 2005. GGF, http:/wwwggf.org/, dispontvel em Margo de 2005. GLOBUS. http://www-globus.org/, disponivel em Margo de 2005. GRID, http://www grid.org/about/gc/evolution. htm, disponivel em Margo de 2005. GRIDSTAR, http://www gridstart.org/download/business_news_nov03.pdf, disponfvel em Margo de 2005. GRIDTODAY, hitp://www.gridtoday.com/03/1013/102092.html, Outubro 2003. INFINIBAND, httpyjvww.infinibandta.org/home, disponivel on-line em 2005. INTEL, http:/www.intel.com/design/network/products/npfamtly/ixp425.htm, disponfvel em Margo de 2005. TUPAC, http://Awww.iupac.org/publications/pac/2002/pdf/7406x089 1 pdf, disponivel em Margo de 2005. LEGION, http:/www.cs.virginta.edu/~legion/, disponivel em Marco de 2005. MYRINET, httpy/www.myrt.com, disponivel em 2005. NGN, http./www.tec.org/online/tutorlals/next_gen/, disponivel em Margo de 2005. OPENMOSIX, http://openmosix.sourceforge.net/, disponivel em Marco de 2005. OSCAR, http://www.csm.ornl.gov/oscar/, disponivel em Margo de 2008, PARC, http:/Nwww.pare.xerox.com/, disponfvel em Margo de 2005. Gi ) Computogéo Distribuda de Ato Desempenho: Redes, Clusters e Grids Computaconcis PROTASIO, PM.L.C.; Rodriguez, M.V.R.; Almeida, R.O.; Zona Internacional de Servigos: Rede para Redes - Integrando a América Latina, Aduaneiras, 2004. QUADRICS, http:/Avww.quadrics.com, disponivel on-line em 2005. ‘SBC, http://www.sbc.org.br, disponivel em Margo de 2005. SDSS, http://www.sdss.org/, disponivel em Marco de 2005. SETI@HOME, http://setiathome.ssl.berkeley.edw/, disponivel em Marco de 2005. TOPS5OO, http:/www.top500.org/reports/1995/trottenberg/nodel.html, disponivel em Marco de 2005, FT FUT hay Computagdo Distribulda de Alto Desernpento: Redes, Cstrse Grids Computaconais Neste capitulo, vamos dar infclo ao estudo de alguns fundamentos teéricos que so necessérios para um melhor entendimento dos ambientes distribufdos de alto desempenbo. £ importante que o leitor observe que para uma perfeita compreensdo de tais ambientes, ‘so necessérios bons conhectmentos nas areas de arquitetura de computadores, sistemas operacionals, computacéo distribuida e paralela. Devido A complexidade das 4reas envolvidas, a impossibilidade de cobrir detalhadamente todos os seus aspectos em um 86 documento, nosso objetivo é trabalhar com concettos mais especificos que so empregados como base para a melhorla do desempenho das aplicagées. Desta forma, letturas ¢ pesquisas adicionais sobre as éreas envolvidas com alto desempenho séo sugeridas ao final do capitulo. Nossa meta € fornecer ao leitor algumas direcdes cléssicas na literatura para um conhecimento mats detalhado de cada téptco. Introducao de consenso comum que quando se deseja que uma determinada série de tarefas, ou até mesmo uma tinica tarefa mais complexa, seja realizada com um mator grau de desempenho, as opgées naturals sd: trabalhar mais intensamente, trabalhar de uma maneira mais efictente ou, como uma tiltima opgo, pedir ajuda. Uma analogla em termos computacionais, em como methorar 0 desempenho de um sistema computacional, serta: a utllizagao de uma configuragao computacional com um processador mais rapido; o uso de melhores algoritmos, por fim empregar o paradigma de computagéo distribuida ou paralela. Quanto A utilizagto de computadores com processadores mais velozes, Gordon Moore [MOORE, 1965}, um dos fundadores da Intel, previu que em cada perfodo de dezolto meses 0s sistemas dobrariam seus desempenhos. Este tipo de previsio fol verificado por varios ‘anos e em alguns casos até superada, como fot 0 caso da arquitetura dos processadores RISC (Reduced Instruction Set Computer). Todavia, limitagées tals como a velocidade da uz, algumas lets da termodinamica ¢ o elevado custo de fabricagao de novos processadores esto sendo atingldos, dificultando a progressio de desempenho que vinha acontecendo. Por outro lado, a utilizagao de melhores algoritmos em termos computactonals significa a.utilizacéo de algoritmos mais otimizados. A idéia com certeza parece bastante razodvel em uma primeira andlise. No entanto, como verificamos no dia-a-dia muitas vezes esta meta nao € possivel de ser atingida. O elevado custo de uma ottmizagio faz com que infimeras organizagées optem por continuar executando suas aplicagées, sem uma preocupagdo malor de desempenho. De uma outra forma podemos entender que € dificil modificar aplicacdes J4 existentes e que estejam em produgdo. A opgdo de utilizacao de Capitulo 2 Fundamentos Bésicos (7) computadores com maior capacidade de processamento surge como solugao na maloria dos casos. Todavia, como verificamos anteriormente existe um horizonte de limitacao natural no uso de mAquinas monoprocessadas. Aopedo de pedir ajuda, traduzida em termos computacionats pela computagao distribuida ou paralela, assume um papel diferencial na melhoria do desempenho das aplicagées. Desta forma, a agregacdo de computadores locais (clusters), ou geograflcamente distribuidos (grids), pode representar uma opcdo adequada para a melhoria de desempenho de aplicagées. E neste contexto que os clusters ¢ grids computacionais se enquadram. Neste capitulo, vamos abordar fundamentos teéricos acrescidos de exemplos de casos, sempre que possivel, visando esclarecer melhor cada tema. Cada seco fol escolhida ! devido a sua importancia para as configuracoes dos clusters e grids computacionals. Nosso objetivo € que o leitor compreenda como no cenério dos sistemas distribuidos ‘existe uma integragao de maneira harmoniosa do hardware ¢ dos pacotes de software visando uma melhoria de performance das aplicagoes. ‘Ao longo deste livro vamos utilizar os termos clusters e grids computactonats. Alguns autores empregam os termos agregados e computagdo em grade para se referir as ‘mesmas abordagens. Entendemos que, como ndo existe um consenso na utiltzagao destes termos, a methor escolha é aquela que é empregadia internacionalmente. Arquiteturas Computacionais Devido a existéncia de uma grande diversidade de arquitetura de computadores, indmeras ‘taxonomias Jé foram propostas, tentando uniformizar de maneira mals coerente as caracteristicas dos diferentes sistemas computacionais. A classificacdo dos ambtentes | de hardware mais aceita na érea de arquitetura de computadores ¢ a conhecida taxonomia ; de Flynn [FLYNN, 19721, Esta prestigiosa classificagao proposta a mais de trinta anos (e | valida ainda hoje em dia) leva em consideracdo o nimero de instrugées executadas em paralelo versus 0 conjunto de dados para os quais as instrugoes so submetidas. Desta forma, a taxonomia de Flynn estabeleceu as seguintes classificagées de computadores: ‘© SISD (Single Intruction Single Data) ~ computadores com esta caracteristica so aqueles que executam uma instrugéo de um programa por vez, ou seja, 0 modelo tradicional do processador tinico. Um exemplo seria seu computador pessoal com um processador convencional; (18) ‘Computagdo Distrbuide de Ato Desempenho: Redes, Clusters e Grids Computacionais © SIMD (Single Instruction Multiple Data) - neste tipo de arquitetura existe, também, a execugdo de uma tinica instrugéo. Todavia, devido a existéncia de facilidades em hardware para armazenamento (um vetor ou array), a mesma instrugdo € processada sob diferentes itens de dados. Exemplo de computadores com esta ‘arquitetura sdo as méquinas ILLIAC IV (Universidade de Illinois), Thinking Machine CM-2 € MASPAR MP-1216. Maquinas tas como NEC SX ¢ Cray T90 sdo modelos de m4quinas vetoriais que tém um modelo conceitual semelhante as arquiteturas, ‘SIMD, mas com a vantagem de poderem realizar o processamento sob parte dos elementos. Desta forma, aumentamdo 0 desempenho da configuracdo por causa da sua computagéo concorrente. @ MISD (Multiple Instruction Single Data) - nao se tem conhecimento de arquitetura de méquinas com multiples instrugbes trabalhando com um ‘inico conjunto de dados. @ MIMD (Multiple Instruction Multiple Data) - arquiteturas sob esta classificagao_ tém miltiplos processadores, cada qual podendo executar instrugées independente dos demais. Exemplos sao os computadores paralelos da linha SP da IBM, Intel Paragon, Thinking Machines CM-5 e configuracoes distribuidas de clusters de computadores. As configuracées computacionals que vamos discutir nesta secao séo baseadas em arquiteturas MIMD, com uma preocupagdo especial na forma de interligagdo dos processadores ¢ das memérias através de dispositivos de interconexo especificos. De uma forma mais geral, como ilustramos na Figura 2.1, € usual a classificagio das arquiteturas MIMD como multiprocessadores ¢ multicomputadores. ‘Multiprocessadores (Memérie Compartihada) Multicamputadores (Meméria Distribuidad Ambientes Fracamen:e Acoplados Figura 2.1: ClassificagSo das arquiteturas MIMD. Copitulo 2 Fundamentas Basicas (19) Multiprocessadores A Figura 2.2 flustra um exemplo de um multiprocessador. Estas arquiteturas so caracterizadas por varios processadores compartilhando uma tintea meméria, ou um conjunto de memérias (ndo devemos nos esquecer que a meméria de um computador pode fisicamente ser composta por uma placa Gnica de meméria ou composta por conjunto de placas de memérias). Aarquitetura dos multiprocessadores é conhecida como fortemente acoplada, uma vez que processadores ¢ meméria esto fortemente interligados através de seu sistema local de interconexao. A interconexo local de processadores € memoria, quando efetuada por intermédio de uma barra, prové a facilidade de configuragéo compartilhada. Por outro lado, a interligacéo de processadores ¢ memérias através de um equipamento de comutacdo estabelece uma configuracao comutada simples, podendo também se estender até a miltiplos niveis. PIG) Ed CI EIE! My] My) M))M M/|M} [Mi iM Configuragée Compartihada Configuragéo Comucad P ~ Provessador M- Meméxia Figura 2.2: Exemplos de configuragdes genéricas de multiprocessadores. & importante observar que independente do hardware de interconexdo, seja este uma barra ou um elemento comutador (switch), a arquitetura de um multiprocessador 6 caracterizada pelo compartilhamento global da meméria pelos diversos processadores do ambiente. ‘Aescalabilidade em uma configuracéo multiprocessada varia entre alguns até centenas de processadores. De uma outra forma, podemos afirmar que o elemento diferencial desta arquitetura € que a comunicagdo entre processadores € efetuada através de instrugdes de acesso comum a meméria (as operagées de carregamento armazenamento}, pols 0s Processadores compartilham a meméria de uma forma global. Por outro lado, o compartilhamento global se reflete na restrigo de escalabilidade de processadores. de Alte Desempenho: Redes, Clusters e Grids Computacionais Le 1 Olettor deve estar atento ao fato de que na documentagéo comercial é freqiiente a ‘md utiltzagdo do termo servidores escaldveis para alto desempenho para configuracées multiprocessadas. Méquinas com esta arquitetura, usualmente, tem ao contrério uma Umitagdo de escalabilidade de até dezenas de processadores. Um exemplo de confustio de escalabllidacie é verificado no caso de pequenos servidores, onde para um determinado fabricante este limite é da ordem de quatro processadores, enquanto que para outro fabricante este limite pode chegar a dezessets processadores. Os computadores comerciais que se enquadram na categoria dos multiprocessadores so denominados de servidores de pequena ¢ média capacidade. Exemplos comercials ‘s8o os da linha xSeries da IBM, TX7 da NEC e HE UltraSparc IV da SUN e Altix 300 da ‘SGI (Silicon Graphics, Inc). Na Figura 2.3 ilustramos os computadores TX7 da NEC e 0 ‘Altix da SGI que so exemplos de multiprocessadores comerciais, Nas préximas segées vamos detalhar mais estas arquiteturas. (0 47 de NEC (Ati da Figura 2.3: Exemplo de multiprocessadores comerciais. ‘Vamos estudar no Capitulo 3 switches especiais que permitem que um conjunto de computadores pessoals convencionais do tipo IBM-PC possam ser interligados como se fosse um multiprocessador. Nestes switches, reside uma memérla central tinica e as memérlas locais dos microcomputadores so utilizadas como cache. Assim, em um determinado projeto € possfvel a utilizacdo de computadores convencionais para a formacdo de um multiprocessador. Copitulo 2 — Fundamentos Béscos (21) Multicomputadores. Os computadores com arquitetura conhecida como multicomputadores so ambientes fracamente acoplados. Em outras palavras, estas configuragbes caracterizadas por centenas (ou até milhares) de processadores tém suas préprias memGrias locals. No existe um compartilhamento forte, o que significa dizer que a comuntcagao entre processos € efetuada apenas por troca de mensagens entre os processos que esto executando nos processadores. Processadores e memérias podem estar conectados por uma barra ou comutador com lustra a Figura 2.4. HIE] Crt ores Conigorato Comutade eee M—Membvia Figura 2.4: Configuracdes genéricas de multicomputadores, Quando estamos trabalhando com arquiteturas de multiprocessadores e multicomputadores é usual usarmos a palavra né ao invés de usarmos a palavra Processador. Ocorre que um né pode ser composto por um, ou mais. Processadores, todos com suas memérias locals. As méquinas das linhas SP da IBM e Blade Servers da HP. IBM, Intel e SUN sao exemplos de casos de fabricantes comerciais que utilizam a abordagem da arquitetura multicomputador. A Figura 2.5 apresenta uma configuracao de Blade da Intel que pode ser considerada um multicomputador, onde cada processador tem a sua meméria local € a comunicacao entre os nés ¢ efetuada por intermédio da rede de conexdo. O leitor deve observar a boa escalabilidade da estrutura da m4quina apresentada na Figura 2.5, uma vez que esta € composta de um rack onde varias placas sao inseridas A medida que forem necessarias. (2) Computagho Distribuida de Ato Desempenho: Redes, Qusters e Grids Computacionais Figura 2.5: Configuracao blade multicomputador da Intel. ‘Uma outra forma féell de ilustrar para o leitor uma configuracéo de multicomputador dizer que nesta classificagdo se enquadram varios computadores pessoais interligados por uma rede local convenclonal. Diferente de uma configuragéo de um multiprocessador que € necesséria & utilizac3o de um comutador especial, um multicomputador feito em casa pode empregar um computador comercial convencional encontrado em qualquer loja de produtos de informatica. ‘As configuragées das arquiteturas dos multiprocessadores e multicomputadores que estudamos até 0 momento sfo classicas. Em outras palavras, nossas explicagées se enderecam as arquiteturas de uma forma geral. Tracando um paralelo, imagine que descrevemos até 0 momento os carros de passelo do tipo 1.0. Todavia, para os ‘especialistas nao basta o conhecimento do funcionamento geral, fazendo-se necessério uum mator detalhamento de certas implementacées do automével (niimero de valvulas, tipo de freio, tIpos e consumo de combustivel e outras tantas caracteristicas). De uma outra forma, podemos dizer que certos amblentes computacionais podem se tornar diferenctados devido as seus sistemas organizacionals e modelos de programacéo. Nas préximas segdes apresentamos algumas das mais utilizadas arquiteturas, com 0 objetivo de um melhor detalhamento de diferentes configuragées que séo encontradas nos ambientes computacionats em diversas organizacées. Symmetric Multiprocessors (SMP) Os ambientes denominados como multiprocessadores simétricos (Symmetric ‘MultiProcessor ~ SMP) so conhecidos como arquiteturas de compartilhamento total. Estas configuragGes s4o caracterizadas por até dezenas de processadores compartilhando: todos os recursos computacionals disponiveis ¢ executando um ‘inico sistema operactonal. Os processadores séo considerados simétricos, uma vez que tém os mesmos custos para acesso 4 meméria. Todos, por exemplo, possuem acesso igual & meméria e a qualquer dispositivo conectado no sistema de entrada ¢ saida. ‘Um exemplo classico de uma configuragao SMP ¢ ilustrado através da Figura 2.6. Esta figura pode auxiliar o leltor a compreender melhor o conceito de uma maquina SMP Observe que a configuragao é caracterizada por varlos processadores compartilhando uma tinica meméria e um iinico sistema de entrada e saida. Um fator particular da configuracdo ¢ ndo possuir nvdltiplas memorias e nem t4o pouco miiltiplos sistemas de entrada e saida, mas apenas miiltiplos processadores. Processadores noon = Se [Hee Placa Discos Rede Figura 2.6: Configuracao cidssica de uma arquitetura SMP. Auutilizago de configurac6es SMP é mats popular do que o leitor possa imaginar. Exemplos ‘comerclais que empregam esta abordagem sio os servidores de fabricantes como Compaq, IBM, Dell ¢ HP Estas mAquinas séo usualmente denominadas pelos fabricantes como servidores de pequeno porte, pois possuem até dezena de processadores. Os pequenos servidores visam melhorar o desempenho de aplicagSes por intermédio do compartilhamento do cédigo com uma memé6ria ‘nica utilizando mais intensamente os processadores dispontvets. Uma aplicagao exemplo seria um sistema de banco de dados. ‘Com uma mator capacidade de processamento, uma maquina SMP ¢ ideal para prover ‘uma maior rapidez nas consultas ¢ atualizagées nos bancos de dados. Uma outra méquina que ilustra o uso categoria da arquitetura SMP é um computador do tipo IBM-PC com o processador Intel Pentium Pro Four-Processor Quad Pack. A organizacdo desta arquitetura da Intel € formada por quatro processadores compartilhando um barramento principal, onde também esto conectados os médulos de meméria o componente de interface de comunicagéo com periféricos (PCI). O diagrama de bloco da configuragéo pode ser considerado de uma manetra stmplificada com o flustrado na Figura 2.6. C y Computagdo Distrtwida de Alto Desempento: Redes, Custer e Grids Computacionais ee eee ry Na literatura sobre arquitetura de computadores alguns autores tém uma defini¢éo mats relaxada sobre os amblentes SMP. Existem algumas configuragées onde encontramos processadores que possuem suas préprias memérlas, ou ainda um determinado processador com acesso exclusive ao sistema de entrada e saida. Sob nosso ponto de vista, estas vartagdes de configuragdo descaractertzam uma abordagem SMP pura, assim ndo consideramos como tal. Estes ambtentes podem ndo garantir 0 acesso untforme com os mesmos custos d memérta. As maquinas SMP séo também conhecidas como multiprocessadores fortemente acoplados. Por esta razio, estes ambientes nao s4o muito escalévels. No possuindo muitas vezes uma memérla local (ou cache) por processador, com o aumento no ndmero de processadores, a taxa de colisdo de acesso & meméria cresce de maneira substancial. Por esta razAo, alguns fabricantes desenvolveram solugSes onde suas méquinas servidoras (algumas chamadas de servidores de topo de linha) possuem algumas placas, onde em cada uma delas encontramos alguns processadores com meméria local e cache e uma meméria global para os processadores contidos nesta placa. Com este artificio pode-se prover uma configuragéo SMP. garantindo um acesso uniforme & meméria global do servidor. Por causa da limitagdo de escalabilidade de processadores em uma arquitetura SMP. na Proxima secéo sao apresentados outras configuracdes que implementam politicas de utilizagao de um cache local. Desta forma possibilitando uma mator escalabilidade no mGimero de processadores de uma configuracéo com memérla compartilhada. Cache Coherence Non-Uniform Memory Access (ccNUMA) Na seco anterior verificamos que uma configura¢do SMP nfo tem uma boa escalabilidade, pols o sistema de interconexao normalmente utilizado € um barramento. Esta forma de interligagdo dos processadores e memsérla cria uma limltagdo natural, devido A largura de banda fixa respectiva do barramento. A arquitetura sofre uma degradagso & medida que o ntimero de elementos que deseja se comunicar cresce na configuragao. ‘Um outro paradigma possivel de ser empregado é 0 uso de uma interconexio comutada. Autilizacdo de comutadores (switches) como elemento de interligacao entre processadores: ¢ meméria ndo escala bem. Existe um aumento no custo de ordem quadratica em relacao. a0 ntimero de portas que so acrescidas & configuragio. sana (5) Por outro lado, existem solugdes de interconexio entre processadores ¢ meméria que podem agregar largura de banda a configuracao; no entanto, o custo néo se torna protbitivo, Naturalmente, nestas soluges devemos considerar um certo retardo que deverd ser acrescido para 0 acesso & meméria. Na teoria, uma arquitetura denominada de Acesso Nao-Uniforme & Meméria (Non-Uni- form Memory Access - NUMA) € conhecida por sua caracteristica de poder escalar até centenas de processadores. Na Figura 2.7 encontra-se uma configuracao convencional de uma NUMA. Um fator interessante das méquinas NUMA é que elas preservam o modelo de programagdo simples de uma configuragao SMP. Neste modelo de programacéo, processadores podem compartilhar os mesmos dados que estao armazenados em uma ‘memiéria global. Por outro lado, em uma configuragio do tipo NUMA é reconhectdo que ‘existe um retardo de acesso untforme a todas as regiées de memoria. Em outras palavras, € de conhecimento do programador que existe um retardo para acesso a determinadas partes da meméria por determinados processadores dependendo de suas localizacées. Processadores Sistema f=} Membria Entrada- ~ ES Praca Rede Discos Figura 2.7: Configuragao convencional de uma NUMA. ‘O controlador da meméria local pode decidir se uma determinada operagéo deve ser realizada nameméria local, ou se uma transagao de mensagem deve ser realizada com um controlador remoto. O acesso’ mems6ria local é mais répido, quando comparado ao acesso a uma meméria remota. Desta forma, € comum que o acesso & meméria local seja efetuado as partes de c6ddigo dos processos € que dados compartilhados sejam acessados em meméria global. Desta situacéo, o lettor deve também observar que existe um problema de coeréncia de cache que deve ser tratado com cuidado, Existem nesta configuragéo manipulagées que devem ser compatibilizadas entre as memiérias local e global para evitar que erros de coeréncia ocorram. (26) Computagdo Distrituida de Alto Desempento: Redes, Clusters e Grids Computacionais A Implementagéo pratica de uma méquina com arquitetura NUMA € conhecida como maquina com Acesso Nao-Uniforme a Meméria com Coeréncia de Cache (Cache Coher- ence Non-Uniform Memory Access - ecNUMA). Méquinas com esta abordagem sao configuragbes escalaveis de multiprocessadores, como apresenta a Figura 2.8. Aplicagbes tals como os servicos de Web, banco de dados, processamento de sinal, CRM e ERP so aplicagGes candidatas a serem utilizadas em configuragées ccNUMA. AC — Assistente de Comuricagéo Figura 2.8: Configurago convencional de uma ¢¢NUMA. Na literatura sobre arquitetura de computadores, alguns autores se referem a estas configuragées como organizacéo de multiprocessador distribuida de meméria. Nestes ambfentes, para cada né (composto por wm ou mais processadores) é possivel ter uma visdo geral do todo do sistema de meméria local, empregando uma meméria cache para cada processador. Para uma visio global de todas as memérias que compéem a configurago de todos os nés ¢ utilizado um hardware denominado de uma forma genérica de assistente de comuntcagio (AC). Exemplos de computadores com estas caracterfsticas sao 0 HP 9000 Superdome, o Altix 3000 ¢ o Origin 3000 da SGI. E interessante o leitor observar que as arquiteturas cCNUMA_ do complexas € suas implementagGes s4o intrinsecas de cada fabricante. Indimeros documentos existem na literatura descrevendo diferentes implementagdes de ccCNUMA. Para gerar a facilidade de meméria compartilhada em configuragées ccNUMA, varios problemas correlatos existem, tals como a sincronizacdo de acesso € a consisténcla & meméria, Cada fabricante implementa sua solucdo particular visando um methor desempenho de suas méquinas. Na Figura 2.9 apresentamos o diagrama esquematico de um computador Altix da série 3000. Esta maquina, da empresa SGI, tem uma arquitetura global de meméria ‘compartilhada denominada de NUMAMlex. © computador ilustrado na figura tem as seguintes peculiaridades: © Dols nés com quatro processadores Intel Itanium; © Emcada barramento existem dois processadores interligados com taxa de transmissio de 6.4 GB/segundo e quatro médulos de meméria de 64 GB; © Os controladores de meméria tém taxa de transmissao entre 8.51 e 10.2 GB/segundo; @ O sistema de interconexio com taxa de transmisséo de 6.4 GB/segundo; © Largura agregada de transmissio de entrada/saida de 4.8 GB/segundo. 2AGHs 3208 fll doplex fl dpe flip ful dle Figura 2.9: Diagrama de uma ccNUMA Altix 3000 da SGI. A familia Altix é um exemplo comercial interessante de arquitetura ccNUMA, fazendo parte de uma arquitetura de meméria compartilhada NUMAflex. Esta configuragio tem como particularidade ur ambiente global de meméria compartilhada, onde os sistemas se interligam como ilustra a Figura 2.10. A implementacéo diferenciada da arquitetura tem como caracteristicas: (28) Computogdo Distribuide de Alto Desempenho: Redes, Clusters e Grids Computacionais © Todos os nés operam um ‘intco grande espago de meméria compartilhada; ‘© Eliminagdo de transferéncia de dados entre nés; © Grandes quantidades de dados podem ser carregadas inteiramente na memoria; @ Processadores comerciais convenctonais (no caso da Intel); © Simples para programagio: © Executa um sistema operacional aberto, o Linux. ‘SGI°AItix” Family zy : Figura 2.10: Arquitetura de meméria compartihada da familia Altix, Na Figura 2.11 apresentada a maquina TX7 série 19000 da NEC, que representa um ‘outro exemplo de um computador ccNUMA. Algumas caracteristicas interessantes da configuragdo so: © Meméria até 128 GBytes; @ Sistema de interconexdo com taxa de transmissao de 100 GBytes/segundo; © Possfbilidade de mailtiplas particdes e execugo de HP-UX, Linux e Windows Server 2003; © Redundancia de componentes; @ Até 112 slots de PCI-X. ‘Com relagdo a Figura 2.11, o leltor deve se recordar do contefdo teérico das maquinas ‘com Acesso Nao Uniforme & Meméria com Coeréncta de Cache, tlustrado por intermédio da Figura 2.8. 0 componente assistente de comunicagdo (AC) € equivalente ao cell controller da Figura 2.11. Diagrama de urna ccNUMA TX7 da NEC. Massively Parallel Processors (MPP) ‘As méquinas com configuracdo massivamente paralelas (Massively Parallel Processors ~ MPP) so conhecidas como arquiteturas fracamente acopladas. Computadores sob este paradigma séo classificados usualmente como multicomputadores. O leitor deve entender que urn MPP pode ser composto também por um conjunto de multiprocessadores, onde cada multiprocessador é um né de uma configuracao do tipo multicomputador. Na Figura 2.12 apresentamos um diagrama genérico de uma configuragao de computador MPP. Interessante observar que a ordem de grandeza dos nés € de cerea de milhares. ‘Computadores com a arquitetura MPP so caracterizados por milhares de nés interligados por dispositivos de interconexdo de alta velocidade. Cada né pode ser composto por um ou mais processadores, possuindo cache e memria locals. Uma outra caracteristica da arquitetura € que cada né possui sua propria c6pia de sistema operacional, onde as (30) Computacto Distribuda de Ato Desempento: Redes, Clusters e Grids Computacionais aplicagées executam localmente se comunicam através de pacotes de troca de mensagem, tais como MPI e PVM (no Capitulo 4 estes ambientes de software sao detalhados). Figura 2.12: Configuragéo genérica de um MPP. A escalabilidade da abordagem MPP & maior do que as arquiteturas como memérla ‘compartilhada, uma vez que cada né tem sua prépria estrutura de meméria. Exemplos comerciais interessantes sao 0s sistemas conhecidos como ASCI (Accelerated Strategic ‘Computing Initiative). O governo dos Estados Unidos, por intermédio do Departamento de Energia (DOE), estabeleceu o programa ASCI cujo objetivo era incentivar os fabricantes americanos de computadores a desenvolverem supercomputadores MPR Deste programa, como exemplo, surgiram os seguintes sistemas [TOP500]: @ HP ASCIQ, Alpha Server SC 45 1.25 GHz com 8192 processadores: © IBM BlueGene/L. DDI Prototype (0.5GHz PowerPC 440 w/Custom) com 8192 processadores; © SGI ASCI Blue Mountain com 6166 processadores; © Intel ASCI Red com 9632 processadores. Um elemento importante na configuragéo MPP € seu sistema de interconexéo. A interligaco dos varios nés da configuracdo é efetuada por dispositivos que s40 denominados como redes de interconexao. Estas redes tém diversas formas de implementagio. Os parametros que séo levados em consideragéo na construgéo das redes de interconexso so: © Topologia: © Algoritmo de roteamento: Capitulo. tnenan (5) © Estratégia de comutacao; © Controle do fluxo entre nés. Os computadores TSD ¢ T3E da Cray. SP da IBM, AP ¢ VPP da Fujitsu ¢ SR2000 da Hitachi, sao também exemplos de méquinas ¢ fabricantes de MPPs encontrados no mercado. Méquinas mais antigas como Meiko CS-1 e CS-2, além dos sistemas Thinking Machines CM-2 € CM-5, so outros exemplos de computadores com arquitetura MPP. Na Teferéncia (TOP500, 20051, o leitor pode encontrar uma relagao, que € atualizada duas vezes por ano, de todas as configuragées comerciais de multiprocessadores € multicomputadores comentadas até 0 momento. Sistemas Distribuidos Os sistemas distribuidos, sob 0 aspecto de arquitetura de maquinas para execugéo de aplicativos, devem ser vistos como configuragées com grande poder de escala pela agregacao dos computadores existentes nas redes convencionais. Nos ambientes distribuidos, a homogeneidade ou heterogencidade de um conjunto de méquinas, onde cada qual possui sua arquitetura de software-hardware executando sua prépria cépla de sistema operacional, permite a formacéo de interessantes configuragées de SMPs, de MPPs, de clusters ¢ grids computacionais. Na literatura o termo metacomputador (metacomputer) é empregado multas vezes como referéncia ao uso de sistemas distribudos como um grande computador. Projetos de pesquisas ‘em universidades ¢ empresas, no exterior € no Brasil, foram estabelecidos para estudar as melhores formas de utilizacao dos metacomputadores. Um exemplo interessante € 0 projeto Charlotte. do Departamento de Ciéncia da Computacao da New York University. Na pagina inicial do projeto [CHARLLOTTE, 2004], encontra-se uma placa dizendo: “Welcome to the Internet". Em outro ponto 0 grupo de pesquisa chama a atencdo dos interessados para 0 fato de que a revista Scientific American publicou em Maio de 1997 uma afirmaco dizendo que provavelmente o computador mais répido que existe atualmente é a Internet, ou um subconjunto de suas maquinas da Internet, agrupadas para a execugéo de uma aplicagéo. Emboraa utilizagao de ambientes distribuidos seja interessante sob 0 aspecto de utilizagéo de recursos abundantes € na maforia das vezes oclosos nas redes, alguns cuidados devem ser verificados nas fases de projeto ¢ implementagao de aplicativos candidatos ao Processamento nestas configuracées. Aspectos tais como a seguranca, o retardo de comunicagio, a confiabilidade, a disponibilidade e a compatibilidade de versées de pacotes de software sdo alguns pontos a serem considerados com cautela. (2) Computagdo Distribuida de Alto Deserspento: Redes, Clusters e Grids Computaconais Quanto ao parametro seguranca, um aplicativo exccutando de uma forma remota em Aquinas desconhecidas poderd estar exposto a processos ou individuos nao autorizados. 0s retardos de comunicagao nas configuragées distribuidas so usualmente grandes, Posto que componentes do ambiente podem estar geograficamente distribufdos. Desta forma, somente aplicativos com uma granularidade grossa deve ser os candidatos & execugio distribuida. A aan eer ernenmnemeennmnennel Na computagao paralela e distribuida o termo granularidade é uma propriedade que diz.0 quanto de processamento e comuntcagdo uma determinada aplicacéo requer. A granularidade fina é caractertzada pelo pouco processamento e grande quantidade de comunteagéo de entrada e saida. Por outro lado, em aplicagées com granularidade grossa existe uma grande porcdo de processamento comparada com uma batxa quantidade de comuntcacdo. Osaspectos de confiabilidade e disponibilidade em configuragées distribuidas so complexos (como explicaremos adiante, no t6pico “Dependabilidade"), devido principalmente aos intimeros conjuntos de componentes do ambiente. De uma outra forma, o leitor deve entender que em sistemas com mais computadores - compostos ainda por varios pacotes de software —a probabilidade de uma falha ocorrer aumenta consideravelmente, Finalizando, o parémetro compatibilidade, juntamente com os demals j4 apresentados, € um problema constante em grandes sistemas distribuidos, uma vez que diferentes sistemas ‘operactonats, arquitetura de processadares, compiladores ¢ interfaces de redes podem no Interagir conforme solicttado. Solugées distintas através, por exemplo, de monttorago agregacio existem. No Capitulo 4, sio apresentados alguns pacotes middleware e ferramentas que podem auxiliar na execugio mais apropriada de um aplicativo, Clusters As configuragées de clusters, em termos de arquiteturas computacionais, podem ser entendidas como uma agregacéo de computadores de uma forma dedicada (ou néo) para a execugéo de aplicagées especificas de uma organizacéo. Na Figura 2.13 (a) flustramos um exemplo de um cluster dedicado, ou projetado para rodar exclusivamente as aplicagbes na configuragso. Por outro lado, a Figura 2.13 (b) representa uma configuracdo nao dedicada. Neste ambiente, além da execucdo de tarefas convencionais monoprocessadas, pode ser utilizado como um cluster eventual para execucdo de aplicacées que solicitem um mator desempenho computacional agregado. Figura 2.13: Clusters dedicados e no dedicados. Os clusters (ou agregados como alguns autores se referem em portugués), de uma forma geral, s80 compostos por computadores do tipo IBM-PC com uma caracteristica intrinseca de dispontbilidade de uma grande quantidade de recursos (processadores, memérias € capacidade de armazenamento) pertencentes a uma tinica entidade (laborat6rio, departamento, filial ou empresa). Todavia, o leltor deve entender que € possivel projetarmos configuragdes de clusters levando-se em consideracéo um conjunto de m4quinas multiprocessadas como ilustrado na Figura 2.14. Nesta figura apresentamos um cluster hibrido de maquinas multiprocessadas da S (3 ) Computogdo Distribuida de Alto Desempenho: Redes, Clusters e Grids Computacionis 866 AR 9700 Figura 2.14: Configuracio de cluster de méquinas multiprocessadas. A escalabilidade é um fator diferencial dos ambtentes de cluster, pois a configuragio pode crescer A medida que mals recursos estiverem disponivels. A agregagéo de méquinas com configuragées relativamente pequenas enderega o paradigma de pedir ajuda que ‘comentamos na introdugdo deste capitulo. Assim, é possivel aumentar 0 desempenho de uma aplicacdo através da formagao de configuragdes com uma interessante relagao custo-desempenho. No Capitulo 5 nos dedicamos a estas configuragdes ¢ um maior detalhamento de ambientes de software e hardware é ilustrado. Grids Os grids computacionais sf novas formas de agregar ambientes geograficamente dispersos, todavia com objetivos claros de especificagéo de qualidade de servicos. O termo computagao em grade é utilizado por alguns autores nacionais, descrevendo os maesmos prine{pios e configuraées. Todavia, nossa opiniao é de que o termo deveria ser computago em malha, uma vez que o objetivo ¢ a criagéo de uma malha de servicos. Atualmente, a Internet como uma configuragao distribufda de recursos € conhecida como um ambiente de melhor esforgo. Em outras palavras, diferentes tipos de aplicativos com diferentes tipos de requertmentos de qualidade (exemplos séo a largura de banda, 0 retardo de comuntcagao ¢ o jitter) so tratados de maneira igual. Em adigao, os servigos WEB que oferecem servigos para execugéo de tarefas de usuérios finals ainda sio poucos. Desta forma, o objetivo de estabelecer configuragées de grids é voltar toda a potenclalidade de recursos e servigos disponiveis na Internet para o processamento de tarefas dos usuérios pertencentes a uma (ou mals) configuragio de grid. © paradigma € que os usudrlos, ao invés de se submeterem a servicos j4 predefinidos, estabelegam que suas aplicagoes devam ser executadas na configuracdo distribuida retornado o resultado para seu computador. Aplicagdes que podem servir de exemplo para este novo paradigma computacional so o compartimento de miisica (do tipo efetuado pelo Napster ¢ KaZaA) e busca de vida extraterrestre (do tipo SETI@HOME). Nos dots exemplos as aplicacées compartilham solicitagées com outras aplicagées de uma manetra distribuida e organizada entre as mesmas por servigos especificos. No Capitulo 7 vamos detalhar com mais cuidado os ambientes, usuérios ¢ aplicagées das arquiteturas dos grids computacionais. Este t6pico ¢ bastante interessante por ser uum desafio complexo de rede ¢ sistemas distribufdos e pelo futuro promissor para as aplicagées distribuidas de diferentes naturezas. Escalonamento Estudamos nas secdes anteriores ambientes que permitem a utilizagao de uma grande quantidade de recursos computacionais ¢ de armazenamento. Todavia, faz-se necessério que a atribulgSo de tarefas aos elementos de processamento seja efetuada de forma eficiente para minimizar o tempo de execucdo das aplicacdes. Nosso objetivo deve ser maximizar a utilizacéo dos recursos computacionais disponiveis (exemplo séo a CPU ea memGria), € minimizar os custos relativos & comunicagao. Este ¢ problema bastante conhecido na literatura, que € denominado de escalonamento (scheduling). 0s diferentes tipos possiveis de escalonamento foram estudados por varios pesquisadores. A abordagem de classificagéo mais aceita esta apresentada na Figura 2.15. A classifieacao apresentada na figura fol proposta por Casavant Kuhl (CASAVANT, 1988], sendo a mais acelta nas comunidades académica e industrial. ‘Segundo a classificagao de Casavant ¢ Kuhl, inicialmente os métodos de escalonamento sto divididos em local ¢ global. © escalonamento local refere-se ao problema de atribuicdo das fatias de tempo (time: realizado normalmente pelo sistema operacional. Por outro lado, 0 escalonamento global refere-se ao problema de decidir sobre onde executar um process sendo, Portanto, seus métodos aplicdvets aos sistemas distribufdos. Em face disto, vamos estudar como maior detalhe os dots grandes grupos nos quais se dividem os métodos de escalonamento globais. lices) de um processador aos processos. & aquele (36) Computogo Dstbuida de Alto Desempenha: Redes, Chistes e Grids Computacionais Scheduling ‘Gtmo ‘Sub6timo Nao Distribuido Distribuido Aproximado — Heurstico Cooperativo ‘Ngo Cooperativa 6tima ‘Sub ‘Aproximado —Heurfstico Figura 2.15: Classificacao dos métodos de escalonamento. Escalonamento Estatico Neste grupo de escalonadores, a atribuigao de processos aos processadores é realizada antes do inicio da execugéo do programa. Desta forma, € necessdrfo que se tenha informagées acerca dos tempos de execugdo dos processos e dos elementos de processamento disponivels, em tempo de compilagio. I No estudo sobre escalonamento € comum se encontrar 0 termo elemento de Processamento para descrever um n6, que pode ser compasto por um ou mats processadores. ‘Uma vez realizada a tarefa de escalonamento, esta nao poderd ser alterada em tempo de execugdo. Mesmo no caso de ocorréncla de defetto de algum elemento de processamento envolvido no escalonamento. O escalonamento estatico divide-se por sua vez. em 6timo € subétimo. escalonamento pode ser compreendido como uma abordagem de solugéo que esté Incluida na classe de problemas de decisio. Em outras palavras, nesta classe de problema deseja-se uma resposta do tipo sim ou ndo. Em geral, para se obter escalonamentos Gtimos depara-se com um problema NP-completo, o que sigaifica dizer que néo existe um algoritmo simples para resolver o problema. Somente em alguns easos especificos este objetivo € atingido. Desta forma geral, normalmente os métodos subétimos so mais empregados. Estes por sua vez se divide em aproximados e heurfsticos. No escalonamento aproximado € felta uma busca no espago de solugdo do tipo busca em amplitude ou do tipo busca em profundidade. A abordagem do algoritmo ¢, ao invés de percorrer todo um espago de solucdo, a mesma para se encontrar uma solugdo aceitével. Nos métodos heuristicos, so usadas regras empfricas para orlentar a busca por uma solugéo quase étima. Escalonamento Dinamico (Os métodos de escalonamento inclufdos neste grupo fazem frente a uma situagao mais realista. Estes assumem que muito pouco se sabe a prior! acerca das necessidades dos recursos de um proceso, ou do amblente no qual o mesmo ird ser executado. No escalonamento dinamico é realizada a redistribulgSo de processos aos processadores durante a execugio do programa, segundo algum critério. Em geral os métodos dindmicos adotam como politica o balanceamento da carga entre os elementos de processamento com 0 objetivo de melhorar o desempenho da aplicagao. Por esta raz4o, so chamados de métodos de balanceamento de carga (load balancing). Devido & dificuldade em se estimar o tempo de execugio de um processo ¢ a natureza dindmica dos recursos computacionais, os métodos dinamicos realizam a redistribuicao de processos entre os elementos de processamento, tirando trabalho dos que tenham ficado mais carregados ¢ transferindo para aqueles processadores menos carregados. Ao se projetar um algoritmo de balanceamento de carga é comum a definigéo de trés politicas: © Informagéo - especifica quais informagées deverdo ser passadas acerca da carga dos elementos de processamento. Esta politica esta, também, relacionada com que freqiiéncia essas Informagées deverdo ser atualizadas ¢ para quem deverdo ser enviadas; © Transferéncia - determina as condigées sob as quals um proceso deve ser transferido; © Colocagio — identifica o elemento de processamento para o qual um determinado processo deve ser transferido. ‘As decisdes relativas ao balanceamento de carga podem ser tomadas de forma centralizada, ou distribufda, ou ainda por uma combinagéo das duas abordagens. Por exemplo, em um determinado algoritmo, a politica de informacao pode ser centralizada. Isto significa que um tinico elemento de processamento recebe as informagées de carga. (#8) Computagdo Distrbuida de Alto Desempento: Redes, Clusters e Grids Computacionais Por outro lado, a transferéncia € a colocagéo podem ser distribufdas. Entao, ¢ Tesponsabilidade de cada elemento de processamento estabelecer sob que determinadas condigées de contorno ¢ a identificagao para que elemento(s) de processamento que deverd ocorrer transferéncia de um proceso. No caso do balanceamento de carga distribuido, caso os elementos de processamento tomem suas decises de forma totalmente independente, diz-se que realizam escalonamento nao cooperativo. Um exemplo desta abordagem é o emprego de uma politica de colocacdo aleatéria. Por outro lado, no escalonamento cooperativo, 0 elemento de processamento toma suas decisées de acordo com os demais elementos de processamento, objetivando atingir uma meta global para o sistema. No caso da politica de colocago, corresponde ao caso em que a escolha do elemento de processamento € felta com base na informacao de carga. Dependabilidade Acrescente utilizacdo de computadores na sociedade moderna, ¢ em certas atividades com um malor grau de intensidade, tem impelido a uma dependéncia no uso destes equipamentos e seus sistemas. Exemplos classieos de atividades que tém apresentado uma melhoria diferencial com a utilizacdo dos sistemas compulacionais sdo: as transagées bancArias, os sistemas integrados de bolsas de valores e mercadorias, desenvolvimento e controle automotivo ¢ aerondutico, projeto e inspecées de plataformas maritimas, projeto e controle de pocos de petréleo e gés, o controle de trafego aéreo, 0 controle de vos, o controle de reatores nucleares, os sistemas de defesa ¢ os sistemas de suporte a vida, Nestas atividades, um mau funcionamento de algum dos componentes do sistema computactonal pode acarretar enormes prejuizos materiais, ou até mesmo a perda de vidas humanas. E importante que o leitor entenda que multas vezes encontramos na literatura da tecnologia da tnformacdo (TI) consideragées sobre ambtentes confidvels de uma manetra mutto imprecisa. Em outras palavras, existem cttagdes ao termo confidvel sem uma mator quantificagdo. Para que se possa expressar o quanto um sistema é confidvel, de forma mats prectsa e inequivoca, torna- se necessaria a definigdo de alguns termos relactonados a este conceito, ¢ sua postertor quantificagao. ‘A dependéncia cada vez maior nos sistemas computacionais tem levado um mator ntimero de pesquisadores e empresas a investigarem por sistemas computacionais mais confidvels. O segmento de estudo e desenvolvimento de técnicas sobre este aspecto da computacao distribuida cunhou o termo dependabilidade, para expressar a relagio de dependéncia entre os componentes de um sistema computacional. De uma outra manetra, podemos dizer que dependabilidade ¢ uma propriedade dos sistemas computacionats que define a capacidade dos mesmos de prestar um servigo no qual se pode justificadamente confiar. O servico prestado por um sistema ¢ 0 seu comportamento, tal qual percebido pelos usudrlos deste sistema, O usudrio de um servico é um outro sistema, eventualmente até © proprio ser humano, que interage com o primeiro através da interface do servigo. A fungSo de um sistema traduz 0 modo para o qual este fol projetado e € deserita na especificagao do sistema. Diz-se que um servico é correto quando implementa a especificacéo do sistema, A caractertzacao da dependabilidade envolve ainda um conjunto de conceitos que alguns autores dividem em trés grupos: os atributos, os mefos pelos ‘quais seré alcangada ¢ as ameagas. A Figura 2.16 lustra uma taxonomia bastante acelta para a dependabilidade proposta por |AVIZIENIS, 2001]. [— isponbildede (Availabilina [— Confsbidede (Reliability) [— Seguranga (Safety) |— Confidencialidede (Confidentiality) |— ntegrdade Integrity) | Reparsbldade (Maintainabilty) r— Atributes — Prevengéo de Felhas (Fault Prevention) Tolertncia a Falhas (Fault Tolerance} Remogéo de Falhas (Fault Removal) Previsdo de Felhas (Fault Forecasting) Dependabilidade —| [— Faas (Faults) ‘Ameagas Eros (Errors) ‘— Defeitas (Faulures) Figura 2.16: Uma taxonomia de dependabilidade. A seguir comecamos a estudar os conceitos apresentados na taxonomia da Figura 2.16 das ameagas, passando pelos meios até atingir 08 conceitos de atributos, ( 0) Computagdo Distrtwidla de Ato Desempenho: Redes, Clusters e Grids Computacionais Ameacas Existem varios aspectos que podem ameacar a dependabilidade de um sistema distribuido, Um sistema apresenta defeito quando néo capaz de prestar um servigo correto, ou seja, seu servico se desvia da especificacdo do sistema. O defeito € o evento que causa a transi¢do de estado do servico de um sistema de correto para um servigo incorreto, ou para um estado que nao implementa a especificagao do sistema. A restaurag4o do servico € 0 evento que faz o servico de um sistema retornar ao estado de ‘servico correto. A transi¢ao de estados em um sistema devido a ocorréncia de defeito é ilustrada na Figura 2.17. Deteito [= | Cometo Ineorreto Festauragéo do Servigo Figura 2.17: Exemplo de transigio de estados devido & ocorréncia de defeito, ‘Podemos espeeificar uma cadeia de ameacas A dependabilidade da forma apresentada na Figura 2.18. 0 objetivo da especificagio de ameaca a dependabilidade, como ilustrado na figura, € a identificagdo mais precisa das falhas, dos erros e, por conseguinte, dos defettos que podem ocorrer em um sistema distribuido. Componente de um Sistema Figura 2.18: Cadeia de ameaga da dependabilidade. A falha € 0 elemento que ocasiona o erro, provocando no sistema uma transigio de estado ndo planejada levando o sistema para um estado de erro. Um sistema pode apresentar uma (ou mais) falha(s) € néo apresentar erro(s). Neste caso, a falha € denominada de falha latente. Por outro lado, quando a falha efetivamente produz um erro passa a ser classificada como falha ativa. O tempo entre o surgimento da falhae sua ativagéo, ou a produgao do erro, é chamado de laténcia de falha. Os tipos de falhas e as suas origens sao bastante variados. O mau funcionamento do sistema de ventilacdo de um computador pessoal, por exemplo, é uma falha. Como conseqiiénela, ‘um possivel erro no funclonamento do equipamento ser seu superaquecimento que levar& © sistema a apresentar um defeito. Por outro lado, 0 mau funclonamento do sistema de ‘ventlacdo (a falha) pode nao ser continuo endo causar a elevacdo de temperatura (oerro) do computador, nao causando assim um mau funcionamento do sistema computacional (0 defeito). Podemos imaginar intimeros outros exemplos de casos que ajudam a entender melhor a relagio entre falha, erro ¢ defeito. Suponha os casos abatxo: © Um curto-cireuito ocorrido em uma porta légica pode ser classificado como uma falha. A conseqiiéncia pode ser a alteraco do resultado da operacéo légica, que caracteriza erro. Este erro poder4, ou ndo, vir a causar um defeito nos pacotes de software que esto sendo executados no computador; © Um operador que ao manobrar um sistema realiza um procedimento inapropriado gera uma falha. Q resultado de sua acdo pode levar a um erro, causando a alteragéo final de uma informagdo (defeito); © Um rato pode ser uma falha se possulr energla sufictente para, por exemplo, alterar Por indugo uma informagéo que esteja trafegando em um sistema de transmissio de dados. Neste caso, 0 erro é caracterizado pelo dado distorcido que deverd ser entregue ao destinatério, causando um defeito de informagéo. No trabalho de (AVIZIENIS, 2001], existe um sistema de classifieacao de falha bastante abrangente que apresentamos na Figura 2.19. ‘Mucando nosso foco, vamos agora caracterizar melhor o que é um defeito, Um defeito ‘somente ocorre quando um erro existente no sistema alcanca a interface do servico € altera o servico prestado. O erro é um estado indesejado do sistema que pode (ou néo) vir acausar um defeito. Desta forma, um sistema pode ter um (ou mais) erro(s) ¢ continuar apresentando um servico correto, sem defeito. © tempo entre o surgimento de um erro e a manifestacdo do defeito é chamado de laténcia de erro, ¢ sua duragéo pode variar consideravelmente dependendo das ( 2) Computogdo Distrtuide de Alto Desempenho: Redes, Clusters e Grids Computacionais circunstincias ¢ do sistema computacional. Os defeitos apresentados pelos sistemas, por sua vez, também podem ser de diferentes tipos. Por esta razo, alguns autores propéem taxonomias para classificar os defeitos, baseadas nas caracteristicas dos comportamentos apresentados. Séo comumente chamadas de modos de defeito (failure modes) ou de modelos de defeito [failure models). Parametros comuns utilizados para a classificacdo dos defeitos séo: 0 dominio, a percepgao pelos usuarios e as conseqiiéncias no ambiente, A segulr, na Figura 2.20 ilustramos uma possivel classificagdo para 0s defeitos, proposta por [AVIZIENIS, 2001]. ;—— Falhas naturais oo Causa oy eee { Fathes humanas r—— Falhas acidentais Intengéo Felhas deiberadas, nfo maliiosas L__Fathas delberedamente maoses | _ Fase dn Cig [— Falas no dasenvohimenta dda Qeorréncia —1— athas na produgéo Falhas —j L_Falhas opeacionais — Falhes fsices (Falta da informa Feaanean 7 Fito interes Sistema L_ Fatas extemas [—_ Fahas permanentes Persisténcie \—— Falhas transientes Figura 2.19: Uma proposta de classificacao de falhas, O entendimento da relacdo de dependéncta entre falhas, erros ¢ defettos ¢ a base para 0 que alguns pesquisadores chamam de patologia da falha. Na Figura 2.18, observamos que a relacdo est aplicada a apenas um componente. Podemos generalizar a relaco apresentada na figura de forma que a mesma possa ser utilizada recursivamente na anélise de um sistema em diferentes nivels de abstrag3o. Suponha o detalhamento de um componente A de um sistema global, formado pelos componentes A, B € C. O ‘componente A pode ser visto como wm subsistema, Entéo, este subsistema A pode ser Capitulo 2 Fundomentos Bésicos 3) formado por inimeros outros componentes, digamos de x, y e z. Imagine que 0 dltimo componente (z) apresente um defelto, Desta forma, o defelto de z € considerado uma falha para o préximo componente B do sistema global. r—— Valor ST) [— Defeitas consistentes Percengao pelos ;—— uswérios 4 Defitos inconsistentes Defeitos — (e.g, defeitos bizantinas) (—— Defeitos menores Conseqiéncias _ ; wo ambiante : |__. efeitos eatastrifoas Figura 2.20: Uma classificagSo para os defeitos. Meios (Os meios da classificacdo de dependabilidade nos ajudam a trabalhar na prevengéo, tolerancia, remogdo ou previsio das falhas. Estas polfticas tém como objetivo tratar as falhas que podem ser ativadas levando aos erros que por sua propagagao causam os defeltos. Prevencao de Falhas A abordagem de prevencéo de falhas tern como objetivo aumentar a conflabilidade dos sistemas empregando técnicas de controle da qualidade nas etapas de projeto desenvolvimento dos sistemas. Em uma politica de prevencdo de falhas, assumimos que no hé como eliminar todas as falhas possiveis. Exemplos de falhas imprevisivels so: a mé operago de um sistema o fim da vida util de um componente. Desta forma, €assumido que, eventualmente, iréo ocorrer defeitos no sistema, Entéo, sdo previstos procedimentos manuais de reparo a fim de restaurar o sistema a condicao de servico correto. ( ’ Computagto Distibuica de Alto Desempenho: Redes, Custer e Grids Computacionais Este aspecto faz com que a prevengéo de falhas, por si s6, seja insuficiente para alguns sistemas atingirem a dependabilidade. Motivos que podem explicar a inadequacdo da prevencdo de falhas podem ser exemplificados por: interrupeao do servigo para reparos, que pode se estender por perfodos de tempo inaceltéveis para os usudrios de um sistema de tempo real; para o reparo manual, hé necessidade de se ter acesso ao sistema, 0 que nem sempre é possivel, como, por exemplo, em locals insalubres; o reparo pode representar um custo elevado no caso dos sistemas bancérios, de defesa e de suporte a vida, A fim de minimizar estas consegiiéncias pode-se complementar o uso da prevengéo de falhas com 0 emprego da toleréncia a falhas. Esta téentca faz uso da redundancia para substituir 0 reparo manual do sistema pelo reparo e reconfiguracdo automatizados, 0 que aumenta a confiabilidade e a disponibilidade do sistema. Tolerancia a Falhas O paradigma de toler4ncia a falhas pode ser definido como a habilidade que um sistema tem de apresentar um comportamento muito bem definido na ocorrénela de falhas ativas. © comportamento apresentado pode ser dividido em quatro grandes categorias de tolerancia a falhas, em consondncla com o atendimento (ou ndo) do que se considera ser duas das propriedades comportamentais principais dos sistemas: © Seguranca contra catéstrofes; © Vitalidade (no sentido de permanecer ou no operacional). Defeto seguro (fal safe) Na Tabela 2.1, apresentamos as propriedades do sistema considerando sua seguranca (garantida ndo garantida) vitalidade (operacionalidade garantida ¢ nao garantida). A primeira forma de tolerfncia a falhas, caracterizada pela seguranga e operactonalidade garantida, € a que realiza o mascaramento, empregado para encobrir ou ocultar as falhas. Neste item o servico apresentado pelo sistema no deverd ser modificado pela ocorréncia de falhas, ou seja, 0 sistema como um todo néo deverd apresentar defelto. Logo, o sistema deverd permanecer operacional e em um estado seguro para os usudrios ¢ para o melo Cone 2 sen_(45)_ ambiente. £ a forma mais completa de tolerancia a falhas, a mais desejada e, também, a de maior custo, Alguns autores, ao defintrem toleréncia a falhas, apenas consideram esta forma. ‘Todas as demais formas modificam o servico prestado pelo sistema na ocorréncia de falhas. A forma conhecida como nao tolerdncia a falhas é considerada uma forma extrema de tolerdncia. E a abordagem que apresenta a solugdo mais trivial, com o custo mais reduzido ¢ €a mais frégll. Por esta razdo, ¢ a mals indesejada. Na ocorréncia de falhas o sistema provavelmente apresentaré defelto e, o mais grave, nada poderd ser afirmado quanto ao estado em que o sistema se encontraré apés esta ocorréncia. Podendo o mesmo ingressar em um estado no operacional, ou até mesmo em um estado inseguro. Como opedo em relagéo as duas abordagens anteriores, encontram-se duas formas intermediérias de tolerncia a falhas. Sao estas: @ Aquela que garante que o sistema ir permanecer em um estado seguro, mas nada diz sobre o seu estado operacional, ¢ por isso chamada de defetto seguro; © A segunda forma aquela que garante que o sistema iré permanecer operacional. Ainda que 0 mesmo ingresse, por causa da falha, em um estado inseguro. Esta abordagem é denominada de tolerncia a falhas sem mascaramento, De uma forma geral, a opgio de defelto seguro é sempre preferivel em relago a toleréncia A falha sem mascaramento, uma vez que seguranga na maioria das ocasiées € muito mais importante que permanecer operacional. Podemos tlustrar esta observacdo através de dois exemplos. ‘Como um primeiro exemplo, considere o sistema de controle de um foguete que efetua a ‘explosio do mesmo no ar em caso de desvio da rota. Esta escolha de projeto do sistema € um cléssico exemplo de tolerdncia a falhas do tipo defeito seguro. Observe que esta opedo garante a seguranca da base de lancamento e da populacdo, onde os destrogos poderiam cair em detrimento da operacionalidade. Um outro exemplo que verificamos em nosso cotidiano ¢ um sistema de controle de seméforos nos cruzamentos. Vamos supor que o sistema apresente uma perda de sincronismo, mas que permanega funcionando. Este ¢ um exemplo de tolerdincia a falhas do tipo sem mascaramento, uma vez que a operacionalidade fol garantidae os seméforos continuam funcionando. Todavia, esta opcao de sistema pode apresentar prejuizo de ‘seguranga, uma vez que a perda de sincronismo pode causar situagdes onde aluzverde , esteja sinalizada para ambas as vias do cruzamento. (46) ‘Computago Distribuida de Ato Desempenho: Redes, Custers e Grids Computacionais Para a implementagéo da redundancia, estudos empfricos indicam que as trés formas mais consideradas sdo: a de estrutura, a da informagao e a do tempo. Estas podem ser implementadas tanto em hardware, como em software, conforme o caso. Desta forma, podemos ter um total de seis formas combinadas. Uma classificagio da redundancia, proposta por [PAKSTAS, 2001], ¢ bastante acelta em sistemas tolerantes a falhas € apresentada na Figura 2.21. Redundéncia em Sistemas Tolerantes a Falhas Figura 2.21: Uma classficago de redundancia a falhas. Constderando as formas de redundancia de hardware ¢ software, estas se baselam na replicagdo de partes componentes de um sistema, podendo também considerar até mesmo © sistema como um todo. Réplicas podem ser idénticas em sua constituleéo (ou nao), mas sempre possuem a mesma funcSo. Muitos consideram que esta é a tinica forma de redundancia capaz permitir a tolerdncia de falhas permanentes. Exemplo de redundancia na estrutura baseada em software é a técnica conhecida como N-version programming. A abordagem é considerada a utilizag3o de duas (ou mais) versées de um 86 algoritmo, Estas versées se baselam no mesmo algoritmo programado de forma independente para comparacdo de suas saidas, das quais ¢ escolhido 0 resultado correto. A técnica semelhante em hardware é conhecida como N-modular redundancy. ¢ ao invés de versées de um mesmo algoritmo temos c6plas de um mesmo médulo de hardware. Nem sempre é necessério duplicar um médulo inteiro para se obter toleranciaa falhas. Prova deste fato sao as técnicas que utilizam os cédigos de paridade, tals como o CRC (Cyclic Redundancy Check) e 0 checksum (SUMmation CHECK). A utilizacdo da Copltuo 2 ~ Fundamentos Basicos (@) redundancta na informago pode ser suficiente. Tanto 0 CRC como o checksum se baseiam na aplicagéo da teoria dos cédigos corretores de erro. Estes métodos acrescentam informacao redundante ao contetido original visando permitir a detecgéo a corregao de erros. ‘Os métodos baseados em redundancia no tempo séo caracterizados pela repeticao da mesma atividade uma ou mais vezes. O motivo da repeticao se basela no fato de que a causa do problema € de natureza temporal. Empiricamente esta teorla {4 fol provada, pols a utilizacdo da redundancla no tempo mostra-se mais adequada para detectar erros que resultem da ocorréncia de falhas transtentes. Um exemplo classico de redundancla no tempo € a Fetransmissdo de mensagens que ocorre em protocolos de comuntcagao. Tomando o protocolo ‘TCP (Transmission Control Protocol da arquitetura TCP/IP) como exemplo, na utilizagéo deste protocolo é efetuada uma retransmisséo de segmentos TCP todas as vezes que 0 remetente da mensagem delxa de receber a confirmagio do recebimento pelo destinatérlo. Implementacao de Tolerancia a Falhas Nesta segdo, vamos estudar quais so as atividades normalmente desenvolvidas pelos sistemas na implementacdo da tolerancia a falhas. Nosso escopo até o presente fol a determinagdo de falhas que seriam toleradas ¢ 0 Tespectivo comportamento de um sistema quando das ocorréncias das falhas. Em adicao, enfatizamos que tornar um sistema tolerante a falhas implica o emprego de pelo menos uma das formas de redundancia. Nosso ponto de partida de formas de implementagao de solugGes de tolerdncia a falhas € a detecgao de erros. Esta abordagem é interessante, uma vez que a ocorréncia de falhas nao pode ser observada diretamente, e assim devemos fazer uma dedugéo a partir da presenca de erros. Como os erros sao uma propriedade do estado do sistema, existem testes que podem ser conduzidos a fim de se provar a existéncia (ou ndo) de erros. Em conseqiiéneia, um esquema de tolerancia a falhas sera tao eficaz quanto for o seu mecanismo de detecgéo de erros. Multos pesquisadores concordam que um teste ideal para se detectar a presenca de crros deve satisfazer trés importantes propriedades: © O teste ndo deve ser influenciado pela implementacao do sistema, devendo basear-se apenas na especificagao do sistema; © Deve ser completo e correto, devendo identificar todos os erros de fato existentes; © O teste deve possulr independéncia do sistema com relagao a ocorréncia de falhas, caso contrério a falha que acarreta um erro no sistema pode vir a causar um erro também no teste. (®) Computagdo Distribuida de Ato Desempeno: Redes, Clusters e Grids Computacionals Como verificamos que no mundo real estas propriedades so mutto dificets de serem satisfeitas, ao invés da execucdo de testes ideals normalmente utilizamos os testes conhecidos como testes de aceitacao. Este tipo de experimentos so aproximagées dos testes ideais. Uma observacéo natural € que ndo existem garantias de que os testes de aceitagdo vao ser capazes de detectar todos os erros existentes. © passo seguinte a deteccdo do erro ¢ a recuperacdo do sistema, O objetivo € restaurar © sistema a um estado onde no haja erros detectados e nem falhas que possam ser ativadas, vindo a causar que os erros ocorram novamente. A técnica de recuperagao consiste de duas acées: o tratamento dos erros ¢ 0 tratamento das falhas. O tratamento dos erros (error handling) tem como meta oretorno do sistema novamente para um estado correto. O tratamento pode ser efetuado de duas formas: © Rollback - a implementagao desta técnica visa levar o sistema de volta a um estado anterior identificado como correto, a partir de alguns pontos de controle (checkpoints) existentes no sistema; © Rollforward - este método endereca uma solug4o que leva o sistema a um estado novo, no qual ainda nao esteve, sem erros detectaveis. Por outro lado, o tratamento das falhas (fault handling) tem por objetivo impedir que as falhas !dentificadas venham a ser ativadas novamente, podendo causar erros. Para realizar sua tarefa com sucesso, 0 tratamento das falhas € usualmente divido em quatro etapas: © Diagnéstico das falhas — deve localizar e identificar 0 tipo da(s) causa(s) do(s) erro(s); @ Isolamento das falhas - realiza a exclusdo fisica (ou légica) dos componentes diagnosticados com falhas ¢ com participagao no servico do sistema; © Reconfiguracéo do sistema — efetua a ativagto de um componente em reserva, ou a redistribuicdo de tarefas entre os componentes restantes; © Reinicializagao do sistema — deve verificar, atualizar e gravar a nova configuragéo do sistema. 7 Como passo posterior ao tratamento das falhas, a etapa de manutengéo corretiva do sistema tem como fim a remogdo das falhas encontradas ¢ isoladas, A atividade de manutengao no é parte integrante do escopo da abordagem de tolerancia a falhas. A manutengio tem como caracteristica intrinseca a participagéo de um agente externo. Interessante 0 leitor observar a importdncta da escotha da hipétese de fatha. Esta escolha influencia a implementacdo das técnicas de detecgdo e tratamento de erros, além do tratamento das falhas. Em adi¢do, vale lembrar que a abordagem de tolerdncta a falhas deve ser tomada como recurstua, ou sefa, a pr6pria técnica deve ser tolerante a fathas. Considerando os sistemas distribufdos, como arquitetura de execugdo de aplicagoes, a abordagem de tolerancia a falhas deve com certeza fazer parte do escopo do projeto de qualquer sistema. Indimeras pesquisas tém sido desenvolvidas visando o estabelecimento de estruturas ¢ nivels de servigos de tolerancia a falhas. Na Figura 2.22 apresentamos a proposta de [JALOTE, 1994], na qual um sistema distribufdo é estruturado em diferentes nivels de abstrago, cada qual provendo diferentes servicos de tolerdncia a falhas. Sistema Distribuido continu Software apicatvo tlerane a falhes. soaks i de projet Teeratas wes Contnuidade de servigo 0b os ns Consisténcia sob defeto ‘em nds ‘Componentes Bisons Processaiores Fal Safe, Amaveamento conve, Comeicagtes cots, loos sineroiaos, tengo Figura 2.22: Nives de tolerdncia a falhas em um sistema distibuido, Na proposta de niveis de tolerdncia a falhas ilustrado na Figura 2.22, os nivels inferiores, denominados de componentes bésicos, provém os elementos para a implementagao de servicos tolerantes a falhas. Os nfveis compreendidos sob a classificacdo consisténcia sob defeito em nés ocupam-se de servigos que séo necessérios & garantia da consisténcia, quando da ocorréncla de defelto em nés do sistema. Apesar dea acdo atOmicacontribuir (30) (Computagto Distribuida de Ako Desempenho: Redes, Clusters e Grids Computacionais ara agarantia da consisténcla, esta implica o cancelamento do que estava em andamento e tinha sido interrompido por algum defeito. A continuidade de servico sob defeito em nés contorna esta situago, preocupando-se em garantir que, uma vez inielada uma ago, a mesma sempre termine, ainda que defeitos venham a ocorrer. Finalizando, a continuidade de servico sob falhas de projeto leva em consideragao que podemos estar com todos os demais niveis funcionando corretamente, mas que um problema exista no aplicativo. Desta forma, este nivel prové uma abstragéo na qual o software aplicativo é capaz de tolerar suas proprias falhas. Remogao de Falhas ‘Uma solugéo interessante no sentido de obtengio de dependabilidade € a opgéo conhecida como remogéo de falhas. Esta técnica pode ser aplicada tanto na fase de desenvolvimento ‘como, também, ao longo da vida operacional do sistema. A remogao de falhas na fase de desenvolvimento é realizada através das etapas de verificagdo, diagn6stico € correcéo. Na fase de verificacao, ocorre o processo de checagem para se saber se 0 sistema atende acertas propriedades, estas denominadas de condigées de verificagao (€ comum, também, encontrarmos na literatura a verificacdo das especificagées de um sistema denominada como validagao). Caso seja constatado que as condigées no so atendidas, entao a segunda etapa ¢ efetuada, esta mostra o diagnéstico das falhas que acarretaram o néo atendimento. A Gltima etapa é caracterizada pela execucdo da correcao do sistema, para eliminagdo das falhas diagnosticadas. De uma maneira geral, as técnicas de verificacdo podem ser classificadas em estaticas € dindmicas. A verificacdo estitica verifica o sistema sem chegar a colocé-lo em execucéo. Por outro lado, a técnica conhecida como verificacéo dindmica ativa o sistema para conferir as condigées de verificagéo. Todavia, para que tal situacdo seja realizada, € importante fornecer ao sistema as entradas que forem necessérias para uma execucéo, seja esta de natureza ficticia ou empirica. Averificagio dos mecanismos de toleréncla a falhas é um importante aspecto da remog3o de falhas. Durante a execugao dos ensaios com o sistema, pelo uso de uma técnica conhecida como injegao de falhas (fault injection), pode-se criar falhas programadas a fim de colocar & prova a eficicla dos mesmos. Por outro lado, a remocao de falhas 20 Jongo da vida operacional do sistema é realizada através de atividades de manutencéo (podendo o sistema estar em funcionamento ou parado). As duas atividades de manuteng4o que comumente consideramos sao: pte 2 -pena aos (59) ‘@ Manutengio corretiva - tem como objetivo remover fathas diagnosticadas no sistema, empregando, por exemplo, uma acéo de tratamento das falhas, da toleranciaa falhas; ‘© Manutengao preventiva - que tem como meta descobrir ¢ remover falhas latentes no sistema. Previsao de Falhas A previsio de falha é diltimo meio utilizado para se alcangar a dependabilidade. Esta opgéo considera uma avaliagéo do comportamento do sistema com relagdo a ocorréncia € ativagao de falhas. Esta avaliacdo possui dois aspectos, um qualitativo € outro quantitativo, No caso qualitativo, busca-se identificar, classificar e ordenar por importancia as causas de defeito nos sistemas. Por outro lado, o paradigma quantitativo concentra- se em mensurar em termos probabilisticos 0 atendimento aos atributos da dependabilidade. Tanto a avalia¢do qualitativa quanto a quantilativa tém como meta a obtengéo de dados que fagam a validagao das escolhas feitas na constitulgéo da estrutura de dependabilidade do sistema. Estas abordagens podem ainda subsidiar as modificacées estruturais para que a sua efiedcia (ou sua eficiéncia) seja melhorada. Atributos (Com relagéo aos atributos de dependabilidade, € convencional o uso de medidas probabilisticas para enfatizar seus pesos relativos. A razo para tal basela-se na natureza no deterministica das circunsténcias dos atributos (disponibilidade, confiabilidade, seguranca, confidenclalidade, integridade e reparabilidade). Desta forma, dependendo da aplicacdo considerada, alguns atributos deverdo ter um maior ou menor peso relativo. A seguir apresentamos importantes atributos de dependabilidade ¢ suas probabilidades respectivas. Disponibilidade A dispontbilidade instantanea € 0 atributo definido como a probabilidade A(t) de um sistema apresentar um servico correto num determinado instante de tempo t. Entretanto, na anélise da disponibilidade, normalmente estamos interessados no comportamento de um sistema ao longo de determinados perfodos de tempo. De uma outra forma, estamos preocupados em observar a alternancia entre periodos em de servico correto € ‘os periodos que o sistema estava sob reparo. O fator importante é saber a fragao de tempo na qual um sistema deveré ter condigées de apresentar servigo correto. 0 lmite de dispontbilidade o de um sistema é definido como o limite de A(t) quando t tende a infinito, ou seja: a= lim AQ) (2) Computarto Distrbuida de Alto Desempenho: Redes, Custers e Grids Computacionais £ comum o uso de métricas do tempo médio para a ocorréncia de defeito (Mean Time To Fail-MTTF) e 0 tempo médio para reparo (Mean Time To Repair -MTTR), para expressar o limite de disponibilidade a de um sistema. Assim, temos: MTIF MTTF + MTTR Confiabilidade A confiabilidade, como atributo, € quantificada como a probabilidade Rit). Deve ser eniendida como a métrica que avalia o quanto um sistema pode apresentar um servigo correto continuadamente durante um intervalo de tempo t, dado que este sistema apresentava servico correto em t=0. De uma outra forma, a conflabilidade pode ser traduzida como a probabilidade de o sistema ndo apresentar defeito durante o intervalo de tempo considerado. Se X for tomado como o tempo para o qual o sistema apresente defeito, este parametro é uma variével aleatoria continua uma vez que X ndo pode ser previsto a partir de um modelo deterministico. Na andlise de sistemas computacionais, a varldvel X possut fungéo de distribuleao exponencial. A confiabilidade R(t) deve entdo ‘ser expressa como: RO=P(X >1)=e™ © parametro A, denomtnado de taxa de defeito do sistema, possut um valor constante devido a propriedade de auséncia de meméria da distribuicéo exponencial, que desconsidera o desgaste do sistema. Uma outra forma de se expressar a conflabilidade de um sistema, utiliza a métrica de tempo médio para a ocorréncia de defeito (Mean ‘Time To Fail - MTTF), que corresponde ao tempo de vida esperado do sistema: 1 MTIF = ELX]= a A conflabilidade expressa em MTTF da férmula anterior, representa o trabalho de um sistema isoladamente. Contudo, um sistema € formado por componentes que, por sua vez, podem ser considerados subsistemas formado por componentes ¢ assim sucessivamente. Entdo, a conflabilidade de um sistema depende de um somatério relativo aos componentes deste sistema. De uma forma geral, extstem duas formas de agregacao dos componentes de um sistema: a serial e a paralela, Para a conflabilidade em série tem-se a probabilidade R(t) igual a: RO=ROXR(O xx RQ = oO ‘Copiulo 2 — Fundamentos Bsicos (3) Por outro lado, o MTTF serial ¢ expresso pela equagdo abaixo: MITE sg Ss Aequacao de MTTF,,,,, indica que a confiabilidade de um sistema em série € menor que a confiabilidade de qualquer um de seus componentes. Quando a agregac4o de um sistema € efetuada de forma paralela, a confiabilidade Rit) do ambiente deve levar em consideragdo que seus n componentes apresentem defeito. Esta observacao € espelhada na expressao da probabilidade: RO) -T]l-2.0] i Podemos simplificar a equacao, assumindo que todos os componentes possuam confiabilidade com distribuicao exponencial e mesmo parametro 2, ¢ assim teremos a formula acima equivalente a: Para expressar a conflabilidade de um sistema paralelo em termos de MTTF, terem R()=1-[1-e7 1 eI MIT ropuao =~ D7 porte i Com a confiabilidade expressa na probabilidade de MTTF,,.,,,; Podemos concluir que a confiabilidade de um sistema em paralelo € maior que a de seus componentes. Em tolerdncia a falhas, o emprego de componentes redundantes em paralelo, operando simultaneamente, com o intuito de aumentar a conflabilidade de um sistema, € conhecido como redundancia ativa (active redundancy). O MTTF € 0 expresso pela formula de conflabilidade em paralelo. Uma outra forma de organizagao de um sistema, também ‘empregada em tolerdncia a falhas, € a de redundancia em reserva (standby redundancy). Neste método apenas um dos componentes redundantes, denominado de primérto, fica ‘operacional ¢ todos os demais permanecem inativos. Quando o primario apresenta defeito, um dos componentes em reserva é ativado de imediato ¢ passa a prestar 0 servigo no lugar daquele. () _Computagto Distibuita de Alto Desempento: Redes, Clusters e Grids Computacionais © tempo médio para a ocorréncia de defeito em um sistema em paralelo do tipo redundancia em reserva, considerando distribuicées exponenciais, € expresso pela seguinte formula: Seguranga © atributo seguranca € considerado sob dois aspectos, contra catastrofes e a seguranca convenctonal. No primeiro caso, voltado contra catéstrofes, o atributo ¢ expresso como a probabilidade S,(t) de um sistema néo apresentar defeito que acarrete conseqiiéncias catastréficas contra os usudrios (ou contra o melo ambiente) em um intervalo de tempo t No caso da seguranca convencional, esta probabilidade ¢ obtida através da combinagéo dos atributos: disponibilidade para usuérios autorizados, pela confidenctalidade ¢ pela integridade. Entéo, a seguranca pode ser definida como a probabilidade S2(t) de que nao ‘ocorra acesso ou manipulagéo indevidos no estado do sistema, em um intervalo de tempo t. Confidencialidade Aconfidencialidade de um sistema tem sua probabilidade C(t) de nao ocorrer divulgagao néo autorizada de informagao, em um intervalo de tempo t. Integridade A probabilidade I(t) traduz 0 atributo de integridade de nao ocorrerem alteragées tmpréprias de estado em um sistema, em um intervalo de tempo t Reparabilidade © grau de reparabilidade de um sistema possul seu atributo mensurado pela probabilidade M(t). Esta métrica avalia o quanto um sistema pode ser restaurado, retornando ao estado de servigo correto no tempo t, dado que o mesmo apresentou defeito em t=0. Em resumo, é a capacidade que um sistema tem de passar por reparos e modificagées. Le Na literatura o lettor ird encontrar o termo sobrevivéncia do sistema que é diferente de dependabtiidade. Podemos dizer que abordagem de sobrevivéncia. de um sistema pode ser vista como uma propriedade que um sistema tem de Copitlo 2 ~Fundamentos sins (3s) continuar provendo servigo, possivelmente degradado ou modificado, sob determinadas condigées hostis de operagao. Este termo tem como origem a utilizagao de sistemas na drea militar. Revisdo do Capitulo ‘Neste capitulo apresentamos alguns fundamentos de arquitetura de computadores, visando pavimentar os caminhos para os préximos cap{tulos sobre clusters grids computacionais. Com este objetivo foram introduzidos os conceitos dos multiprocessadores, multicomputadores, SMP. NUMA, ccNUMA e MPP Abordamos ainda de forma preliminar as configuragbes distribuidas, clusters e grids computacionals. A Figura 2.23 ajuda a sintetizar as arquiteturas computacionais com miltiplos processadores, que foram o foco ao longo do capitulo. MNO Figura 2.23: Arquiteturas computacionais com mitiplos processadores, ‘A classificagao ¢ as técnicas de escalonamento estéticas ¢ dinamicas foram discutidas, visto a importancia destas politicas para os sistemas distribuidos. Finalizando o capitulo, estudamos a teoria de dependabllidade dos amabientes distribuidos. Nestas segées foram apresentados os meios, os atributos e as ameagas de um sistema ‘visando entender estes aspectos caso o sistema apresente um mau funcionamento. Fundamentos Relevantes As dreas de arquitetura de computadores. escalonamento de processos e dependabitidade de sistemas so t6picos bastante complexos. Para que o leltor demonstre seu bom conhecimento dos ambientes distribuidos € necessério conhecer os acronimos € fundamentos relacionados a seguir. (6) Compt Disribida de Ato Desempenbo: Rees, Custer Gis Computacinas Balanceamento de carga ‘Massively Parallel Processor ‘coNUMA MIMD Cluster Miso Deteito Ht MP Ero. Politica de infarmagéo, transferéncia e colocagao_ Falha ‘siSD =: Exercicios Propostos 1. 10, lL. Explique as trés formas possivels de se melhorar o desempenho de uma determinada aplicagio. Apresente os conceitos de multiprocessadores e multicomputadores, diferenciando 0s aspectos de acoplamento forte e fraco. Explique o fator de escalabilidade nos multiprocessadores e nos multicomputadores. Faga um dlagrama explicando de uma forma genérica como € o compartilhamento de meméria nos multiprocessadores ¢ multicomputadores. Qual a diferenca de abordagem entre os diagramas da Figura 2.2? Qual a diferenca de abordagem entre os diagramas da Figura 2.4? Explique o que ver a ser um computador com arquitetura SMP. Apresente um diagrama genérico da arquitetura. Qual a diferenga entre as arquiteturas NUMA e ccNUMA? © que vem a ser uma configuracéo massivamente paralela? Considerando as arquiteturas SMP, NUMA, ccNUMA e MPR faca uma tabela estabelecendo caracteristicas tats como escalabilidade e acoplamento? Pesquise na WEB servidores denominados de pequeno porte ¢ descreva suas caracteristicas de Interligagao e escalabilidade quanto aos processadores e meméria. Cina 2dr es_(5p)_ 12. © que vem a ser um metacomputador ? 13, Descreva o que vem a ser a granulartdade de uma aplicacdo. 14, Defina uma arquitetura de cluster, apresentando caracteristicas diferenciais do ambiente. 15. Defina uma arquitetura de grid, apresentando caracteristicas diferenciais do ambiente. 16, Pesquise e descreva o funcionamento diferencial de aplicagbes que executam sob ambientes Napster, KazaA e Seti@home em relagao & aplicagao de servico de busca na Web. 17. O que vem a ser 0 processo de escalonamento? 18. Apresente de uma forma geral a taxonomia de escalonament 19. Diferencie um escalonamento estatico de um outro dindmico. 20. Apresente a diferenca entre escalonamento ¢ balanceamento de carga. 21, Faca um diagrama de uma arquitetura de cluster qualquer. Estabeleca neste diagrama a forma de escalonamento de tarefas para a configuragéo. 22. Explique o que vem a ser um problema NP-Completo. 23. Quats as politicas que sao adotadas para o projeto e implementacdo de um escalonador de tarefas? 24. Explique o que vem a ser o paradigma de dependabilidade. 25, Apresente um diagrama de relacdo entre falha, erro e defeito. 26. Qual a relacdo entre a falha, o erro ¢ o defelto em um sistema distribuido? 27. Quals as formas de identificagéo de um defeito em um sistema distribuido? 28. Apresente os melos para um sistema distribuido atingir dependabilidade. 29. Explique o que vem a ser toleréncia a falhas ¢ suas formas de implementacdo. 30. Explique a razdo de utilizagéo de distribuigéo de probabilidade nos atributos de dependabilidade. 81. Diferencie a prevengéo de falhas ¢ a toleréncia a falhas. Referéncias Na literatura de arquitetura de computadores e sistemas distribuidos podemos encontrar iniimeras fontes complementares ao material apresentado neste capitulo. Todavia, 0 leitor deve estar atento ao fato de que usualmente uma leitura adictonal sobre os t6picos de arquiteturas ¢ ambientes distribuidos ¢ encontrada em livros diferentes. Desta forma, decidimos sugerir de uma forma distinta a leitura para as duas areas. ©) ‘Computagdo Distrbuida de Ato Desempento: Redes, Clusters e Grids Computacionais Quanto a arquitetura de computadores, boas referéncias sio [CULLER, 1999], IPATTERSON, 1997]. O material apresentado por estes livros auxilia em uma maior especializacéo em termos da abordagem de hardware. Por outro lado, quanto aos principios de sistemas distribufdos ¢ interessante mencionar as referénclas clissicas de [BUYYA, 1999}, [COULOURIS, 2000] e (TANENBAUM, 20021. Olettor deve considerar [SHIRAZI, 1995] ¢ [CASAVANT, 1988] como indicagSes bésicas para um estudo mats detalhado dos aspectos relativos ao escalonamento € balanceamento de carga. A leitura de [AVIZIENIS, 2001] e [JALOTE, 1994] é importante para um conhecimento mais detalhado sobre 0 t6pico de dependabilidade. Com uma tendéncia crescente de utilizagdo dos sistemas distribuidos, este assunto deve ser tratado com bastante cuidado. ‘Uma outra sugestdo para melhor acompanhar a parte estatistica dos problemas relacionados & dependabilidade ¢ [BARBETTA, 2004]. Bibliografia e Fonte de Consulta AVIZIENIS, Algirdas; Laprie, Jean-Claude; Randell, Brian. Fundamental Concepts of Dependability. Research Report NO1145, LAAS-CNRS, April 2001. BARBETTA, P, Reis, M.M., Bornia, A C., Estatistica para Cursos de Engenharia ¢ Informatica, Atlas, ISBN 85-224-3765-3, 2004. BUYYA, Rajkumar (Ed.). High Performance Cluster Computing: Programming and Applications. Prentice-Hall, 2v. ISBN 0-13-013785-5, 1999, ‘CASAVANT, THOMAS, L.; KUHL, JON, G. A Taxonomy of Scheduling in General-Purpose Distributed Computing Systems. IEEE Transactions on Software Engineering, v. 14, n. 2, p. 141-154, Feb. 1988. CHARLOTTE, Project, Disponivel em Setembro de 2004: http:/www.cs.nyu.edu/milan/ charlotte/frmain html. COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T,; Distributed Systems: Concepts and Design (3rd Edition), Addison Wesley: ISBN: 0201619180, 2000. - _ CULLER, D.E.; SINGH, J.P; Parallel Computer Architecture - A Hardware/Software Approach, Morgan Kaufmann, ISBN 1-55860-343-3, 1999, FLYNN, M, Some Computer Organizations and Their Effectiveness, IEEE Transaction on Computers, Vol. C-21, pp. 94, 1972. ssnemes (5) JALOTE, PANKAJ, Fault Tolerance in Distributed Systems. Englewood Cliffs, NJ, USA: Prentice-Hall, 432p. ISBN 0-13-301367-7, 1994. MOORE, G. E. Crammingmore Components onto Integrated Circuits, Electronics, Volume 38, Number 8, April 19, 1965. Disponivel online 2004 em: ftp://download intel.com/ researclysilicon/moorespaper:pdf. PAKSTAS, ALGIRDAS; SCHAGAEV, IGOR: ZALEWSKI, JANUSZ. Redundancy Classification for Fault Tolerant Computer Design. In: IEEE International Conference on Systems, Man and Cybernetics, Tucson, Arizona, USA. p. 3193-3198, 2001. PATTERSON, D. A.; HENNESSY, J.L. Computer Organization and Design Second Edition: The Hardware/Software Interface. Morgan Kaufmann; 2nd edition, ISBN: 1558604286, 1997. PFISTER, G-F In Search of Clusters - The Ongoing Battle in Lowly Parallel Computing, Second Edition, Prentice-Hall, ISBN 0-13-899709-8, 1998. SHIRAZI, BEHROOZ A.; HURSON, ALI R.; KAVI, KRISHNA M. (Eds.) Scheduling and Load Balancing in Parallel and Distributed Systems. Los Alamitos, CA, USA: IEEE Computer Society, 503p, ISBN 0-8186-6587-4, 1995. ‘TANENBAUM, A JAN STEEN, M. Distributed Systems: Principles and Paradigms. Prentice Hall; 1st edition, ISBN: 0130888931, 2002. TOPS5OO, site http:/www.top500.org 2005. fT Maes Hn am SIS Sg TRH EUR ee LCCRI I Ca [oy (@) ‘Computocto Distrbuida de Alto Desempenho: Redes, Clusters e Grids Computacioncis A utilizagéo das redes de computadores para interligacdo de sistemas computactonals tem evoluido a cada dia no sentido de prover um melhor suporte para as aplicagées distribufdas. Contudo, a disponibilidade de mals recursos na rede de comuntcagéo multas vezes nao tem sido traduzida na mesma propor¢éo em melhoria de desempenho para as aplicagées. Multas vezes por desconhecimento profissional de novas abordagens técnicas, dispositivos inadequados de geracées 4 ultrapassadas de redes sao empregados erroneamente em novos projetos de distribuigéo de recursos e pacotes de software. Desta forma. neste capitulo vamos tratar de novas tecnologias que se propoem a servir como um diferencial nos aspectos de processamento de rede, interligagao de sistemas computacionais ¢ comunicagao mals eficlente entre as aplicagées. Na literatura comercial, os esforcos envolvidos no desenvolvimento deste novo cendrio, visando melhorar a comuntcacdo fim-a-fim das aplicagées, so denominados de redes de nova geracdo (Next Generation Networks - NGN). Entretanto, como poder ser verificado neste capitulo, acreditamos que ¢ demastadamente simples a utilizacao de um tinico acrénimo para representar todo um conjunto de esforgos complexos na melhoria de desempenho das redes. Modelo Tradicional de Rede. O grande crescimento da oferta de largura de banda, verficado nos éiltimos anos, tem impulstonado a pesquisa € o desenvolvimento de novas tecnologias para melhor aproveitar os recursos disponibilizados pelos melos fisicos de transmisséo. Importante que o leitor entenda que a largura de banda, medida em MHz, pode ser fornecida por concessionarias de telecomunicagées, empresas de TV a cabo e até mesmo por concessionérias de energia elétrica. Entretanto, a tradugéo da largura de banda em taxa de transmisso efetiva (medida em Mbps) para os usuérios finais de aplicagées, requer a utilizagéo de melhores interfaces de rede, sistemas de interconexoes de alta velocidade ¢ protocolos leves mais adequados aestenovo cendrio. Em outras palavras, a metaa ser atingida ¢ fazer com que as aplicacées possam ser executadas com um methor desempenho, usando matores volumes de dados ¢ fazendo uso de tecnologlas mais eficientes comparadas com as j4 existentes. Algumas concesstondrias de energta elétrica em nivel internactonal Ja disponibilizam o acesso 4 Internet através de seus sistemas de distribuigéo de Capito 3 — Processadores de Rede, Dispostvas de Interconexdo e Protocolo Leves, (a) energta. O que significa para o usudrio final que Jé é possivel o acesso Iégico a um provedor de servigos de Internet utiltzando a concesstondria de energla. No Brasil, {4 sdo verificados alguns esforcos, ainda que bem localtzados, para utilizagdo desta tecnologia. O acesso @ Internet via uma empresa de energia é uma opgdo interessante de inclusdo digital. A cobertura das concessiondrias de energia é bastante superior geograficamente, quando comparada com a abrangéncia das empresas de telecomuntcagao ¢ TV a cabo. Todavia, alguns problemas ainda devem ser analisados para a utilizagdo efettva como uma ‘opeao em larga escala da rede elétrica. Na Figura 8.1 apresentamos um modelo tradicional de comunicagéo de rede entre duas aplicag6es, levando-se em conta que as mesmas estdo sendo executadas em computadores diferentes. — = Operecionel Operacionel Teel eels oS a asieeesenza Figura 3.1: Modelo tradicional de comunicagao de rede entre aplicagées. Neste tipo de modelo, uma determinada aplicacéo local faz uma chamada ao sistema operacional, que esta sendo executado pelo processador do computador local. O processador de uso geral do computador local (conhecido na 4rea de arquitetura de computadores como GPP - General Purpose Processor), por sua vez realiza a comunicagao com a interface dé rede (denominada pelo acrénimo NIC ~ Network Interface Card). ANIC local efetua a comunicagio com a rede (podendo ser uma rede local (LAN), ou geograficamente distribufda (WAN)), a qual é responsével pelo envio das mensagens para a NIC do computador onde esta a aplicagéo destinataria. No computador destinatario, a NIC daquela configuragao val recebendo as mensagens e solicitando ao sistema operacional que (a) Computasto Distribuida de Alto Desempenho: Redes, Custerse Grids Computacionais Tepasse & aplicagdo destinatérla as mensagens recebidas. Deste tipo de comunicagéo das redes convencionais existentes, alguns aspectos interessantes a serem observados S40: © Aaplicagao local que deseja se comunicar com uma aplicagéo remota, caracterizando uma t{plea operagéo de rede, concorre em termos de prioridade e uso de recursos (processador ¢ memeéria) com outras aplicagées que solicitam servicos € recursos locais. Em outras palavras, uma aplicagdo de rede compete para utilizar a interface de rede com outros aplicativos tais como uma chamada a um editor de texto ou uma lettura-gravacdo de um determinado arquivo. A razéo da competicao deriva do fato de que os computadores usualmente possuem apenas um GPP (processador de uso geral), que € responsdvel pela execugdo de um sistema operacional onde os protocolos de comuntcagao estdo localizados; © Nao € efetuado nenhum processamento mais efetivo na interface de rede, que tem como fungao apenas efetuar 0 acesso ao melo ¢ fazer a comunicagéo com 0 protocolo de rede que esté no sistema operacional da maquina. Lembrando ainda que esta comuntcacdo entre interface de rede e sistema operacional pode, também, estar sob acirrada competigio para utilizagéo de servicos e recursos com outros aplicativos locals. Para a efetiva transferéncia de mensagens entre a interface de rede ¢ a aplicagao final, so necessérios inimeros armazenamentos temporérios em meméria. Esta abordagem de rede € multas vezes denominada como primeira geracao de rede, embora ndo exista até o momento uma classificagao formal de consenso. Nesta geracdo temos somente o reconhecimento de quadros elétricos ¢ enderegos de placa sendo tratados elo dispositivo de rede do computador, De uma outra forma, podemos imaginar que todo orestante do processamento é efetuado pelo processador de uso geral (GPP) do computador. Na Figura 3.2, apresentamos a forma convencional de processamento das NICs da primeira geraco de redes, que representa uma outra manetra de visualizar a Figura 3.1. Salta —a |i. eto Ered — eoorhes nesta econhecin ‘de quaérs de guaros enderegas ender Figura 3.2: Processamento de rede na 1# geragao de redes. CCapituo 3 ~ Processadores de Rede, Dispositivos de Interconexdi e Potocolos Leves. ( 5) Aplicagées e Interfaces de Rede Convencionais Oleitor j4 deve ter observado que ndo sé a oferta de largura de banda tem crescido, mas também que seu custo tem diminuido. A queda acentuada nos custos para utilizagio dos meios de transmissao tem viabilizado ¢ impulsionado surgimento de novas aplicagées que se beneficiam deste quadro. Exemplos de aplicagbes que se encaixam nesta categoria so: © VoIP (Voz sobre IP) - a abordagem desta aplicagao, a cada dia mais popular, é a utilizagdo da rede de computadores para a transmissao de voz. Como um exemplo, 0 usuario pode utilizar 0 seu préprio acesso a Internet para falar com uma outra pessoa em um local remoto; @ Transmissio de Audio ¢ Video - torna-se mais comum, quando da existéncia de uma infra-estrutura eflctente, o uso da rede de computadores para a transmissdo de 4udio e video. Um usudrio ligado a Internet pode usar seu computador como um equipamento de entretentmento para assistir videoclipes e filmes, em adigao ao acesso as bibliotecas digitais com contetidos mais formats. © Aplicagées Fim-a-Fim este tipo de aplicacdo, multas vezes denominada de P2P (fim- a-flm em portugués e confundida muitas vezes com ponto-a-ponto), permite que uma. aplicagao residente no computador do usuério possa submeter uma larefa para um outro computador (ou até conjunto de computadores). Um exemplo classico deste tipo de aplicagao € a tarefa de buscar vida extraterrestre. Atualmente o aplicativo P2P mais conhecido ¢ SETI@HOME [SETI@HOME, 2005]. Este pacote de software permite ‘a execugao de dados coletados no espaco em seu computador. A partir do instante em que seu protetor de tela comega a executar, este evento é uma indicagao para a porcdo local do software para uso do seu computador. Internacionalmente tem sido verificado um grande esforco de desenvolvimento de aplicagées que utilizem uma abordagem. semelhante no sentido inverso. Em outras palavras, intimeras empresas de software estio desenvolvendo aplicativos que permitam que o computador do usudrio seja 0 elemento respons4vel por solicitar uma tarefa para inimeros outros computadores. Importante lembrar que a execugio remota nao se restringe a uma busca, mas efetua um trabalho especifico. Imagine que vocé deseja fazer 0 envelhecimento de uma pessoa a partir de um retrato. Uma vez que a foto esteja dentro do seu computador vocé pode submeter esta tarefa de envelhecimento para inimeros computadores na Internet. Desta forma, a execuséo seré mals rapida, precisa e o resultado final deverd ser enviado para seu computador. (@) Computagto Distibuid de Alto Desempento: Redes, Clusters e Grids Computacionals | Rta ean Uma configuragao ponto-a-ponto refere-se a ligagdo entre dots nés em uma determtnada rede. Por outro lado, a abordagem fun-a-fim refere-se ao fato de que uma aplicagdo se comunica direto com outra, podendo estar sob uma rede ponto-a-ponto, ou nao. © Aplicagées VPN (Virtual Private Network) ~o conceito de redes virtuals privadas para aplicagées € um diferencial crescente que operadoras de servigos de Internet € telecomunicagées a cada dia oferecem com mais qualidade e menor custo. Para o programador da aplicacéo o entendimento ¢ de que existe uma forma de ligacéo que faz com que seu local de trabalho fisico possa estar situado em um estado e seus usuérios em outros estados (ou até pafses) diferentes. Podemos considerar esta solugio voltada para a drea de Infra-estrutura, uma vez que pode prover uma reducéo no custo, malor seguranga ¢ um acesso remoto mais facil As aplicagGes. Contudo, estes fatores podem representar um diferencial interessante para os programadores de aplicativos na fase de projeto ¢ implementacéo de solugbes para seus usuérios finals. (Os exemplos de aplicagées que apresentamos acima com certeza podem ser considerados Pequenos pontos em um imenso untverso que podemos visualizar pela frente, assumindo a disponibilidade de maiores larguras de banda. Entretanto, para que se possa atingir um grau aceltével de desempenho destas aplicagées, novos paradigmas de interface de rede so necessérios, Aplicagées que solicitam servicos diferenctados, qualidade de servigo, seguranca diferentes fungGes de gerenciamento requerem uma malor quantidade de processamento. Desta forma, € necessirio 0 uso de interfaces de rede que possam responder a estas solicitagées de uma forma mais répida e ainda atendendo a suas demandas especificas. Como comentamos no Capitulo 2, os processadores comecam a atingir limites néo previstos pela Le! de Moore. Em outras palavras, nao tem sido verificado um desenvolvimento exponencial crescente dos processadores. Esta tendéncia nos sinaliza que devemos ter uma alternativa para minimizar o problema de baixo rendimento de Processamento, localizado no processador central dos computadores, para aplicagées que utilizam a rede. Uma solucéo natural € a utilizacao de uma interface de rede com poder de processamento. Esta abordagem € semelhante ao processamento gréfico executado em qualquer computador moderno. Nestes existe uma meméria dedicada e até mesmo processadores especificos so usados para execucéo de tarefas de visualizacao. As implementag6es cléssicas para processamento de aplicagées em rede usualmente 80 baseadas em dispositivos do tipo FPGA (Field Programmable Gate Arrays) ¢ dos ‘Capitulo 3 —Processadores de Rede, Dispostivos de Interconexdo e Protoclos Leves (@) GPP As implementagSes em FPGA sao utilizadas para o processamento de baixo nivel, enquanto o método GPP é empregado para processamento de alto nivel. Em outras palavras, imagine um equipamento com um FPGA que é caracterizado pela tmplementacao especifica sendo efetuada no nivel de hardware. Por outro lado, um exemplo cléssico de uso do GPP é a situagao onde temos uma aplicagéo de um computador pessoal fazendo acesso a uma rede. O processador do computador trabalhando Junto com a interface de rede satisfaz as requisig6es da aplicacZo, todavia efetuando um processamento de mais alto nivel. Em um cenério de implementacéo com um GPP. temos os servigos de acesso ao meto (Medium Access Control - MAC) e fisico na interface de rede, enquanto que os servicos de rede até a aplicagao vao sendo efetuados pelo GPR. Na Figura 3.2, ilustramos de uma maneira sintetizada a arquitetura TCP/IP de redes onde o leitor pode ter uma melhor visualizacao da abrangéncla de atuagio da interface de rede e do GPR. FP, Telnet ONS, NEB, XDR, FP MAC ~ Controle de acessa zo mio (Grompls: Ethernet Tokar Fng) Conacores Cabos (Gres R145 a par tanga Figura 3.3: Limites da NIC © GPP na arquitetura TCP/IP. Processadores de Rede ‘Nos tiltimos anos, tem sido verificada uma grande tendéncia no desenvolvimento e utilizagao de aplicativos de rede. Todavia, em muttas organizagdes ainda temos ambientes de rede trabalhando com as chamadas abordagens convencionals. Nestas configuragdes, além dos problemas que menclonamos em “Modelo Tradicional de Redes”, so verificadas retengdes evidoas politicas de geréncla e seguranca das organizagées. Em outras palavras, as aplicagoes (@) ‘Computagto Distribua de Alto Desempento: Redes, Clusters e Grids Computaconals dos usuarios si submetidas ao processamento de pacotes de firewall ¢ tradugao de enderegos (NAT - Network Address Translation), que acrescentam um retardo as aplicagdes de rede. O desejavel para melhorar o desempenho das aplicacées de rede € que o processamento de tals requisig6es possa ser efetuado de uma maneira mais prioritaria por um processador dedicado as tarefas de rede. Em outras palavras, as redes de nova geracéo caracterizam-se por dar uma maior prioridade para as aplicacées de rede com a utilizagdo dos chamados processadores de rede (Network Processors — NP). Os processadores de rede sdo dispositivos encontrados em roteadores, dispositivos de rede (switches) ¢ inter- faces com 0 objetivo de acelerar o processamento das solicitagdes as redes. Antes de atingirmos o desejével desempenho de processamento de rede, que representa todo 0 processamento de rede ser efetuado em um processador dedicado na placa, assamos por uma segunda geracdo de sistemas de rede, A Figura 3.4 tlustra que nesta _geragdo temos 0 processamento de quadros elétricos, enderegamento de rede, classificagao e reencaminhamento de pacotes sendo efetuados na placa. Ao processador central, cabe somente 0 controle, e tratamentos de exceg6es so atribuidos para processamento. Figura 3.4: Organizacao de processamento de rede na 2* geracio de redes. Na Figura 3.5, descrevemos de uma forma geral uma nova abordagem de interagdo entre as aplicacées de rede. A forma de comunicagao apresentada na Figura 3.5 se diferencia muito daquela apresentada na Figura 3.1. Este novo paradigma é conhecido como 3* geragdo de sistemas de redes, ou ainda como denominada na literatura comercial de nova geracdo de rede (NGN - New Generation Network). Nesta nova abordagem, quando ‘uma aplicagdo envia mensagens para uma outra aplicagéo remota, o proceso ¢ efetuado ‘Capitulo 3 ~ Processodores de Rede, Dispositvos de nterconextioe Protoolos Leves. @) direto através de uma chamada de solicitagéo de transmisséo para 0 processador de rede (NP). Diferente do modelo onde existia uma NIC, o NP possul poder de processamento € armazenamento semelhante a arquitetura do computador local, onde existem 0 processador e uma meméria, No novo modelo, quando a mensagem atinge o processador de rede remoto, existe um processamento efetuado na placa das mensagens recebidas € 86 entio estas sero entregues para a aplicacio. Ce Operacional Operacional ==] CE “ “ Figura 3.5: Modelo para nova geragao de redes. ‘As abordagens FPGA e GPP ndo satisfazem sozinhas todas as demandas de processamento solicitadas pelas aplicagées de rede que utilizam grande largura de banda, ou que tenham uum pequeno ¢ constante retardo, De uma forma geral, podemos dizer que as técnicas existentes para tratar a comuntcacéo das aplicagées nas redes podem ser classificadas como: © ASIC (Application Speetfic Integrated Circuit) - esta solugo representa uma abordagem specifica em hardware provendo um alto desempenho, todavia sem mator flexibilidade para programacéo. Exemplos de implementagdes em ASIC séo aquelas encontradas em disposttivos de redes conhecidas como switches do nivel 2 ¢ do nfvel 3. Nestes equipamentos um cireuito integrado especifico realiza a fungéo de reconhecimento de portas (nivel 2 - enlace) ou faz: 0 roteamento de datagramas (nivel 3 - rede); © ASIP (Application Specific Instruction Processor) - conjunto de instruges de um processador especializado para um dominio especifico de aplicac4o. possul um bom balango entre flexibilidade de programagio e desempenho. Este paradigma pode ser considerado um ASIC com um maior grau de flexibilidade para uso de programacao de software. Por esta razdo, verifica-se que o ASIP constitul a base da implementacao dos processadores de rede. Diferente do ASIC, um dispositivo do tipo ASIP permite que um projetista de software que nao tenha profundos conhecimentos de hardware possa desenvolver um aplicativo para rodar no dispositivo; (70) _Computagao Distrbuida de Ato Desempenho: Redes, Clusters e Grids Computaconais © Co-Processor — representa uma solucdo de hardware com uma limitada interface de Programacao, o que causa um bom desempenho com uma menor flexibilidade de programagao. A opgio de um co-processador énormalmente utilizada para melhorar uma determinada fungdo de uma aplicagéo como, por exemplo, nas aplicagées gréficas ou de visualizacdo: @ FPGA (Field Programmable Gate Arrays) - dispositivo semicondutor que pode ser programado pelo usuério final para execugdo de uma grande variedade de fungées l6gicas. Exemplos de dispositives que empregam um FPGA sao: controladoras de dispositivos, processadores embutidos em equipamentos e unidades especlats para processamento. O FPGA € programado em nivel de portas e pode ser reconfigurado quando da mudanga de requisitos de uma aplicagao. Quando comparado como ASIC, possum uma maior flexibilidade para programacao e em relagéo ao GPP um melhor desempenho. Os FPGAs séo normalmente empregados para o desenvolvimento de equipamentos que devem ter um bom desempenho para uma aplicacao especifica. Apés ser verificada a eficécta da solugao desenvolvida em FPGA 6 comum a produgo de ASICs para a préxima geracdo dos equipamentos. © motivo para tal € que 0 dispositivo FPGA é mais flexivel de se programar, portanto perdendo em desempenho. Em outras palavras, uma vez provado que a funcéo projetada pelo FPGA ¢ eficaz Justifica-se a produg4o de uma solug4o fechada em ASIC; ‘© GPP (General Purpose Processor) - processador de uso geral. Possu! uma flextbilidade bastante grande para programaggo e um pequeno desempenho. Como exemplo de um GPP podemos considerar o processador convencional de um computador pessoal. Este € responsdvel, junto com a placa de rede. por executar as instrug6es de uma aplicagao que deseja utilizar uma rede local, ou geograficamente distribufda. Todavia, ¢ interessante observar que o processador ¢ conhecido como de propésito geral, pols também executa outras tarefas que ndo so necessariamente ligadas ao processamento de rede (exemplos: edigéo de arquivos planilhas, leitura de disco ¢ outros dispositivos de entrada e saida). Dos paradigmas disponivels para implementagdo de interfaces de rede, a tecnologia ASIP possut a melhor relacdo entre flexibilidade e desempenho, uma vez que permite ‘uma boa utilizagao de software aliada ao desempenho de hardware. Por esta raz4o, 0s Processadores de rede encontrados nas interfaces de rede sfio na maioria das vezes baseados neste componente. De uma outra forma, podemos dizer que possuindo um conjunto de instrugdes em software permite a técnica ASIP sua adaptagao mais facilmente aos padrées de rede ¢ suas aplicacées. Por outro lado, o ASIP executando alguns elementos chaves em hardware (exemplo protocolos de comunicagéo) permite um desempenho Capitulo 3 ~Processadores de Rede, Dispositivas de Interconexdo e Protocolo Leves (n) diferenciado das aplicagées. A abordagem ASIP ainda possul uma excelente relagéo de custo/beneficio, pois o desenvolvimento de um software ¢ sua adaptagio tém um menor custo do que toda uma implementacao em hardware ¢ sua posterior comercializagéo (ASIC). A técnica de ASIP deriva originalmente da abordagem ASIC, entretanto com um maior grau de flexibilidade de programagéo. Aindiistria de TI tem anunctado com mais freqiiéncia equipamentos da chamada nova geragéo de redes (NGN}. Importante observar que muttos dos dispositivos tém uma funcdo mutto espectfica, como é 0 caso de um roteador. Desta forma, para uma determinada implementagdo € possivel que a utilizagdo da técnica ASIC seja interessante, uma vez que se pretende com o equipamento obter um alto desempenho sem flexibilidade, Em outras palavras, o que se deseja é um ganho bastante significattvo para uma determinada aplicagdo (no caso de um. roteador a transferéncia de dados), sendo caractertzada a falta de flextbilidade para outros tipos de aplicagées. Um exemplo comercial bemn/sucedido do uso de ASIC é a geracao de roteadores da empresa Cisco, conhecida como CRS (Car rler Routing System). Do primetro equipamento denomtnado de CRS-1, é reportado um tempo de 4.6 segundos para efetuar uma transferéncta de dezenas de mithdes de ttwros e matertal de audiovisual da biblioteca do congresso dos Estados Unidos, atingindo uma magnitude de taxa de transferéncta de centenas de Thps na operagao. Caracteristicas de um Processador de Rede Um processador de rede pode ser definido como um ASIP para ser utilizado no dominio de aplicagées de rede. De uma outra forma, pode-se dizer que um processador de rede € um dispositive programével com caracteristicas de arquitetura ¢ ctrcuitos préprios para 0 processamento de pacotes de rede. Comparado com as demats alternativas de implementagao existentes, um processador de rede se caracteriza por ser um co- processador de rede, com facilidade de comunicagao entre processadores, ser programavel, poder ser reconfigurdvel e trabalhar a funcao de roteamento. Sumarizando, © ASIP revine algumas das caracteristicas diferenciadas das demais formas de Implementagio visando melhorar o processamento de aplicagées que utilizam uma rede. Como 0 desenvolvimento da tecnologia de processadores de rede ainda € considerado recente, tanto os pesquisadores quanto & indistria trabalham no sentido de cobrir um (2) ‘Computogto Distribuida de Ato Desempento: Redes, Custer e Grids Computacionais conjunto maior de aplicagGes de rede que poderao ter um diferencial no uso destes dispositivos. A importancia dos processadores de rede, segundo varlos especialistas na rea de mercado de TI, pode ser mensurada pelo grande mimero de empresas que, a cada dia, colocam no mercado suas placas. Os processadores de rede ndo séo a tintca abordagem para o processamento de rede. Como verificamos neste capitulo, os ASICs, FPGAs, co-processadores € GPPs sao paradigmas de tmplementagdo que também podem ser empregados ‘com mator (ou menor) capactdade para o processamento de rede. Interessante observar que 0 espaco para o desenvolvimento da tecnologia de processadores de rede é aquele ocupado por dispositivos de uso geral que fazem o processamento de rede. Um exemplo é 0 uso de um GPP juntamente com uma interface stmples de rede. Um fator importante que deve ser verificado sobre os processadores de rede é a grande quantidade de oferta de opgdes disponivels, todavia com grandes diferencas tecnologicas. Com relagao As diferencas podemos citar os aspectos relativos a arquitetura, complexidade de processadores, sistema de meméria ¢ suporte de software. Exemplos de grandes organizacées que J4 disponibilizam processadores de rede séo a Cisco, a IBM, a Intel e a Motorola. ‘Com o objetivo de ilustrar para o leitor exemplos de casos reais, apresentamos a seguir processadores de rede de empresas que J4 se encontram disponfvels comercialmente. ‘Os exemplos servem para uma melhor compreenséo do funcionamento ¢ as diferengas dos NPs de diferentes fabricantes. No exemplo da Figura 3.6 mostramos 0 processador de rede da Cisco [Cisco, 2005], denominado de NPE G1 (Network Processor Engine). Este processador de rede é componente do roteador da linha Cisco 7200 cujo desempenho ¢ bastante diferenciado, quando comparado com outros dispositivos de roteamento. O NPE G1 [Cisco2, 2002] fol projetado com o objetivo de tirar vantagens para aplicagdes especificas de rede. Desta forma, o processador possui uma série de dispositivos que so importantes para melhorar aplicagées de rede. Entre os médulos que compéem o processador de rede NPE G1 estéo: um sistema controlador de meméria, controlador de sistemas, NV-RAM (Non-Volatile Random Access Memory), portas auxiliares ¢ um dispositivo flash de armazenamento todos em um simples médulo, Outras caracteristicas (Copituo 3 ~Processadores de Rede, Dispostivos de interconexto e Protocole Leves, (a) tecnolégicas encontradas no NPE G1 séo: portas Ethernet, FastEthernet e GigabltEthernet utilizando-se de par trangado em uma interface RJ-45; capacidade de meméria modu- lar em 256 Mbytes, 512 Mbytes e 1 Gbyte: possibilidade de uttlizagao de software apropriado para a aplicagao do usuério que possibilita um diferencial de transmisséo. Sias135 Bits 2.48 Set OWDGant) Figura 3.6: Diagrama de bloco do processador de rede NPE G1 da Cisco. O NP4GS3, processador de rede da IBM, foi projetado para ser empregado no nicleo, na borda ¢ interface de rede de uma corporagao com 0 objetivo de melhoria de desempenho de aplicagées de rede. Algumas caracteristicas a serem destacadas séo: © Composto por 16 picoprocessadores programéveis, atingindo a capacidade de Processamento agregado de 2128 MIPS (Milhées de Instrugdes Por Segundo); ‘© Processador IBM PowerPC embarcado, provendo uma flexibilidade adicional de projeto para conexio de dispositivos: @ Aceleradores de hardware, visando melhoria de desempenho de filtragem, reencaminhamento e alteracdo de quadros de rede; ‘© Suporte para 40 portas FastEthernet, 4 Gigabit Ethernet, ¢ dezenas de portas de portadoras éticas OC-48¢/48/12/3: © Controle de fluxo sofisticado para auxiliar problemas com pacotes TCP: © ‘Suporte para monitoragéo remota: G ) Computago Distribuide de Alto Desempenhe: Redes, Clusters e Grids Computacionais © Suporte para execugéo Linux embarcado: © Suporte de software para melhoria de desempenho. Na Figura 3.7 [S3, 2005], apresentamos uma fungao de balanceamento de carga empregando o IBM NP4GS3. Esta abordagem é interessante para fabricantes de comutadores que desejam um desempenho diferenciado de seus switches. Load Balancig Switch Figura 3.7: Processador de rede NP4GS3 da IM. A Figura 3.8 ilustra o processador de rede modelo IXP425 da Intel {Intel, 2005]. Este processador de rede tem como objetivo servir usudrios domésticos, de corporagées de Pequeno e médio portes. Interessante notar com este exemplo a maior especializagéo dos processadores de rede, quando comparados com as placas convencionais de rede. ‘Uma placa de rede convencional tem como caracteristicas basicas 0 protocolo de acesso a0 meio (exemplos séo o Ethernet ou o Token-Ring) ¢ a taxa de transmissdo (exemplos 10/100/1000 Mbps). Em outras palavras, os modelos dos processadores de rede so ‘voltados para os perfis especificos das aplicages. Assim, no caso da Intel existem também os modelos das familias IXP2000 e IXP1200. Estes tipos de processadores so voltados para as aplicagbes de acesso a rede corporativa cujas aplicagées solictter até 10 Gbps, ou que esteJam dentro do limite de taxa de transmtssao de 155 Mbps a 622 Mbps, respectivamente. Capitulo 3 ~ Processadores de Rede, Dispositives de Interconex ¢ Protocolos Leves (35) é 18 Pes mie eb TB Figura 3.8: Processador de rede IXP425 da intel. Como caracteristicas tecnolégicas do processador IPX425 podemos citar: as interfaces para comunicagao com alta taxa de velocidade (Utopia 2 ¢ HSS - High Speed Serial), hardware integrado para acelerar algoritmos criptograficos (SHA-1, MD5, DES, SDES, AES) para aplicagées que requeiram seguranga, suporte de até 256Mbytes de meméria, processador Intel Xscale para aplicagées customizadas pelos usuarios, batxo consumo de energia (1,0 a 1,5Watt), duas portas Ethernet ¢ FastBthernet. 0 processador de rede IPX425 é um processador projetado para atender aplicagées que solicitem uma variedade grande de conexdes com alto desempenho. Este processador de rede combina o suporte para multiplas tecnologias de redes WAN ¢ LAN. A arquitetura comum do IPX425 pode ser utilizada em roteadores de tiltima geracdo, pontos de acesso wireless, dispositivos de seguranga, switches, aplicagdes VoIP, controle industrial aplicagées de imagens em rede. ‘Um processador de rede da empresa Motorola, que pode ser considerado como um bom exemplo das teenologias de placa de rede, € 0 processador integrado de comunicagéo denominado de MPC8280. A Figura 3.9 ilustra o MPC8280. Este é caracterizado por um baixo consumo de energia e € constituido de trés grandes médulos: comunicagdo (Communication Processor Module - CPM), processador-meméria (G2 Core) ¢ sistema de interface (System Interface Unit). 7 ina Figura 3.9: Processador de rede MPC8280 da Motorola, (© MPC8280 € conhecido como integrante da nova geragao de processadores PowerQuiccll, sendo uma solugdo adequada para a integracao de controle e reencaminhamento de quadros de rede, processados na placa do processador de rede, O dispositive pode ser ‘empregado em equipamentos de rede, tals como roteadores, equipamentos de comutagao (switches) de telecomunicacdo ¢ estacées de base de ambientes celulares. Com uma caracterfstiea teenolégica de software, o MPC8280 prové suporte para protocolos de enlace de comuntcagéo tals como: Ethernet, Fast-Ethernet (MID, 155 Mbps ATM ¢ para canals 256 HDLC. Em [Freescale, 2005] 0 leitor pode encontrar um detalhamento da arquitetura do processador MPC8280 e outros componentes da familia. Apés a apresentacao de alguns dos diferentes tipos de processadores de rede, fica claro que os dispositivos envolvidos com as aplicagées de rede esto cada vez mais especializados. As caracterfsticas cada vez mais especificas dos processadores de rede, acrescidas a outros dispositivos empregados no processamento de rede, nos leva a classificar os dispositivos usados nas redes em trés categorias: © Nicleos ~ estes dispositivos so utilizados no segmento caracterizado pelo Fequerimento de um alto desempenho com uma menor flexibilidade de programacao. (Copituo 3 —Processaderes de Rede, Disositivos de interconexdoe Protocolo Leves (7) Exemplos classicos de dispositivos com estas pecullaridades séo os roteadores. Como elementos centrais de uma configuragao de rede, devem efetuar a transferéncia de grandes quantidades de dados, sem a necessidade de flexibilidade de programacao, Na Figura 3.10 existe um exemplo hipotético de uma configuracdo de Internet, considerando roteadores em capitals diferentes do Brasil. Com sua fungao bem especifica, os dispositivos niicleos podem ser implementados em ASIC para atingir taxas de transmissio da ordem dos Tbps. Figura 3.10: Exemplo hipotético de configuracio de rede. © Borda - os equipamentos nesta classe esto localizados entre os dispositivos nticleos eos de acesso. Estes equipamentos requerem uma certa flexibilidade de programacao uma vez que as aplicagdes que sio executadas nestes dispositivos tém caracteristieas de programagéo do nivel do usuario final. Quanto ao desempenho estes dispositivos ndo tém o mesmo nivel daquele verificado nos equipamentos do tipo nficleo, uma vez, que existe uma mator flexibilidade para 0 processamento diferenciado dependendo da solicitagéo das aplicagées. O exemplo da Figura 3.11 apresenta um equipamento que pode estar executando um aplicativo do tipo firewall, um balanceador de carga URL (Uniform Resource Locator) de uma aplicacao Web ou os dois a0 mesmo tempo. Os dispositivos de borda séo candidatos ao uso de processadores de rede, utilizando © paradigma ASIP @ Accesso - como o nome {4 diz, estes equipamentos devem prover as aplicagées de acesso as redes, Como um cendrio atual, imagine como na Figura 3.12 uma estacdo base fornecendo acesso uma rede que estrutura as aplicagGes de dispositivos do tipos palmtop, laptop e telefones celulares. A fungio de um dispositive do tipo acesso ¢ prover a agregacdo do tréfego, encaminhando este para a uma rede estruturada convencional. Devido a (3) Computogie Distribua de Ato Desempento: Redes, Clusters e Grids Computaconais estes tipos de requisigbes os dispositivos de acesso tém um baixo desempenho comparado ‘com os equipamentos de micleo e borda. Uma diferenca comparativa mals peculiar que pode ser notada entre um dispositive de horda e outro de acesso é a menor espectaliza¢ao dos dispositivos de acesso. De uma outra forma, podemos dizer que os equipamentos de acesso tém uma grande flexibilidade para atender diferentes tipos de aplicativos. Por outro lado, os dispositivos de borda atendem a um dominio mais restrito de aplicacées. Be2ea Figura 3.11: Exemplos de cispositivos de borda. Esato Base Widess B Figura 3.12: Exemplo de um dispositivo de acesso. Dispositivos de Interconexao 0 t6pico de estudo nesta seco € voltado para os dispositivos de Interconexo das redes, ‘que juntamente com os processadores de rede protocolos leves podem propictar um Capitulo 3 —Processadores de Rede, Dispostvos de Interconexdio e Potocolos Leves (3) alto desempenho para aplicagées distribuidas. Nossa énfase serd voltada para os dispositivos de interconexio locais, posto que efetivamente estes equipamentos so 0s maiores responsdveis pela interligagao de computadores as redes. Dispositivos Convencionais de Interconexao As primeiras redes locats utilizavam dispositivos concentradores para ligagio de computadores. Esta configuragéo de interligacdo em estrela de equipamentos derivou- se do conhecimento técnico disponivel na época das centrais telefonicas. No final dos anos 70, umn grupo de pesquisadores do centro Palo Alto Research Centre da Xerox desenvolveu a técnica de interligacao dos computadores através de um cabo coaxial, onde todos tinham acesso ao melo e poderiam se comunicar sempre que 0 meio {denominado de Ether) estivesse desocupado. Em caso de colisées das solicitagées de acesso e transmiss4o, um tempo aleatorio era imputado a cada computador para que novamente fosse feito acesso ao meio. Por outro lado, nenhum computador poderia ter acesso ilimitado ao meio. Uma técnica conhecida como jabber entra em ago a medida que o tempo de acesso permitido a rede € esgotado. Neste momento, a placa de rede do computador cria uma situagao de coliséo virtual para que o computador possa se calar por um determinado tempo, Esta abordagem criada na Xerox é a conhecida tecnologia Ethernet e, segundo algumas empresas de consultoria de mercado, representa cerca de mais de 90% das implementagées de redes locais. No iniclo dos anos 90, com uma maior evolucdo da microeletrénica, as redes do tipo Ethernet baseadas em cabos coaxiais (thickwire) foram substituidas por dispositivos concentradores (hubs) ¢ comutados (switches) para interligacéo de computadores. No caso dos concentradores, quando um determinado computador da configuragéo iniela ‘stia comunicagéo com outro computador todos os dispositivos interligados devem esperar pelo término da conex4o. Os hubs possuem uma taxa efetiva de transmisséo da ordem de 10 a 100 Mbps. A interligagao dos computadores ao dispositivo € efetuada através de cabos de par trancado. Na Figura 3.13 apresentamos um exemplo de funcionamento de um concentrador (hub). O exemplo ilustra a topologia fisica do concentrador como uma estrela, através da representagdo retangular do dispositivo. Todavia, a topologia légica de funcionamento pode ser visualizada pelo cabo dentro do concentrador. Neste exemplo de caso o computador ligado na porta 1 solicita um servico para uma maquina servidora da porta 2. Os outros dots computadores, respectivamente conectados nas portas 3 ¢ 4, ndo podem se comunicar uma vez que 0 melo est ocupado. Ao final da conexdo do computador da porta 1 com o servidor da porta 2, qualquer outro computador poderé solicitar acesso ao melo. (#) ComputagtoDisrbulda de Ato Desempenta: Redes, Cisterse Grids Computaconals Concentrator 7 Figura 3.13: Funcionamento de um concentrador (hub). Por outro lado, os comutadores permitem que conexées paralelas sejam efetuadas desde que 0s computadores envolvidos solcitem suas interligages em pares. Assim, 0 computador da porta 1 pode estar se comunicando com o servidor da porta 2, enquanto, que os computadores das portas 3 e 4 também estdo com uma ligacdo estabelecida. A Figura 3.14 apresenta um esquema de um equipamento comutador com quatro computadores, onde existe a comunicagéo concorrente dos computadores. Semelhante a um concentrador, a topologia fisica do comutador ¢ uma estrela, representada de forma retangular.A topologia l6gica de funcionamento pode ser visualizada pelo cabo dentro do comutador. Nos dois casos, isto é, do concentrador e comutador, empregamos ‘a simbologia de um cabo para representar a maneira de ligagéo légica dos computadores. Na prdtica as ligagées sao realizadas por circuitos internos dos equipamentos que caracterizam a rede de interconexdo do dispositivo. Figura 3.14: Funcionamento de um comutador (switch). Nos dois tipos de dispositivos ¢ importante lembrar que as NICs tém as caracteristicas apresentadas na Figura 3.1. De uma outra forma, 6 correto afirmar que pouco processamento € efetuado nas NICs que dependem diretamente do processador do computador local. Capituio 3 —Processadores de Rede, Dispositivas de Interconexdo ¢ Protocolos Leves ‘) Um fato curioso que provavelmente o leitor J4 tenha verificado é que no adianta uma configuragdo dispor de uma placa de rede com uma boa taxa de transferéncia efetiva se © processador do computador nao ¢ muito veloz. Pela descricao das operages das redes convenclonais apresentadas no t6pico “Modelo Tradicional de Redes” o leltor deve j4 ter compreendido este ponto. Dispositivos de Interconexao de Alto Desempenho A pesquisa para o desenvolvimento de computadores com arquiteturas fracamente fortemente acoplados, conhecidos respectivamente como multicomputadores € multiprocessadores, tem produzido intimeras inovagées em termos de tecnologia. Dentre estas inovagées, um diferencial na 4rea de redes so as novas propostas de interconexio entre os processadores ¢ suas memérlas. Se levarmos em consideracdo que as tecnologias dos processadores e memGrias das arquiteturas paralelas sdo semelhantes aquelas encontradas nos computadores pessoals, surge a idéla de se dispontbilizar em clma da mesa dispositivos de interconexdo semelhantes aqueles encontrados nos grandes computadores. A tecnologia de interconexio saida de dentro dos computadores paralelos, disponibilizada para a conexio de microcomputadores, dispositivos de armazenamento e estagbes de trabalho € usualmente denominada de SAN (System Area Network). De uma outra forma, podemos dizer que Jé esto disponiveis comercialmente dispositivos de interconexéo (SANs) que propiciam a criagéo de ambientes similares aos multicomputadores ou multiprocessadores, utilizando-se de computadores convencionais do tipo IBM-PC. Este fato ¢ interessante para os sistemas distribufdos de uma maneira geral, uma vez. que aplicativos podem ser executados, inclusive consultando uma grande massa de dados distribuida geograficamente, em verdadeiros supercomputadores dispersos em uma rede com recursos jé existentes nas organizacées. ERs nrneeneenenreeeeenenenemeeeneeneuenconsounmnnnnneaenmeened acrénimo SAN para ambientes de alto desempenho significa System Area Network. Em outras palavras, dispositive de interconexdo com alta taxa de transferéncta e batxo retardo, semelhante aqueles dos sistemas internos de mdquinas paraletos. Em outros contextos, 0 acronimo é atnda empregado para especificar uma arquitetura de armazenamento (SAN - Storage Area Network) € uma abordagem de seguranca (SAN - Security Area Network). Nos projetos dos clusters e grids, um dos aspectos mals criticos para um bom desempenho da configuracdo computacional é a escolha apropriada do dispositivo de interconexio para interligagéo de computadores, sistemas de armazenamento distribuidos (network (2) Computagto Disiribuida de Alto Desempento: Redes, Chistrs e Grids Computacionais storage) e servidores de aplicagdo. Dispositivos de comutago convencionals, tals como antigos switches com tecnologia Fast-thernet ou GigabitEthernet bastante comuns no mercado, podem ndo representar uma solugao apropriada para efetuar a conexdo em larga escala de centenas de processadores, dispositivos de armazenamento ¢ computadores executando servicos essenciais de uma organizacao. Uma grande escalabilidade, um servigo de tolerdncia a falhas ¢ a taxa de transmissio da ordem de Gbytes/segundo associada a um retardo muito pequeno so algumas das caracteristicas de que um dispositivo de interconexio deve dispor para ser uma escolha adequada para a interligacdo em amblentes de clusters e grids computacionais. Em adigéo a estes aspectos, um diferencial importante que deve ser levado em consideragéo ¢ a disponibilidade de um pacote de biblioteca de software de programacdo para o equipamento. Programadores devem poder configurar o dispositive de uma forma mais apropriada para a execugao de sua aplicagao. O leitor deve se lembrar do tépteo *Processadores de Rede”, onde discutimos as vantagens de um equipamento dispor deste elemento como diferencial para as aplicagées dos usuérios. Em outras palavras, 0s dispositivos de comutago devem possuir, dentre suas muitas facilidades, aquela de permitir a sua programagéo. Exdstem atualmente duas grandes classes de dispositivos de interconexzio de alto desempenho. O primeiro grupo é formado por dispositivos cuja solugéo 6 caracterizada pela programagao de troca de mensagem entre processadores no nivel de placa de rede, uma vez que estas possuem processadores de rede. Esta solugio possibilita a crlagéo de configuragées de multicomputadores. Exemplos de equipamentos sob esta classe so Myrinet, Gigabyte Sys- tem Network e GigaNet. Por outro lado, o segundo grupo de sistemas de interconexéo tem como peculiaridade uma solugéo que cria a abstragéo de uma meméria virtual tinica (multiprocessador) entre todos os computadores interligados no dispositivo. Exemplos de equipamentos desta segunda classe séo o Quadrics Network (QSNET) ¢ Dolphin SCI. Oleitor deve tomar culdado para néo confundir as tecnologias Gigabit Ethernet, GigaByte System Network e GigaNet. O Gigabit Ethernet é.aconhecida extensdo do padrdo Ethernet, com um batxo custo como solugdo para redes de alta velocidade, todavia com um batxo desempenho comparado com outras solucées. Por outro lado, as abordagens Gigabyte System Network e GigaNet tem como caracteristicas 0 batxo retardo na placa € no switch (da ordem de poucos microssegundos e nanos segundos, respectivamente), alto desempenho (da ordem de centenas de megabytes) e um custo mais elevado de placas e switch. Copttto 3 ~ Processadares de Rede, Dispositivos de intrconext e Protocolos Leves (8) ‘Vamos apresentar nas préximas segées 0s disposttivos SANs mais utilizados para melhoria de desempenho de aplicacées. Estes dispositivos se diferenclam uns dos outros, considerando-se os seguintes aspectos: © Arquitetura; © Desempenho; © Laténcia; @ Escalabilidade de ligagao de nds: © Flexibilidade de interconexio, quanto ao ntimero de switches: . Facilidade de programacéo. Myrinet ‘A Myrinet € um padrao piblico aberto, publicado ¢ registrado na ANSI (ANSI/VITA 26- 1998). Esta tecnologia fol desenvolvida para prover alto desempenho, comunicacdo efictente de pacotes de rede e comutagéo com uma razodvel relagio custo-efleténcia IMyrinet, 2005]. A tecnologia tem como objetivo a formacao de clusters de estagées de trabalho, PCse servidores. Para este objetivo uma configuragio Myrinet dispée de switches ¢ placas de redes especiais para interligagéo do ambiente de rede. Redes convencionais, tais como a Ethernet e FastEthernet, podem ser empregadas para a formagao de clusters computacionais, todavia estas tecnologias néo provém 0 desempenho desejével para o alto desempenho e alta dispontbilidade do cluster ao nivel de hardware. Algumas caracteristicas diferenciais de um ambiente com configuragio Myrinet séo: © Enlaces de comunicago entre portas do switch € placa de rede full duplex de 2 Gigabit/segundo: © Controle de fluxo ¢ erro, heartbeat continuo de monttoracdo de cada enlace: @ Retardo da ordem de microssegundos, switches com tecnologia cut-through que reencaminham os pacotes de rede assim que estes chegam a uma determinada porta, monttoracdo de espectal para aplicagées que solicitem alta disponibilidade; © Rede de switch que pode escalar dezenas de milhares de nés, com caminhos alternativos entre computadores: © Interface de rede que executa em firmware (isto é, processador de rede) para aliviar 0 processamento do GPP do computador. Esta interface efetua o bypass do sistema operacional conforme sugerido na Figura 3.5. (#) Computogdo Distrbuida de Alto Desempento: Redes, Clusters Grids Computacionois AFigura3.15 ilustra uma interface Myrinet interligada a um barramento PCL. Esta figura apresenta os médulos convencionals de um processador de rede para alto desempenho. do estes: processador, meméria ¢ sistema de entrada/saida. Figura 3.15: Exemplo de uma Interface PCI Myrinet. Os dispositivos existentes para uma configuragto Myrinet so: © Interfaces: portas simples ou duals, PCI-X; ‘© Switches: com até 32 portas crossbar em comutadores convencionals € até dezenas de milhares, através da utilizacao do equipamento denominado de Myrinet Network ina Box; © Enlaces: podem utilizar fibra ética ou cabos; ‘© Suporte de software: suporta os sistemas operacionais convenclonais do mercado (exemplos sao: Linux 2.0/2.2/2.4/2.6, Windows XP e NT, AIX 4.3 e 5.1, FreeBSD, MAC, Solaris, Tru64 e VxWorks); 0 software € oferecido como software aberto ¢ ainda existem muitas implementagées de terceiros; a empresa Myricom oferece as bibliotecas GM e MX que representam pacotes de troca de mensagem de baixo nivel, além de suporte para bibliotecas PVM e MPI: suporte para TCP/IP. Memory Channel Assim como as demais propostas de dispositivos de interligago, o esforgo da abordagem conhecida como memory channel fot baseados na necessidade de alto desempenho e balxo retardo para a conexéo de computadores em configuragdes de cluster. A tecnologia PCI Memory Channel Interconnet da HP [HP 2005) 6 um sistema de interconex4o com ‘Copitulo 3 ~ Processadores de Rede, Dispositvos de Interconexdo e Protocoos Leves (s) alta taxa de transmissio para nés Alpha visando prover em um cluster a abstracao de meméria global ‘nica. Qualquer aplicacdo, executando em um dos nés da configuracéo, pode fazer o mapeamento da meméria global utilizando-se de um endereco de pagina de tamanho de meméria de 8 Kbytes, como se fosse um espago da meméria local do né. A Figura 3.16 exemplifica a troca de informacao de meméria entre dots nés, Ae B. Neste exemplo no n6 A ocorre uma solicitagdo de armazenamento de informagdo. Esta solfcitagéo € gravada em uma pagina da meméria local pela unidade de gerenciamento de memGéria (MMU - Memory Management Unit). Apés a operacdo de escrita da pagina, © contetido da mesma é repassado para a placa MC (Memory Channel) que envia o pacote para o switch Memory Channel. Ao ser armazenada no switch, uma cdpia desta Pagina é enviada para a placa MC, posteriormente é processada pela MMU do né que disponibiliza a mesma para ser carregada. Switch Memory Channel (Me) NOB Figura 3.16: Troca de informago em uma configuragé Memory Channel. A tecnologia Memory Channel reduz sensivelmente 0 retardo de comunicagao, possibilitando a construgao de servidores de alto desempenho com componentes convencionals de mercado. O dispositivo de comutagéo possul uma arquitetura interna do tipo crossbar, o tamanho maximo do pacote é de 256 bytes, a comuntcagao ponto-a- ponto pode ser de até 100Mbytes/segundo ¢ a distancia dos dispositivos interligados ao comutador € de cerca de 10 metros. Na Figura 3.17 exemplificamos a interligagao de discos e outros nds em uma configuracéo Memory Channel. (%6) Computocdo Distribuida de Alto Desempento: Redes, Chsterse Grids Computaconais Figura 3.17: Interligacao de discos e computadores no MC. Quadrics Quadries Network (Quadrics, 2005], também conhecida como QsNet, consiste de dots ‘grandes blocos. O primeiro, denominado de Elan, representa uma interface de rede programdvel. O outro bloco € caracterizado pelo switch de alto desempenho (com taxa de transmissao da ordem de centenas de Mbytes/segundo) e baixa laténcia (retardo da ordem de dezenas de nanossegundos), chamado de Elite. Os dispositivos do tipo Elite so interligados em forma de topologia Fat Tree, alcangando uma possibilidade de interligagao da ordem de milhares de dispositivos de comutacao. {a} Diagrama geral (b) Detalhe de uma conexdo de switch Figura 3.18: Diagrama da topologia Fat-tree. Capitulo 3 Processadores de Rede, Disposhivos de interconexdo e Protocols Leves A Figura 3.18 ilustra um exemplo da topologia Fat-Tree que tem como diferencial uma grande escalabilidade. Na Figura 3.18 (a) encontra-se um desenho esquemético geral da rede de interconexio, enquanto que a Figura 3.18 (b) apresenta um detalhamento. Na Figura 3.19 apresentamos o digrama de bloco da interface de rede Elan4. A interface €composta por trés grandes médulos: o processador RISC, o sistema de meméria ¢ um subsistema de entrada/saida. Nt! Link : 1.3 GBjs each way Elan4 BA bi RISC) Foancess0q| OC balance for cable processor pac mune AE "| 1BklDache ered LVDS signaling 64 xB tit ens r oTeahti ‘opa-SDRAM Figura 3.20: Exemplo de uma connexdo entre duas CPUs com Quadrics. (#) Computagto Distribuida de Alto Desempenho: Redes, Clusters e Grids Computacionais ‘A Eland tem como taxa de transferéncia da ordem de 900Mbytes/segundo, aceita e envia Pacotes de rede; assim é a interface entre o switch Elite4 e um né de rede com um ou mais processadores. A arquitetura interna suporta enderegos virtuais relativos até 64 bits. Finalmente na Figura 3.20 apresentamos um diagrama esquemético de uma configuracao com a abordagem Quadrics. A figura exemplifica para o leitor uma forma de conexo entre uma CPU, de um determinado computador, com outra CPU em outro computador. Scalable Coherent Interface (SCI) A Scalable Coherente Interface (SCI) é um padréo recente de comunicagSo utilizado na interligacéo de componentes de um cluster. A abordagem cria um sistema de compartilhamento de meméria global, através de um sistema de coeréncia de cache baseado em diret6rios distribufdos. Um espaco de enderecamento € composto por dados, endereco de origem ¢ destino. Infiniband A Infiniband [Infintband, 2005] € uma associacao que agrega mais de 100 empresas com um objetivo amplo para computagao de alto desempenho, implementagées de armazenado (storage) e problemas relacionados aos grandes centros de processamento. O empreendimento ¢ liderado pela Agilent Technology, HP IBM, Intel, Infinicon Systems, Mellanox, SUN, TOPSPIN e Voltaire. Todavia, a participagao na entidade € bem. diversificada, com fabricantes de pacotes de software como a Oracle ¢ computadores como a Dell e a NEC. A primeira espectficaco da associagio foi publicada em 2000, visando abranger taxas de transferéncias acima de 100Gbits/segundo. Mais de 30 empresas J4 tém produtos dispontvels € a associacdo reporta como uma grande énfase que a cada semana novos Produtos so anunciados pelos participantes do consércio. Protocolos Leves Nesta seo abordamos os conceitos fundamentals para o conhecimento de um paradigma denominado de protocolos leves. Esta abordagem objetiva, no somente uma melhor utilizagéo da infra-estrutura das redes, mas também representa uma filosofia tecnolégica voltada para uma melhoria no desempenho computacional de aplicagoes de diferentes naturezas, quando executadas em ambientes distribuidos de rede. A revolugao continua dos sistemas computacionais interligados através das redes tem auxiliado de uma forma positiva (e até entdo nunca imaginada) a soctedade moderna. A Capituo 3 ~ Processadores de Rede, Dispostivos de intercanexdo e Protoclos Leves ©) abrangéncia da utilizagdo destes sistemas compreende um vasto espectro de dreas do conhecimento humano, tals como: engenharia, biologia, medicina, educacéo, astronomla, misica, fistca, quimica, economia e direito, dentre centenas de milhares de outras reas. A evolucdo exponencial das tecnologias que compreendem a area de redes de computadores a cada dia nos permite a utilizagéo de maiores larguras de bandas (band- width) para a transmissio da informacéo com um menor retardo (latency), € Hustra a necessidade de conhecermos com mais detalhes alguns conceitos importantes da area. Em adigGo ao exposto, o tmenso universo de equipamentos que est4o sendo conectados as redes nos leva a pensar como tais equipamentos poderdo causar um impacto nas atuais arquiteturas de protocolos de redes. ‘Desta forma, apresentamos na proxima seco uma revisdo da arquitetura TCP/IP Nosso objetivo ¢ ilustrar o contexto desta familia de protocolos e apontar alguns obstaculos da arquitetura para ambientes de alto desempenho. Alguns exemplos de ambientes alto desempenho e alguns protocolos de transporte so mostrados apés a seco de arquitetura TCP/IP. Os protocolos de transporte que vamos estudar foram deallzados para obtencao de uma melhor utilizacao de largura de banda ebaixo retardo nas redes de alta velocidade. Uma vez que o protocolo de rede IP (Internet Protocol) € 0 padrdo universalmente aceito, acreditamos que somente no nivel de transporte poderemos mais rapidamente achar uma resposta para melhorar 0 desempenho das redes de computadores. Em tiltima andlise, estes protocolos representam estado da arte dos protocolos que devem ser empregados em redes de alto desempenho. Arquitetura TCP/IP A Figura 3.21 ilustra a arquitetura TCP/IP € alguns dos seus principais protocolos. & Televante ressaltar a importéncia do protocolo da camada de rede, o IP Este protocolo 0 padrao do ambiente Internet. Por outro lado os protocolos de transporte, TCP (Transmission Control Protocol) e UDP (User Datagram Protocol), representam a forma pela qual as aplicagdes podem solicitar, respectivamente, servicos orientados ¢ nao-orientados a conexéo. E importante recordarmos que ambos os protocolos de transporte da arquitetura TCP/P foram projetados num passado onde as redes fisicas de enlace tinham uma baixa qualidade. Entendemos por baixa qualidade a constante ocorréncia de erros (e sua alta freqiiéncia) nas redes de comunicacéo, devido as condigoes fisicas do meio. (x0) Computaséo Distbuida de Alto Desempenta: Redes, Clusters e Grids Computacionals Arquitetura internet, FIP, TELNET, SMTP. ONS, SNMP Top ‘UoP ‘Sub-rede de acasso Figura 3.21: Arquitetura TCP/IP. Devido as condigées para as quals 0 protocolo TCP fol projetado, este fol idealizado como um protocolo robusto. Em outras palavras, um protocolo que fim-a-fim deveria fornecer um padréo de qualidade para as aplicagées. Por esta razdo, o TCP possul algumas deficiéncias quando utilizado em redes com uma boa infra-estrutura para transmisséo ¢ baixissima ocorréncla de erros. A Figura 3.22 representa o estabelecimento de uma conex4o, quando 0 protocolo TCP é acionado. Desta figura fica claro que o handshake inicial 6 composto da troca de trés pacotes entre o destinatério ¢ o remetente. Um exemplo que ilustra 0 alto custo desta abordagem € a troca de pequenos pacotes numa rede cuja rede de comuntcacdo ¢ baseada em satélite. Em outras palavras, estaremos utilizando uma largura de banda cujos cus- tos sdo elevados de uma forma nao otimizada. TCP — Estabelecimento de Conexéo ecsbe SYN 7 AG Miéquina A Méquina B Figura 3.22: Estabelecimento de conexio. Copltuo 3 ~ Processadores de Rede, Dspostivos de interconexd e Protocolos Leves Outro exemplo interessante que devemos observar, quando da utilizagéo do TCR € demonstrado na Figura 3.23. Nesta figura, o reconhecimento ¢ a retransmisséo so apresentados através das abordagens dos algoritmos de retransmisséo go-back-n ¢ a retransmissio seletiva. ‘TCP - Reconhecimento e retransmissao Go-back-n x Retransmisséo seletiva Figura 3.23: Paradigmas de retransmisséo. Aretransmiss4o go-back-n ¢ a forma implementada no protocolo TCP Isto significa que. quando uma conexo entre dois pontos quaisquer estiver em curso, quando um erro de recebimento for detectado (exemplo o pacote 5 da Figura 3.23) todos os pacotes a partir do pacote perdido serdo retransmitidos. Deste procedimento podemos detectar dots problemas. O primetro é 0 desperdicio desnecess4rio do uso da largura de banda paraa transmissao dos pacotes que jé haviam chegado de modo apropriado ao destinatério. O ‘segundo problema sera o desnecessario processamento dos pacotes peloné destinatério © 0 posterior descarte dos pacotes. Os dois exemplos de problemas do TCP indicam que devemos considerar solugées mais adequadas quando do uso de redes com alta taxa de transmissdo, alto custo ¢ baixa ocorréncia de erros. Protocolos de Alto Desempenho Discutimos no t6pico anterior de uma forma geral e sucinta a arquitetura TCP/IP e alguns dos problemas relacionados a este ambiente. Fica patente a obsolescéncia deste conjunto de protocolos para novas infra-estruturas de redes, onde a largura de banda cada vez mator, ¢ com laténclas cada vez menores, requer um melhor aproveltamento do meto. Para uma melhor utilizacéo da largura de banda, apresentamos alguns mecanismos que nos auxiliam numa melhor forma de uso da rede. Contudo, é importante observarmos que muitas das ferramentas existentes foram projetas para as redes de comunicagao € ndo (2) Computagdo Distribuida de Alto Desempento: Redes, Clusters e Grids Computacionais abrangem redes locais com altas disponibilidades de largura de banda e baixo retardo, Em outras palavras, necessitamos que uma mudanca no nivel de protocolo seja posta em pratica, Nesta segao vamos discutir ¢ apresentar alguns protocolos de transporte que foram ‘especificamente projetados e implementados visando uma abordagem de alto desempenho. Deste modo, vamos apresentar algumas caracteristicas importantes para os protocolos de transporte para alto desempenho. Depols, ilustraremos alguns protocolos que so considerados aptos para atender os ambientes que solicitem ao desempenho, através de ‘sua utilizacdo direta ou modificagao (um exemplo classico é 0 TCP). As configuragbes dos clusters e grids exemplificam a necessidade de protocolos com uma abordagem diferente daqueles que eram considerados até entio. Centenas de processadores interligados através de uma rede de interconexo com um alto grau de conflabilidade. Nosso objetivo ao apresentar a figura € baseado no fato de que as arquiteturas dos clusters de computadores pessoals esto semelhantes aos computadores com centenas e até milhares de computadores. Independente da abordagem sejam estes multicomputadores ou multiprocessadores, no caso dos clusters a rede de interconexdo ¢ representada pela tecnologia de rede local empregada na interligag&o das méquinas. Em outras palavras, devemos entender que a computagdo paralela distribuida € um problema também para a 4rea de redes de computadores. Assim, de cada exemplo que possamos pensar nasce a necessidade dos protocolos mais leves (lightweight protocols) e mais eficientes visando a troca de pacotes de uma maneira otimizada entre quaisquer nds numa rede. Embora 0 leitor a primeira vista possa estar pensando que o exemplo ¢ particular para um conjunto de maquinas com arquiteturas mais complexas, este ponto no é necessariamente uma verdade. Os sistemas denominados de Beowulf, oto paradigma de Cluster Computing somam- se aos exemplos j4 mencionados de ambientes nos quais protocolos mals eficientes devem ser utilizados para que possamos atingir um bom desempenho no ambiente. Quanto aos sistemas Beowulfs, estes so um conjunto de computadores pessoais interligados (com o objetivo de atender com eficiéncia um determinado tipo de aplicagao) através de uma rede de alta velocidade ¢ alta disponibilidade, como as SANs (System ‘Area Networks). For outro lado, podemos entender o paradigma de Cluster Computing ‘como uma forma mais abrangente da computago de alto desempenho utilizando os recursos distribuidos disponivels como se fosse um Gnico ambiente computacional. Em adic&o ao 4 exposto, a pratica tem demonstrado que no existe uma correlagéo direta entre a melhoria da infra-estrutura das redes ¢ um melhor desempenho das aplicagées. Os protocolos tm sido o grande viléo deste problema. Protocolos de Capitulo 3 ~ Processadores de Rede, Dispositves de Interconexdoe Protocolo Leves. (33) transporte, como o TCR sao inadequados para uma evolugao das atuais configuracdes- para os chamados ambientes de alto desempenho. Protocolos e Melhoria de Desempenho AAs trés abordagens que seguem podem auxiliar na melhoria do desempenho de uma determinada arquitetura de protocol: © Minimizar os requerimentos de processamento para redugao dos custos de transmissio; © Diminulr o controle de erros para redes que so consideradas sem erro (error free); © Melhorar o algoritmo de controle de fluxo. Novos protocolos denominados de lightweight protocols, ou protécolos de alto desempenho, tém sido desenvolvidos visando: ‘@ Melhoria na geréncia da conexdo: sao os procedimentos de sinais necessérios para a abertura, manutengdo e fechamento de conexéo entre entidades de comunicacéo. © Controle de fluxo: para evitar congestionamento, um mecanismo eficiente de controle de fluxo é necessério para solucionar a equacdo com as incégnitas: © X: quanto a aplicagio no remetente pode solicitar de bandwidth? © Y¥: quanto a rede pode dispor de bandwidth? © Z: quanto no destinatério a aplicagao pode ser processada? © Tratamento de erros: Os esquemas existentes para o tratamento da perda de dados na transmissio e buffer overflow devem ser eficientes nfo s6.na detecgio, mas, também, na sua recuperago sem causar overhead na rede. Em outras palavras € desejdvel que um algoritmo eficaz seja empregado para evitar a perda de largura de banda para co controle de tratamento de erro. Protocolos de Transporte Devido ao padrao de facto do protocolo de rede IP e seu peso em todos os ambtentes inter-redes, muito se tem desenvolvido no nivel de transporte. Em outras palavras, a forma de resolver o problema fica menos complexa se melhorarmos as falhas existentes nos protocolos de transporte. A idéia é que possamos melhorar a utilizagao da largura de banda através das conexées ficientes de transporte, Assim néo s6 novos protocolos tém sido propostos, mas também hd um grande esforco na melhorta daqueles jé existentes. le Ato Deserpen: Redes, Casters Grids Computcionais (04) Computogio Dist Exemplos de protocolos que foram projetados com objetivo de alto desempenho so: APPN, Datakit, Delta-t, NETBLT, OSV/TP4, VMTP e XTP APPN © Advanced Peer-to-Peer Networking (APPN) é um protocolo de transporte da IBM para os sistemas S/36 ¢ AS/400. Estes foram construfdos para integrar a arquitetura de conexéo fim-a-fim System Area Network (SAN). As fungdes de transporte foram implementadas em um servico orlentado a conexdo virtual, baseado na total confiabilidade da conexéo de enlace. © APPN néo dispée de servico de tratamento de mensagem; assim, € um bom exemplo de protocolo que confia nos servigos de alta qualidade das camadas inferiores da rede. Datakit © protocolo fot desenvolvido como sendo um protocolo de transporte untversal, sendo assim independente de uma aplicagdo especifica, ou ambiente. O protocolo € baseado sum servigo orlentado a circuito virtual que entrega os pacotes sem erros ¢ em sequiéncia, considerando uma possivel perda. A chave deste protocolo séo as fungGes de controle fim-a-fim de controle de fluxo, deteccao e retransmissio de dados perdidos. ‘Com o protocolo observando que uns dos pontos de gargalo numa comunicag4o s4o os recebedores no seu processamento dos protocolos, 0 Datakit utiliza um protocolo denominado Universal Receiver Protocol (URP). Na abordagem URP, somente so respondidos os comandos do transmissor que fo- ram emitidos segundo os servicos oferecidos pelo protocolo de transporte. A unidade de transmisséo ¢ 0 byte, € o nono bit € empregado para distinguir entre dados e sinal de controle. Delta-t © protocolo fol desenvolvido para prover uma comuntcagdo eficiente no Lawrence Livermore Labs para servicos ponto-a-ponto confi4vel, orientados a grande quantidade de dados em redes ndo orlentas a conexéo. A tnovagdo deste protocolo fot o desenvolvimento de um sistema de gerenciamento de conexéo baseado em tempo, através do qual o Delta+t suporta conexées lightweight com um minimo de demora de sinalizagao. CCopitute 3 Processadores de Rede, ispositvos de Interconexd e Protocoles teves (38) NETBLT © NETwork BLock Transfer Protocol (NETBLT) foi desenvolvido para a transferéncia de grandes quanuidades de dados. Da mesma forma, o protocolo pode operar com eficiéncia em redes com grande laténcia, como redes de satélites empregando o IP Acconexao NETBLT é unidirecional e ¢ normalmente fechada pelo remetente. A unidade de transmissao ¢ um largo buffer. A concorréncia de diversas unidades de transmissio € possivel, o que mantém o fluxo num nfvel aceitvel. O controle de fluxo é efetuado na janela de transmissao através de pardmetros de tempo inicials no intervalo de negoctacéo. O tratamento de erros emprega uma retransmisséo seletiva. Uma tinica solicitagdo de retransmissao pode ativar um nimero arbitrério de pacotes para serem retransmitidos. Ao final de uma transmissio, todos 0s NACK séo enviados como um pacote tintco. OSI/TP4 O TP4 éum protocolo desenvolvido sob coordenagao da OSI, no qual existem as seguintes caracteristicas interessantes: © Grande mimero de pardmetros de QoS: entre estes existem throughput, percentual de erro, prioridade e demora de transmissao; © Uma conexio de transporte pode ser dividida em varias conexées, ou seja, multiplexando a safda das solicitagdes. VMTP 0 Versatile Message Transfer Protocol fol desenvolvido para prover a infra-estrutura de comunicagao para um dado sistema operacional distribuido, Em outras palavras, 0 foco principal do protocolo € 0 suporte a conexées orientadas a transagées {exemplo: RPC). Estas aplicagées requerem respostas rapidas para pequenas quantidades de dados. Por outro lado, 0 VMTP também oferece servico para transferéncia grande de dados. 0 controle de erro € seletivo ¢ ainda tem uma facilidade de controle de transferéncia. O protocolo ainda prové um servigo de multicast. XTP © Xpress Transport Protocol (XTP) foi primeiramente desenvolvido com propésito para implementagées VLSI. O protocolo foi projetado para atender com eficiéncia um grande espectro de services, tals como: (36) Computasio Distibuida de Ato Desempenho: Redes, Custer e Grids Computacionois. © Datagramas em tempo-real; © Multicasting: © Transferéncia de grande quantidade de informagées. © XTP oferece ao nfvel de controle: © Controle de fluxo; © Retransmisséo seletiva; @ Estabelecimento de conexao explicita. Analise das Funcées do Protocolo de Transporte Nesta seco vamos examinar com mais detalhes os principais mecanismos do protocolo de transporte. Dentre estas fungées: © Geréncia de conexo: estudo de infcio e término de uma assoclagao de transporte; © Fase de transferéncia de dados: recebimento de reconhecimento, controle de fluxo e tratamento do erro; Geréncia de Conexao Visando compreender de uma maneira mals precisa como € efetivamente realizada a geréncia de conexo, vamos estudar os seguintes aspectos: Sinalizagao Atroca de informagéo entre duas entidades de transporte com o propésito de geréncia de conexéo € conhecida como sinalizagéo. A sinalizagao pode ser efetuada de maneira que, dentro de uma mesma assoclac4o, tenhamos dados e informacdo. A este tipo de abordagem denominamos in-band. Por outro lado, numa associagéo out-of-band, temos 0s dados e as informagé6es de controle transmitidas separadamente. Considerando os protocolos de alto desempenho que foram apresentados e a taxonomia de sinalizagao. podemos fazer a seguinte consideracdo: @ In-band: TCR NETBLT, XTR OSVTP4, Delta-t, VMTP; © Out-ofband: Datakit, APPN. 0 protocolo VMTP € hibrido quanto a seu funclonamento, ou seja, efetua a verificagao de conexdo da forma out-of-band. Todavia, o estabelecimento da conexio € in-band. A conseqiténcia mator da sinalizacéo in-band ¢ que as entidades responsdveis pela conex4o Copitulo 3 ~ Processadors de Rede, ispositvs de Inercnexdo € Protocols Leves (7) tém que resolver a cada pacote se existe, ou no, informacéo de controle. Este fato acarreta num aumento do processamento normal dos pacotes de dados, fato que nao é desefavel numa rede de alto desempenho. De uma forma oposta, na sinalizago out-of-band temos uma desvinculacdo de dados informacao de controle, ocastonando num fator diferencial para redes que podem multiplexar a niveis mais baixos os pacotes. No caso da abordagem out-of-band é ainda Permitido que diferentes tipos de dados sejam suportados na conexéo. Um fator que aumenta a importancla desta facilidade € a necessidade comercial de algumas aplicacoes de cobranga e seguranga de uma “inica vez. A sinalizagao out-of-band parece ser a opgio correta para as redes de alto desempenho, uma vez que o tempo de processamento de pacotes € reduzido. Configuracao Inicial e Fechamento Em um estabelecimento de conexao, ou configuragdo inicial, seu fechamento esté condicionado a dois mecanismos: © Handshake: procedimento que requer explicitamente a troca de mensagens entre as entidades de comunicacao; ‘© Implicit (ou Timer-based): neste tipo de esquema a abertura de conexio é efetuada ao primetro pacote recebido. O fechamento é efetuado por intermédio de controle de tempo. Importante se observar que, no caso da conexio implicita, apenas no caso da abertura com garantia de controle de tempo o esquema funciona de modo apropriado. Em outras palavras, € necessarlo que pacotes que tenham um atraso ndo sejam confundidos com um fechamento. E necessdrio que a rede conheca os atrasos que possam estar ocorrendo. Os protocolos podem ser assim clasificados: © Handshake © Three-way: TCR OSI/TP4 (setup). XTP (release) © ‘Two-way: NETBLT, Datakit, APPN, OSYTP4 (release) © Implicit: Delta-t, VMTR XTP (setup) ConsideragSes: © Para aplicagées com granulosidade (quantidade de comunicagio versus quantidade de computago) grossa o handshake nao € téo importante; © O handshake pode ser atingido out-of-band; no caso do implicit este € efetuado in- band quando 0 primeiro pacote chega. de Alto Desempenho: Redes, Clusters e Grids Computacions Selegao do Servico de Transporte O servico do transporte tem a responsabilidade na escolha do que prover para a aplicacéo dado uma determinada infra-estrutura de rede. Dependendo da rede os servigos podem varlar de manetra sensivel. Os seguintes parametros devem ser considerados: © Tamanho maximo de pacote © Valores de timeout © Contadores de tentativas @ Tamanho de buffers. Uma ver negociados, estes parametros podem ficar estaticamente estabelecidos durante a conex4o. Outros parametros tais como: @ Fluxo de controle © Numero de seqiiéncia devem ser continuamente atualizados durante a transferéncia de dados, pelos algoritmos de controle de fluxo e sistema de recebimento de mensagem. Os seguintes parametros so considerados pelos protocolos: © Pardmetros de negociagdo durante o estabelecimento de conexio: APPN, Datakit, NETBLT, OSITP4, TCR VMTP € XTP; @ Atualizacéo dos parametros durante a transferéncia de dados: Datakit, Delta-t, NETBLT, OSVTP4, TCR VMTPeXTP; © Sclegao dos modos de operagéo: Datakit, VMTP e XTR. Multiplexagéo A multiplexagio 6 a combinagio dos dados de mais de uma conexéo ao nivel de protocolo para uma simples associagao. A multiplexagao € efetuada durante a fase de transferéncia de dados, todavia a facilidade € efetuada durante a fase de estabelecimento da conexio. Os protocolos podem ser classificados segundo a sua multiplexéo. A multiplexagéo nas conexées na camada de transporte para um ponto da camada de rede € considerada um ctreutto virtual para as redes ortentadas a conexdo. No caso de uma rede nao orfentada a conexo, significa um par (enderego de origem e enderego de destino). Classificagao dos protocolos: © Fazem multiplexagdo: XTP Delta-T, VMTR OSUTP4, TCP e NETBLT: @ Nao fazem: APPN, Datakt. Caputo 3 ~ Procesadores de Re, Dispositios de Interconexdo e Protocols Leves (@) Controle da Informagao O controle da informagio ¢ usado para 0 efetivo sincronismo de estado entre remetente € destinatério. Este servico € vital para os controle de gerenciamento de conexao, recebimento de dados, reconhecimento na chegada de pacotes, fluxo de transmissio € tratamento de erro. Exemplos séo: © XTP permite que destinatérios apontem para lacunas nos dados recebldos. Desta forma, € possivel a utilizagao do algoritmo seletivo de retransmissao. ‘© Uso excessivo de varidvels de controle deve ser evitado. Do protocolo HDLC, projetistas de protocolos de alto desempenho aprenderam que uma s6 varlével para ACK e Windows nao é interessante, © Uso imedtato de ACK muttas vezes leva a sindrome da janela boba. Reviséo do Capitulo Neste capitulo abordamos os conceitos do modelo tradicional de redes, visando introduzir novos paradigmas de rede. Com este objetivo ilustramos com a arquitetura TCPAP 0 alcance de processamento da placa de rede (NIC) ¢ do processador geral do computador (GPP). Os processadores de rede foram apresentados como uma diredo natural para que as aplicagGes distribuidas alcancem um alto desempenho. As caracteristicas arquiteténicas diferenciadas dos processadores de rede com seus sistemas de meméria e entrada/ saida foram estudadas ¢ verificadas nos exemplos comerciais de fabricantes tradicionals. Finalizando 0 capitulo, introduzimos os conceitos referentes aos protocolos leves que foram exemplificados por alguns protocolos. A utilizacdo de protocolos apropriados, Juntamente com os processadores de redes e dispositivos de rede adequados, pode representar a formagdo de uma configuracdo apropriada para prover o alto desempenho para aplicacées. Fundamentos Relevantes (Os fundamentos de que tratamos neste capitulo sao considerados por muitos a espinha dorsal dos ambientes distribuidos de alto desempenho. Assim, o leitor deve entender a importancia do conhecimento dos concettos a seguir: (100) Computagto Distribuida de Ato Desempenho: Redes, Custerse Grids Computaconots Comutador Concentrator Fim-a-Fim, See ‘System Network| In-tand i de Benda Memory Channel Network Processor NGN Ponto-2- mere Guecrios eS SE re de trensmisséo Exercicios Propostos 1, Apresente um diagrama representando uma interacéo entre duas aplicagées em uma rede convencional. 2. Oque vem a ser uma interface de rede (NIC) e qual a sua relagéo como processador de um computador local? 2. Considerando o exemplo da arquitetura TCP/IP, comente sobre a drea de atuagéo de uma NIC e de um GPP 3. Como vocé definiria o que vem a ser a nova geracdo de redes (NGN — Next Genera- ton Networks)? 4, Apresente um diagrama, semelhante ao da questdo 1, considerando uma abordagem NGN. 5. Explique detalhadamente os conceitos ASIC, ASIP FPGA, Co-Processador, GPR 6. Apresente as caracteristicas gerais de um processador de rede. 7. Qual a diferenca entre um processador de rede ¢ uma interface de rede (NIC) convencional? 8. Por que em um roteador uma abordagem de ASIC € mats aconselhével do que ASIP? ‘9. O que vena ser uma SAN e qual a sua diferenga em relacdo a uma LAN? 10. Descreva o functonamento de um dispositivo concentrador. 11. Descreva o funcionamento de um dispositive comutador. 12. Explique de uma maneira geral o funclonamento de uma configuragio utilizando Myrinet. 13. Apresente um diagrama de configuracéo Memory Channel. CCapttuio 3 Processadores de Rede, Dispostivas de Interconexo e Protocols Leves (ia 14. Apresente as vantagens do dispositive de conexéo com a tecnologla Quadrics. 15. Descreva um ambiente SCI (Scalable Coherent Interface). 16, Comente sobre o Infintband, enfatizando seu diferencial para aplicativos distribuidos. 17. Faca uma Usta de caracterfsticas dos processadores de rede apresentados no capitulo e destaque suas semelhancas e diferencas. 18, Descreva a abordagem de protocolos leves. 19. Comente sobre o processo de handshake em uma conexao TCP. destacando as vantagens e as desvantagens do procedimento para redes com alta taxa de transmissao e altos indices de erros, tais como as conexdes via satélites. Referéncias O lettor deve encontrar em {Dantas, 2002), (Fergunson, 1998] € (Tanenbaum, 1996} os conceitos fundamentais de rede necessérios para uma compreenséo mais completa das redes convencionais. Por outro lado, nas referéncias |Cisco, 20021, [Cisco, 2005], (Comer, 2004}, (Freescale, 20051, [HP 20051, [IBM, 2005], {Intel, 2005), [Myricom, 2005], [Quadrics, 2005] ¢ [S3, 2005] 0 leitor deverd encontrar mals detalhes de processadores de rede e dispositivos de interconexio. Em (Dantas, 2000] [Tantaway, 1994] [Thekkath, 1993) Weaver, 1999] s4o apresentados varios estudos de protocolos leves ¢ suas principals caracterfsticas. Bibliografia e Fonte de Consulta CISCO, http://Awww.cisco.com/en/us/products/hw/modules/ps393 1/products_white_ paper09 186a00800c6bdd.shtml, disponivel em 2005. CISCO2, White Paper Cisco 7200 Serie Network — Processor Engine NPE G1, 2002. COMER, D. E. Network Systems Design using Network Processors, Prentice-Hall, ISBN 0-13-141792-4, 2004. DANTAS, Mario, Tecnologias de Redes de Comunicagdéo e Computadores, ISBN 85- 7323-169-6, Axcel Books, 2002. DANTAS, M.A.R; Lima, M. V.G. R and Rodrigues, M.R.A. Analysis of a Lightweight ‘Transport Protocol for High-Performance Computing, The 14th Annual International ‘Sympostum on High Perfomance Computing Systems and Applications, pp. 291-299, Vietoria, Canada, June, 2000. (102) Computagdo Distrbuida de Alto Desempento: Redes, Clusters e Grids Computacionais FERGUSON, P and Huston, G. Quality of Service, Wiley Computer Publishing, 1998, FREESCALE, http:/iwww.freescale.com/files/32bit/doc/data_sheet/mpc8280EC.pdf, disponivel em Margo de 2005. HP http:/www.hp.com/techservers/systems, disponfvel em Marco de 2008. INFINIBAND, hitp:/www.infinibandta.orghome, disponfvel em Marco de 2005. INTEL, httpyswww.intel.con/design/network/products/npfamily/ixp425.htm, dispontvel em Margo de 2005. MYRINET, http:/www.myri.com, disponivel em 2005. QUADRICS, http://www.quadrics.com, disponivel on-line em 2008. 3, http:/Wwww.s3group.comy, 2005. SETI@HOME, httpy/setiathome.ssl.berkeley.edw/, disponivel online em 2005. ‘TANTAWAY; Ahmed N. High Performance Networks - Technology and Protocols, Kluwer Academic Publishers, 1994, ISBN 0-7923-9371-6. ‘THEKKATH, C.A, Nguyen, T, D. and Moy, E. Implementing Networks Protocols at User Level, Proceedings of SIGCOMM '93, September, 1993. WEAVER, A.C. The Xpress Transport Protocol - Cluster Computing, Prentice Hall, 1999. FC Ambientes de Programagao, PEER TCT Ey (08) Computagdo Distribuida de Alto Desempento: Redes, Clusters e Grids Computacionais Nos ‘iltimos anos, varias organizages que utilizam a tecnologia da informagao tém verificado uma grande demanda pela integragéo dos recursos e servicos computacionais, que estejam dispersos fisicamente. A integracdo para ser efetuada de maneira eficiente néo deve apenas se restringir a uma diminuicao de custos operacionais, mas principalmente levar em conta a adogao de mecanismos de alto desempenho. Em outras palavras, podemos imaginar uma integrag3o real de recursos e servicos distribuidos geograficamente, aonde existe um esforgo de disponibilizar todas as facilidades da configuracéo de uma maneira virtual Gnica. A integracdo otimizada te como exemplo interessante algumas configurag6es heterogéneas distribufdas, que s4o espectalmente voltadas para o armazenamento de grandes quantidades de dados. Essas configurag6es empregam mecanismos de alto desempenho para disponibilizar para seus usuarios uma grande massa de dados como uma imagem local ‘inica. Atualmente, as configuracées de agregados de computadores (clusters) séo utilizadas em atividades de pesquisa e desenvolvimento de novos produtos em Areas tais como a biologia computacional, fisica de alta energla, experimentos quimicos, visualizagéo na 4rea médica, simulacdo de estruturas, engenharia de produtos, reservat6rio de petr6leo, controle de processos e reconhecimento da voz. De uma outra forma, pode-se afirmar que a existéncia de indimeros clusters computacionals encontrados nas empresas de servigos, indtistrias e universidades precisa de ambientes de software simples amigéveis que possam prover uma melhor capacidade de acesso, desenvolvimento de aplicac6es, transferéncia de arquivos ¢ armazenamento de dados com uma alta taxa de transmisséo. Lo ..".FU“cV“‘.. Em.um projeto moderno de integragao de recursos e servigos computacionais os seguintes aspectos usuaimente devem ser observados: @ Utiltzagdo de uma Infra-estrutura de rede estruturada que possa suportar a criagéo de enlaces entre ambtentes de clusters e grids computactonats, de dwersos departamentos e em localidades dispersas da organtzacdo, podendo gerar a facilidade de comunicagao abstrata entre apitcagées de alto nivel e com uma grande taxa de transmissdo: © Criagao de uma tnfra-estrutura capilar de acesso a rede estruturada, por intermédio de uma rede sem fio de alcance local e global. Desta forma, qualquer elemento da organtzagao deve poder com seu dispositive mével ter acesso, fazer solicitagdes e recebé-las de dispostttvos tats como um telefone celular ou palmtops; CCopituo 4 Ambientes de Programagdo,Ferramentas e Middewares (103) © Geragdo de factlidade de intercdmbio de dados estruturados entre os departamentos empregando as redes estruturadas e sem flo. Assim, os usuarios poderdo fazer acessos virtuats aos seus dados independentes de ‘sua posiedo fisica ¢ localizagdo dos recursos e servigos; © Provimento de uma estrutura de armazenamento de grande quantidade de dados de forma distribuida, utilizando os discos dos clusters, grids e sistemas de armazenamento encontrados nos dtversos departamentos e nticleos computactonats das instituicoes: © Criagdo de uma infra-estrutura de software de acesso amigdvel ao ambiente de recursos e servigos, adotando a abordagem de portal de grade computacional. O ambiente deve disponibilizar para todos os usudrios autorizados 0 acesso d base de dados, recursos e servicos localizados em locais dispersos na organizacao. Em resumo, atualmente uma proposta de profeto de integragéo de recursos € servicos deve considerar de uma forma inovadora a tntegracéo de recursos ‘computacionais, aplicativos, dados e dispositivos especiats. E interessante disponibilizar formas de acesso pela rede estruturada e sem flo, para todos os usudrios autorizados do ambiente, de uma manetra simples e amigdvel. Ambientes de Software Neste capitulo, vamos dar infcio ao estudo de alguns ambientes de software que so anecessarios para que aplicagdes distribuidas e paralelas possam ser executadas com sucesso de uma forma integrada nos sistemas computacionals baseados em clusters e grids. ‘Como uma primeira etapa do nosso esforco de melhor entender os ambientes, seria mais esclarecedor se fosse possivel apresentar uma classificacdo Ja estabelecida e Jargamente acelta dos pacotes de software, observando algumas de suas caracteristicas © para quals funcées esses se destinam. Todavia, como ainda ndo existe uma taxonomia ‘que seja amplamente reconhecida para a classificagao dos ambientes que estaremos estudando neste capitulo, decidimos categorizar neste livro, de uma maneira mais geral, 08 ambientes de software como: @ Ambientes de programagao: os ambientes de programagao para configuragées distribufdas solicitam um cuidado especial sob varios aspectos, além daquelas Preocupagées convencionais de configuragoes centralizadas. Dentre as inimeras situagbes que podemos encontrar dentro das configuragées distribufdas e paralelas, © lettor deve se lembrar que os processos de uma aplicacéo especifica podem estar sendo executados em computadores de locais distintos do globo e que a comuntcacao

Você também pode gostar