
O mundo de computao moderna oferece muitos mtodos teis e ferramentas potencialmente aos cientistas e engenheiros, mas o passo rpido de mudana em hardware, software, e algoritmos utiliza freqentemente a tecnologia de computao mais nova difcil. O Cientfico e Engenharia Computao sries focos em avanos de correnteza computando tecnologias, com a pontaria de facilitar transferncia destas tecnologias a aplicaes em cincia e criar. Incluir livros em teorias, mtodos, e aplicaes originais em tais reas como paralelismo, amplas simulaes, computao tempo-crtica, desgnio computador-ajudado e criando, uso de computadores fabricando, visualizao de dados cientficos, e tecnologia de interface de humano-mquina. 

 pretendido que as sries ajudam os cientistas e engenheiros a entender o mundo atual de computao avanada e se antecipar desenvolvimentos futuros que afetaro os ambientes de computao deles/delas e abriro capacidades novas e modos de computao. 

Este volume nas sries descreve o crescentemente prspero distribuiu / sistema paralelo chamado Beowulf. Um Beowulf  um cluster de PC interconectado por tecnologia de rede e empregando o modelo de mensagem-transcurso para computao paralela. Vantagens fundamentais desta aproximao so desempenho alto para baixo preo, scalability de sistema, e ajuste rpido para avanos tecnolgicos novos. 

Este livro inclui como construir, programa, e opera um sistema de Beowulf baseado no sistema operacional de Linux. Um volume de companheiro nas sries prov a mesma informao para Beowulf cresce em cachos baseado no sistema operacional de Microsoft Windows. 

Hardware de Beowulf, software de sistema operacional, programando aproximaes e bibliotecas, e software de administrao de mquina est todo coberto aqui. O livro pode ser usado como um livro de ensino acadmico como tambm um guia prtico por projetar, implementando, e operar um Beowulf para esses em cincia e indstria que precisam de um sistema poderoso mas so relutante comprar um processador maciamente paralelo caro ou computador de vetor. 


Janusz S. Kowalik Ns sabemos duas coisas sobre progresso em programao paralela: 


	Como quase todos tecnologia, progresso vem quando esforo  encabeado em uma terra comum, direo focalizada com tecnlogos competindo e compartilhando resultados. 

	Programao paralela permanece muito difcil e deveria ser evitada se possvel. Isto discute para um nico ambiente e para outra pessoa fazer a programao por funo paralela embutida (por exemplo, bancos de dados, aplicaes compartilhando vigorosos, e um mercado de aplicaes). 


Depois de 20 anos de falsos incios e becos sem sada em arquitetura de computador de alto-desempenho, "o modo" est agora claro: Clusters de Beowulf esto se tornando a plataforma para muitos cientfico, criando, e aplicaes comerciais. Supercomputador de Cray-estilo do Japo ainda so usados para legado ou cdigo de aplicaes de unpartitionable; mas esta  uma frao encolhendo de supercomputing porque tais arquiteturas no so scalable ou disponvel. Mas se o cdigo no pode ser portado ou pode ser dividido, so requeridos supercomputador de vetor a centros maiores. Igualmente, o Top500 compartilham de MPPs1 proprietrio (processadores maciamente paralelos), SMPs (memria compartilhada, processadores de vetor mltiplos), e DSMs (memria compartilhada distribuda) que vieram da caa governo-patrocinada dcada-longa para o computador de scalable est recusando. Infelizmente, a diversidade arquitetnica criada pela caa assegurada que uma plataforma standard e modelo programando no pudessem formar. Cada plataforma teve baixo volume e desenvolvimento de software enorme vale e um fechadura-em para aquele vendedor. 

H pouco duas geraes atrs baseado na lei de Moore (19952), uma pletora de supercomputador de vetor, multiprocessador de scalable de non, e clusters de MPP construdos de ns proprietrio e redes formaram o mercado. Isso me fez perceber o erro de uma predio mais cedo que estas mquinas de compartilhar-memria exticas eram o futuro inevitvel de supercomputing. Na ocasio, vrios tecnologia de fora-o-estante (CAMAS) de comercial promissora agrupa usando microprocessadores standards e redes estava comeando a ser construdo. O Condor de Wisconsin para colher ciclos de estao de trabalho e Berkeley AGORA (rede de estaes de trabalho) era meus favorito. Eles proveram a pessoa a duas ordens de 


1MPPs so uma variante proprietrio de clusters ou multicomputers. Multicomputers  o nome que Allen Newell e eu cunhamos em nosso 1971 livro, Estruturas de Computador, caracterizar um nico sistema de computador que inclui computadores conectados que comunicam com um ao outro por transcurso de mensagem (contra por memria compartilhada). Na 2001 lista dos computadores de Top500 do mundo, excluem tudo alguns vetor de compartilhar-memria e computadores de compartilhar-memria distribudos so multicomputers. "Volumoso" foi proposto como o nome para clusters mais de 1,000 computadores. 

2G. Sino, "1995 observaes em alternativas de Supercomputing: A carroa de banda de MPP conduziu para um cul-de-sac?", Comunicaes do ACM 39, no. 3 (1996 de maro) 11.15. 

melhoria de magnitude em desempenho / preo em cima dos sistemas proprietrio, incluindo o mais alto deles/delas operacional em cima. 

Nos ltimos cinco anos, emergiu o "modo de Beowulf." Desenvolveu e integrou um ambiente de programao que funciona em clusters de scalable construdo em artigo parts.typically baseado em Intel mas s vezes baseado em Alfas ou PowerPCs. Isto tambm leveraged um sistema operacional vendedor-neutro (Linux) e ferramentas maduras ajudadas como GNU, MPI, PVM, Condor, e vrio schedulers. A introduo de Windows Beowulf influncias a base de software grande, por exemplo, aplicaes, escritrio e ferramentas de visualizao, e agrupou bancos de dados de SQL. 

O mais baixo preo de Beowulf e padronizao atraram uma comunidade de usurio grande a uma base de software comum. Beowulf segue o ciclo de computador pessoal de inovao: disponibilidade de plataforma atrai aplicaes; aplicaes atraem os usurios; demanda de usurio atrai competio de plataforma e mais aplicaes; mais baixos preos vm com volume e competio. Simultaneamente, plataformas proprietrio ficam menos atraentes porque eles faltam software, e conseqentemente mora em mercados de nicho. 

Beowulf  o pior pesadelo do vendedor de hardware: h pouco lucro em Beowulf cresce em cachos de ns de artigo e interruptores. Usando CAMAS os PC, redes, sistemas operacionais Linux/GNU-baseados grtis e ferramentas, ou Windows, ativa Beowulf qualquer groupto compram e constroem seu prprio supercomputador. Uma vez o movimento alcanou massa crtica, o mundo inclinou a este paradigma de computao novo. Nenhuma quantia de esforo de governo para sustentar a indstria domstica doente, e nenhuma quantia de indstria intrigar, poderia inverter aquela tendncia. Hoje, tm sido para companhias de supercomputador de vetor tradicionais dos Estados Unidos, e eles so um negcio de vaidade em Japo, com menos que 10% do Top500 que  processadores de vetor. Agrupa supercomputador de vetor de batida, embora ainda sejam precisados aproximadamente oito microprocessadores de escalar igualar o poder de um processador de vetor. 

O movimento de Beowulf unificou a comunidade de cluster e mudou o curso de computao tcnica atravs de "commoditizing" isto. Beowulf permitiu os usurios a ter uma plataforma comum e modelo programando independente de processadores proprietrio, interconecta, memria, ou base de software. Uma base de aplicaes, como tambm uma indstria baseado em muitos microprocessadores de assassino" baratos", est formando finalmente. 

Voc  a causa desta revoluo, mas ainda h muito para ser feito! H motivo de preocupao, porm. Beowulf tem xito porque  uma base comum com massa crtica. 

Haver presso considervel para criar dialetos de Linux / Beowulf (por exemplo, 64bit sabor e vrio vendedor dialetos binrios) que fragmentar a comunidade, palmo de ateno de usurio, treinamento, e aplicaes da mesma maneira que proprietrio-plataforma que dialetos de Unix cresceram de vendedores de hardware diferenciar e prender em usurios. A comunidade tem que equilibrar isto pseudo-e inovao com incremento contra padronizao, porque padronizao  o que d para o Beowulf sua vantagem enorme. 

Tendo descrito o aparecimento inevitvel de dialetos de Linux / Beowulf, e as armadilhas associadas, eu estou defendendo Windows Beowulf fortemente. Em vez de fragmentar a comunidade, Windows Beowulf aumentar a comunidade de Beowulf significativamente. Uma verso de Windows aceitar a comunidade grande das pessoas que querem as ferramentas de Windows, software estendido em camadas, e estilo de desenvolvimento. J, a maioria dos usurios de sistemas grandes opera um sistema heterogneo que executa ambos, com o Windows (provendo um banco de dados de scalable grande) e desktop Visual-X programando ferramentas. Alm disso, competio melhorar ambos. Finalmente, o ganho grande vir de cruz-fertilizao de capacidades de .NET que esto conduzindo o modo  computao verdadeiramente distribuda que foi prometida durante duas dcadas. 


Beowulf se torna um contendor 


No meio-1980s um supercomputing de NSF centra programa era estabelecido com respeito a VAX minicomputers.3 Digital Embora o intervalo de desempenho entre o VAX e um Cray pudesse ser to grande quanto 100,4 o desempenho por preo normalmente era o contrrio: VAX deu muito mais estrondo para o coro. VAXen se tornou o computador dominante logo para investigadores. Cientistas puderam possuir e operar os prprios computadores deles/delas e adquire recursos de computao mais com o prprio VAXen deles/delas, enquanto incluindo esses que foram operados como os primeiros clusters. Os centros de supercomputador eram principalmente usados para executar tarefas que eram muito grande para estes sistemas pessoais ou departamentais. 

Em 1983 ARPA lanou a Scalable Computao Iniciativa para fundar em cima de uma contagem de projetos de pesquisa a desgnio, construo, e scalable de compra, computadores paralelos. Muitos destes foram centrados na idia do microprocessador de assassino" emergindo." Foram fundados mais de quarenta iniciantes com capital de risco e nossos dlares de imposto para construir computadores paralelos diferentes. Todos estes esforos falharam. (Eu calculo este custo de esforos entre um e trs bilhes dlares, mais pelo menos dobre isso em usurio que programa isso  escrito melhor fora como treinando.) A consolidao de dvida flutuante vasta de todas as espcies diferentes que s variaram superficialmente pouco progresso garantido e nenhum mercado de aplicaes. Porm, a comunidade de usurio conseguiu criar mais baixa terra comum defensivamente 


3O VAX 780 foi introduzido em 1978. 

4VAXen faltou a habilidade para adquirir 5.20 vezes o desempenho que um Cray grande, compartilhado proveu para nicos problemas. 

padres de denominador para permitir programas a executar pelo arranjo largo de arquiteturas variadas. 

Em 1987, o diretrio de computao novo da Fundao de Cincia Nacional estabeleceu a meta de alcanar paralelismo de 100X antes do ano 2000. A meta adquiriu duas respostas extremas: Don Knuth e Ken Thompson disseram que programao paralela era muito dura e que ns no deveramos focalizar nisto; e outros sentiam a meta deveria ser 1,000,000X! Todo o mundo outro qualquer um ignorou a chamada ou foi quietamente junto pela consolidao de dvida flutuante. Esta chamada foi acompanhada por uma oferta (por mim) de prmios anuais para recompensar esses que alcanaram paralelismo extraordinrio, desempenho, e desempenho / preo. Em 1988, trs investigadores a Sandia obtiveram paralelismo de 600X em um sistema de 1000-n, enquanto indicando que 1000X eram possveis com mais memria. O anncio da realizao deles/delas galvanizou outros, e os Gordon Sino prmios continuam, com ganhos de 100% quase todo ano. 

De forma interessante, um fator de 1000 escalamento parece continuar sendo o limite para a maioria das aplicaes de scalable, mas 20.100X so mais comuns. Na realidade, pelo menos a metade dos sistemas de Top500 tem menos que 100 processadores! Claro que, o paralelismo  em grande parte determinado pelo fato que os investigadores so oramento limitado e tm s mquinas menores que valem $1,000. $3,000 por n ou paralelismo de & lt; 100. Se os ns esto em um centro, ento o por custo de n  multiplicado antes de pelo menos 10, enquanto dando um limite superior de 1000.10,000 ns por sistema. Se os ns forem processadores de vetor, o nmero de processadores  dividido antes das 8.10 e o por preo de n elevado pelas 100X. 

Em 1993, Tom Sterling e Don Becker levaram um projeto pequeno dentro de NASA a construir uma estao de trabalho de gigaflops que vale debaixo de $50,000. O projeto de Beowulf denominado estava fora da comunidade de pesquisa de paralelo-processamento principal: era ao invs baseado em artigo e tecnologia de CAMAS e publicamente software disponvel. O projeto de Beowulf teve sucesso: um 16-n, $40,000 cluster construiu de Intel que 486 computadores executaram em 1994. Em 1997, um cluster de Beowulf ganhou o Gordon Sino Prmio para desempenho / preo. A receita por construir o prprio Beowulf da pessoa foi apresentada em um livro atravs de al de et Esterlino. em 1999.5 Antes do ano 2000, estavam operando vrios computadores de mil-n. Em 2001 de junho, 33 Beowulfs esteja na Top500 supercomputador lista (www.top500. org). Hoje, no ano 2001, podem comprar escolas secundrias tcnicas e podem montar um supercomputador de partes disponvel na loja de computador de canto. 

Beowulfs formou um fazer-isto-voc comunidade de computao de cluster que usa microprocessadores de artigo, rede local interruptores de Ethernet, Linux (e agora Windows 2000), e ferramentas que evoluram da comunidade de usurio. Este vendedor-neutro 


5T. Esterlino, J. Salmo, D. J. Becker, e D. V. Savarese, como construir um Beowulf: Um guia para a implementao e aplicao de clusters de PC, imprensa de MIT, Cambridge, MA, 1999. 

relacionado a um ao outro que eles so agora. Eu posso ver o ambiente finalmente que eu desafiei a NSF informtica pesquisa comunidade para embutir 1987! 

Antes das 2010 ns podemos esperar vrios caminhos interessantes dos que Beowulf poderia ser anfitrio para mais poder por paralelismo: 


	Em situ crescem em cachos estaes de trabalho Condor-marcadas que provem facto de de, com scaleup de 100.10,000X em muitos ambientes 

	Caches de em-chip grandes, com processadores mltiplos dar muito mais desempenho para nicos ns 

 Discos com processadores embutidos em uma rede anexaram arquitetura de memria, ao invs de rea de memria que transmite em rede isso conecta discos a ns e exige uma rede de rea de sistema separada interconectar ns 

J em 2001, um nmero relativamente grande de aplicaes pode utilizar tecnologia de Beowulf "evitando" programao paralela, inclusive o seguinte: 

	Web e servidores de Internet que executam embarrassingly comparam para servir uma base de cliente grande 

	Transao processando comercial, incluindo inerente, bancos de dados de parallelized, 

	Monte Carlo que simulao e imagem que fazem isso so que embarrassingly comparam 


Grande progresso foi feito em aplicaes de parallelizing (por exemplo, problemas de n-corpo) isso tinha nos desafiado no passado. O desafio restante mais importante  continuar antes no curso a parallelize essas aplicaes julgaram a provncia de multiprocessador de compartilhar-memria. Estes incluem problemas que requerem acesso de varivel aleatrio e refinamento de malha adaptvel. Por exemplo, engenharia automvel e aerodinmica, clima e oceano modelando, e aplicaes que envolvem espao heterogneo permanecem a provncia de multiprocessador de vetor. Ns precisamos ter uma lista definitiva de desafios para anotar progresso; mas, infelizmente, a comunidade de supercomputador de vetor no proveu esta lista. 

Outro desafio deve ser utilizar computadores de multi para operao paralela to fcil quanto programao de escalar. Embora grande progresso foi feito por cientistas de computational que trabalham com cientistas da computao, o esforo para adotar, entenda, e os cientistas da computao de trem nesta forma de paralelismo foram mnimos. Poucos departamentos de informtica esto preparados para assumir este papel. 

Baseado em duas dcadas de "nenhuma surpresa" em arquiteturas globais, haver algum avano imprevisto fora da lei de Moore ajudar alcance fracassos de peta? Com o que se parecero sistemas de alto-desempenho em dois ou quatro mais geraes da lei de Moore, enquanto considerando processamento, memria, gesto de redes, e conexes de usurio? Beowulf evoluiro a clusters enormes (100,000-n) construdos de ns menos caros? Ou clusters sero s parte da "Grade" de computao internacional? 


Sino de Gordon pesquisa de Microsoft 


Dentro dos ltimos trs anos, houve um aumento rpido no desenvolvimento e aplicao de clusters de computador ampliar a gama de capacidades de sistema disponveis alm desses de desktop convencional e plataformas de servidor. Atravs de leveraging o desenvolvimento de hardware e software para estes amplamente comercializados e sistemas de computador populares fortemente usados, clusters entregam ordem de magnitude ou mais de escalar de desempenho de computational e capacidade de memria sem incorrer custos de R&amp;D adicionais significantes. Sistemas de Beowulf-classe que exploram massa-mercado hardware de PC e software junto com tecnologia de rede comercial custo-efetiva provem os usurios com as vantagens duais de preo / desempenho sem precedente e flexibilidade de configurao por computao paralela. Sistemas de Beowulf-classe podem ser implementados pelos usurios finais eles de componentes disponveis. Mas com o crescimento deles/delas em popularidade, assim evoluiu apoio de indstria por sistemas de Beowulf comerciais. Hoje, dependendo de fonte e servios, podem ser instalados sistemas de Beowulf a um custo de entre um e trs dlares por megaflops de cume e de uma balana de alguns gigaflops para meio um teraflops. Igualmente importante  o crescimento rpido em diversidade de aplicao. Originalmente mirado  comunidade cientfica e tcnica, sistemas de Beowulf-classe se expandiram em extenso ao domnio comercial largo para transao que processa e Web conserta como tambm para a indstria de entretenimento para efeitos especiais computador-gerados. Agora mesmo, o computador maior debaixo de desenvolvimento nos Estados Unidos  um cluster de artigo isso em concluso estar a uma balana de 30 desempenho de cume de teraflops.  bastante possvel que, pelo meio desta dcada, cresce em cachos artigo em geral e sistemas de Beowulf-classe podem dominar meio e computao de alto-trmino em particular para uma gama extensiva de cargas de trabalho tcnicas e empresariais. Tambm se aparece que para muitos estudantes, a primeira exposio deles/delas para comparar computao est terminado mo-em experincia com clusters de Beowulf. 

A publicao de Como Construir um Beowulf atravs de Imprensa de MIT marcou um marco milirio importante em computao de artigo. Pela primeira vez, havia um livro inclusivo entrada-nivelado que mostra como implementar e aplicar um cluster de PC. A meta inicial daquele livro que foi libertado quase dois anos atrs era capturar o estilo e contedo das sries de tutorial altamente prsperas que tinham sido apresentadas a vrias conferncias pelos autores e os colegas deles/delas. A oportunidade deste livro e o interesse quase explosivo em Beowulf cresce em cachos ao redor do mundo fez isto o livro mais prspero do MIT Press Cientfico e sries de Computao de Engenharia ano passado. Enquanto outros livros emergiram desde ento no tpico de montar clusters, ainda permanece o trabalho mais inclusivo hardware pedaggico, software, e mtodos de programao. No entanto, apesar de seu sucesso, Como Construir um Beowulf endereou as necessidades de s uma parte do rapidamente a comunidade de cluster de artigo crescente. E por causa da evoluo rpida em hardware e software, aspectos de seus contedos cresceram passados em um perodo muito curto de tempo. Como Construir um Beowulf ainda  uma introduo muito til a artigo agrupa e foi elogiado amplamente para sua acessibilidade para primeiro-cronometrar os usurios. Achou seu modo at mesmo em vrias escolas secundrias pelo pas. Mas a comunidade requer um tratamento muito mais extenso de um tpico que mudou dramaticamente desde que aquele livro foi introduzido. 

Durante os ltimos dois anos houve avanos significantes em ferramentas de software e middleware por administrar recursos de cluster alm das melhorias bvias em hardware. Os sistemas de Beowulf cedo ordinariamente foram empregados por um ou alguns trabalhadores prximo associados e aplicado para um pequeno facilmente carga de trabalho controlada, s vezes at mesmo dedicou a uma nica aplicao. Isto permitido superviso adequada por dirige e interveno manual, freqentemente pelos usurios eles. Mas como cresceu a base de usurio e a natureza das responsabilidades para os clusters diversificou rapidamente, esta aproximao "me-e-popular" simples para operaes de sistema provou inadequado em muitos comercial e contextos de industrial-faixa. Como um revisor um pouco indelicadamente ponha, Como Construir um Beowulf no tratar dos problemas duros. Isto era, ser honesto, pelo menos em parte verdadeiro, mas refletiu o estado da comunidade na hora de publicao. Felizmente, o estado da arte progrediu ao ponto que um instantneo novo dos princpios e prticas no s est justificado mas extremamente precisado. 

O livro que voc est segurando  muito mais que uma segunda adio do original Como Construir um Beowulf; marca uma transio principal do Beowulf experimental modesto cedo cresce em cachos  corrente mdio-para amplo, industrial-faixa clusters PC-baseados em uso largo hoje. Em vez de descrever um nico profundidade-primeiro caminho minimalista a adquirir um Beowulf upand executando de sistema, reflete este trabalho de referncia novo uma gama de escolhas que os usurios de sistemas e administradores tm programando e administrando o que pode ser uma base de usurio maior para um Beowulf grande agrupou sistema. Realmente, aceitar a necessidade para um potencialmente readership diverso, este livro novo inclui trs partes principais. A primeira parte, muito como o original Como Construir um Beowulf, prov o material introdutrio, tecnologia de hardware subjacente, e assembly e instrues de configurao para implementar e inicialmente usar um cluster. Mas at mesmo esta parte estende o utilitrio desta descrio bsico-nivelada para incluir discusso e tutorial em como usar cdigos de padro de desempenho existentes para testar e avaliar clusters novos. Os segundos focos de parte em programar metodologia. Aqui ns demos tratamento igual amplamente aos dois estruturas de programao usadas: MPI e PVM. Esta parte estava s (como faz o outro dois) e prov apresentao detalhada de princpios de programao paralelos e prticas, enquanto incluindo alguns do amplamente bibliotecas usadas de algoritmos paralelos. O maior e terceira parte do livro novo descrevem infra-estrutura de software e ferramentas por administrar recursos de cluster. Isto inclui algum do mais popular dos pacotes de software prontamente disponveis para programao de tarefa distribuda, como tambm ferramentas por monitorar e administrar recursos do sistema e contas do usurio. 

Prover a diversidade necessria e profundidade por uma gama de conceitos, tpicos, e tcnicas, eu desenvolvi colaborao entre alguns dos peritos do mundo em computao de cluster. Eu agradeo aos muitos contribuintes que acrescentaram as percias deles/delas ao corpo deste trabalho lhe trazer a muito melhor apresentao em tantos assuntos. Em muitas caixas, os contribuintes so os fomentador originais do componente de software que  descrito. Muitos dos contribuintes publicaram trabalhos mais cedo nestes ou outros assuntos tcnicos e tiveram experincia que s vezes carrega assuntos difceis em forma legvel. Tudo so os participantes ativos na comunidade de cluster. Como resultado, este livro novo  rapidamente um canal direto a alguns dos motoristas mais influentes disto campo comovente. 

Um das mudanas importantes que aconteceram est na rea de sistema operacional de n. Quando Don Becker e eu desenvolvemos os primeiros sistemas de Beowulf-classe em 1994, ns adotamos o ento-inchoate kernel de Linux porque era consistente com outros Unix-iguais sistemas operacionais empregados em uma gama extensiva de cientfico compute plataformas de estaes de trabalho para supercomputador e porque proveu uma base de cdigo fonte aberta cheia que poderia ser modificada como necessrio, enquanto provendo um veculo ao mesmo tempo para transferncia de tecnologia para outros usurios potenciais. Em parte por causa destes esforos, Linux  o sistema operacional de escolha para muitos usurios de sistemas de Beowulf-classe e o nico amplamente sistema operacional usado para computao tcnica com clusters. Porm, durante o perodo interveniente, a nica fonte mais larga de sistemas operacionais de PC, Microsoft, proveu a base para muitos clusters comerciais usados para transao de dados que processa e outras cargas de trabalho negcio-orientadas. Microsoft Windows 2000 reflete anos de desenvolvimento e emergiu como um ambiente de software maduro e robusto com a nica base maior de produtos de fornecedor de software independente mirados. Trabalho de caminho-achado importante a NCSA e mais recentemente ao Cornell Teoria Centro demonstrou aquelas cargas de trabalho de aplicao cientficas e tcnicas podem ser executadas em sistemas Windows-baseados. Enquanto debate aquecido continuar sobre o mrito relativo dos dois ambientes, o mercado j falou: Linux e Windows tm a prpria base de usurio respectiva grande deles/delas para clusters de Beowulf. 

Como resultado de tentar representar a PC cluster comunidade que claramente encarna dois acampamentos distintos relacionou ao sistema operacional de n, meus colegas e mim decidiu desenvolver duas verses do mesmo livro simultaneamente. Beowulf Cluster Computao com Linux e Beowulf Cluster Computao com Windows  essencialmente o mesmo livro a no ser que, como insinuam os nomes, o primeiro assume e discute o uso de Linux como a base de um cluster de PC enquanto o segundo descrever clusters semelhantes que usam a Microsoft Windows. Apesar desta diferena marcada, as duas verses so conceptualmente idnticas. As tecnologias de hardware no diferem. As metodologias de programao variam em certos detalhes especficos dos pacotes de software usados mas so formalmente o mesmo. Muitos mas no todas as ferramentas de administrao de recurso executaram em ambas as classes de sistema. Esta convergncia est progredindo at mesmo como os livros  por escrito. Mas at mesmo onde isto no  verdade, um pacote alternativo e complementar existe e  discutido para o outro tipo de sistema. Aproximadamente 80 por cento do texto atual so idnticos entre os dois livros. Entre eles, eles deveriam cobrir a maioria vasta de clusters de PC em uso hoje. 

Em nome de meus colegas e mim, eu o dou boas-vindas para o mundo de Beowulf barato agrupe computao.  pretendido que este livro facilita, motiva, e dirige este campo rapidamente emergindo adiante. Nossa esperana fervente  que voc pode beneficiar de nossos esforos e este trabalho. 


Reconhecimentos 


Eu agradeo os autores dos captulos contribudos a este livro primeiro: 


David Bailey, Lawrence Berkeley laboratrio nacional Peter H. Beckman, Turbolinux Remy Evard, Argonne laboratrio nacional Al Geist, cume de carvalho laboratrio nacional William Gropp, Argonne laboratrio nacional David B. Jackson, universidade de Utah James Patton Jones, Veridian Jim Kohl, cume de carvalho laboratrio nacional Walt Ligon, Clemson Miron Livny universitrio, universidade de Wisconsin Ewing Lusk, Argonne laboratrio nacional o Karen Miller, universidade de Wisconsin Bill Nitzberg, Veridian Rob Ross, Argonne laboratrio nacional Daniel Savarese, universidade de Maryland Stephen Scott, cume de carvalho laboratrio nacional Todd Tanenbaum, universidade de Wisconsin Derek Wright, universidade de Wisconsin, 


Muitas outras pessoas ajudaram de vrios modos para reunir este livro. Obrigado est devido a Michael Brim, Philip Carns, Anthony Chan, Andreas Dilger, Michele Evard, Tramm Hudson, Andrew Lusk, Richard Lusk, John Mugler, Thomas Naughton, John-Paul Navarro, Daniel Savarese, Rick Stevens, e Edward Thornton. 

Jan Lindheim de Caltech proveu informao significativa relacionada a transmitir em rede hardware. Narayan Desai de Argonne proporcionou ajuda inestimvel o n e captulos de hardware de rede. Especial obrigado v para Rob Ross e Dan Nurmi de Argonne pelo conselho deles/delas e ajude com o captulo de configurao de cluster. 

Paul Angelino de Caltech contribuiu as instrues de assembly para os ns de Beowulf. Susan Powell de Caltech executou o editando inicial de vrios captulos do livro. 

Os autores gostariam de reconhecer a iniciativa importante respeitosamente e apoio proveu por George Spix, Svetlana Verthein, e Todd Needham de Microsoft que era crtico ao desenvolvimento deste livro. Dr. Esterlino gostaria de agradecer Sino de Gordon e Jim Gray o conselho deles/delas e orientao em sua formulao. 

Gail Pieper, escritor tcnico na Matemtica e Diviso de Informtica a Argonne, era um guia indispensvel em assuntos de estilo e uso e imensamente melhorou a legibilidade da prosa. 

Introduo 


Thomas Sterling 


Agrupar  um conceito poderoso e tcnica por derivar capacidades estendidas de classes existentes de componentes. Em natureza, agrupar  um mecanismo fundamental por criar complexidade e diversidade pela agregao e sntese de elementos bsicos simples. O resultado  nenhum menos que a evoluo e estrutura do universo, as molculas combinao que ditam a forma e atributos de todos os materiais e a forma e comportamento de todo o multi vida celular, enquanto se incluindo. Realizar tal sntese,  exigido um mdio interveniente de combinao e troca que estabelece o interrelationships entre os elementos constituintes e facilita as interaes cooperativas deles/delas de qual  derivado o comportamento emergente da entidade combinao. Para organizaes combinao em natureza, os mecanismos que liga podem ser gravidade, coulombic fora, ou junes de synaptic. No campo de computar sistemas, agrupando est sendo aplicado para fazer estruturas de sistemas novas de elementos de computao existentes entregar capacidades que por outras aproximaes poderiam valer facilmente como muito dez vezes. Em recentes anos que agrupam hardware e software evoluiu de forma que hoje instituies de usurio potenciais tm uma pletora de escolhas em termos de forma, balana, ambientes, custo, e meios de implementao conhecer o scalable deles/delas computando exigncias. Alguns dos computadores maiores no mundo so sistemas de cluster. Mas clusters tambm esto fazendo papis importantes em mdio-balana tcnico e comrcio computando, levando vantagem de barato, massa-mercado tecnologia de computador PC-baseada. Estes sistemas de Beowulf-classe ficaram extremamente populares, enquanto provendo preo / desempenho excepcional, flexibilidade de configurao e atualiza, e scalability para prover uma ferramenta nova poderosa, abrindo oportunidades completamente novas por computar aplicaes. 

1.1 Definies e Taxonomy 


Nas condies mais gerais, um cluster  qualquer conjunto de elementos independentemente operacionais integrado por algum mdio para coordenou e comportamento cooperativo. Isto  verdade em sistemas biolgicos, organizaes humanas, e estruturas de computador. Consistente com esta interpretao larga, clusters de computador so conjuntos de computadores independentemente operacionais integrados por meio de uma rede de interconexo e software usurio-acessvel aceitando por organizar e controlar tarefas de computao concorrentes que podem cooperar em um programa aplicativo comum ou carga de trabalho. H muitos tipos de clusters de computador, enquanto percorrendo de entre os computadores maiores do mundo para colees de throwaway os PC. Agrupar era entre as primeiras tcnicas de arquitetura de sistema de computador por alcanar melhorias significantes em desempenho global, largura da banda de acesso de usurio, e confiana. Foram implementados muitos clusters de pesquisa em indstria e academia, freqentemente com redes proprietrio e/ou costume que processam ns. 

Clusters de artigo so conjuntos locais de computar ns que so sistemas comercialmente disponveis empregados para mercados de processamento de dados populares. A rede de interconexo integrava o compute ns de um cluster de artigo  dedicado ao sistema de cluster e tambm est comercialmente disponvel de seu fabricante. A rede  dedicada no senso que  interiormente usado dentro do cluster que aceita s essas comunicaes requereu entre o compute ns que compem o cluster, seu host ou ns de mestre que se so "mundano" e possivelmente os ns de satlite responsvel por administrar recursos de memria de massa que fazem parte do cluster. A rede de um cluster de artigo no deve ser proprietrio ao produto de cluster de um nico vendedor mas deve estar disponvel para obteno, em geral, para o assembly de qualquer cluster. Assim, todos os componentes de um cluster de artigo podem ser comprados por integrador de sistemas de tero-festa ou o prprio site de instalao de trmino-usurio. Artigo agrupa empregue software que tambm est disponvel  comunidade geral. Software pode ser grtis, repackaged e distribuiu para custo modesto, ou desenvolveu atravs de fornecedores de software independente de tero-festa (ISVs) e comercialmente comercializou. Os vendedores podem usar e podem distribuir como parte dos produtos de cluster de artigo deles/delas o prprio software proprietrio deles/delas contanto que alterne software externo est disponvel que poderia ser empregado em seu lugar. Os fatores motivando gmeos que dirigem e restringem a classe de computadores de artigo so (1) o uso deles/delas de especialidade de non separa que explora a feira para reduo de custo e confiana estvel e (2) a evitao de solues sem igual crticas restringidas a um produto de cluster especfico que se indisponvel no futuro romperia produtividade de trmino-usurio e aventuraria investimento de usurio em base de cdigo. 

Sistemas de Beowulf-classe so clusters de artigo que exploram os atributos derivados de massa-mercado que fabrica e distribuio de consumidor-faixa componentes eletrnicos digitais. So feitos Beowulfs de PC, s vezes muitos eles; discos rgidos de EIDE (aumentado integrado dirija eletrnica) (normalmente) baratos; e DIMMs barato (mdulos de memria de inline duais) para memria principal. Vrias famlias de microprocessador diferentes foram prosperamente usadas em Beowulfs, inclusive o Intel X86 longo-duradouro a famlia (80386 e sobre), o AMD deles/delas contrapartes compatveis binrias, o Compaq Alfa 64-bit arquitetura, e o IBM PowerPC sries. Sistemas de Beowulf entregam preo / desempenho excepcional para muitas aplicaes. Eles usam baixo custo / nenhum software de custo para administrar os ns individuais e o conjunto como um todo. Uma parte grande da comunidade cientfica e tcnica que usa Beowulf empregou o Linux sistema operacional de fonte aberto, enquanto muitos dos usurios empresariais e comerciais de Beowulf aceitam o sistema operacional de Microsoft Windows comercial amplamente distribudo. Ambos os tipos de Beowulf middleware de uso de sistema dos que so uma combinao livram software aberto e produtos de ISV comerciais. Muitas destas ferramentas foram portados a ambos os ambientes, embora algum silncio  restringido a um ou o outro ambiente. Os ns de Beowulfs so uniprocessor ou multiprocessador simtricos (SMPs) de alguns processadores. O preo / desempenho que doce mancha parece ser o dual-n sistemas de SMP, embora desempenho por microprocessador normalmente  menos que para ns de nico-processador. Sistemas de Beowulf-classe so sem dvida a forma mais popular de cluster de artigo hoje. 

Ao outro trmino do espectro de cluster esto as constelaes. Uma constelao  um cluster de ns de SMP grandes escalado tal que o nmero de processadores por n  maior que o nmero de tais ns que compem o sistema inteiro. Isto  mais que uma distino arbitrria. Desempenho de um cluster para muitas aplicaes  derivado por programa e paralelismo de sistema. Para a maioria cresce em cachos artigo e sistemas de Beowulf, o paralelismo primrio explorado  o enterre paralelismo de n. Mas para clusters, o paralelismo primrio  n de intra, enquanto significando a maioria do paralelismo usado  dentro do n. Geralmente, so juntados processadores dentro de um n de SMP mais firmemente por memria compartilhada e podem explorar paralelismo bom-granulado que enlate clusters de Beowulf. Mas sistemas de compartilhar-memria requerem o uso de um modelo de programao diferente disso de sistemas de distribuir-memria, e programando constelaes ento pode provar bastante diferente de programar clusters de Beowulf para timo desempenho. Normalmente so restringidas constelaes aos sistemas maiores. 







1.2 Oportunidades e vantagens 


Clusters de artigo e sistemas de Beowulf-classe trazem muitas vantagens a scalable computao paralela, abrindo oportunidades novas para os usurios e domnios de aplicao. Muitas destas vantagens so uma conseqncia de preo / desempenho superior em cima de muitos outros tipos de sistema de capacidades de cume comparveis. Mas outros atributos importantes exibiram atravs de clusters est devido  natureza da estrutura deles/delas e mtodo de implementao. Aqui ns destacamos e nos expandimos nestes, motivar o desenvolvimento e guiar a aplicao de sistemas de Beowulf-classe para propsitos mirades. 


Escalamento de capacidade. 


Mais que at mesmo efetividade de custo, o atributo de princpio de um sistema de Beowulf  seu scalability. Pela agregao de componentes de fora-o-estante comerciais, podem ser integrados conjuntos de recursos especficos julgados crtico a um modo particular de operao para no prover facilmente um grau de capacidade adquirido por outros meios. Talvez a maioria bem conhecido em crculos de computao de alto-trmino  desempenho de cume medido em fracassos (operaes com ponto flutuante por segundo). At mesmo sistemas de Beowulf modestos podem atingir um desempenho de cume entre 10 e 100 gigaflops. O cluster de artigo maior debaixo de desenvolvimento alcanar 30 desempenho de cume de teraflops. Mas outra capacidade importante  memria de massa, normalmente por colees de passeios de disco rgido. Discos de artigo grandes podem conter mais de 100 gigabytes, mas banco de dados comercial e aplicaes dados-intensivas cientficas que ambos podem exigir acima de 100 terabytes de armazenamento em linha. Alm disso, certas classes de memria aplicaes intensivas como esses manipulando matrizes enormes de dados de multivariate pode ser processado efetivamente s se memria principal de hardware suficiente  trazida para afetar o problema. Clusters de artigo provem um mtodo de acumular DRACMA suficiente (memria de acesso aleatrio dinmica) em um nico sistema composto para estes conjuntos de dados grandes. Ns notamos que enquanto clusters ativarem agregao de recursos, eles fazem assim com acoplamento limitado, lgico e fsico, entre os elementos constituintes. Esta fragmentao dentro de sistemas integrados pode imprensar desempenho e facilidade de uso negativamente. 


Arquitetura de convergncia.


No se antecipado por seus originador, clusters de artigo e sistemas de Beowulf-classe evoluram em o que se tornou o padro de facto de de para estrutura de computador paralela, depois de ter convergido em uma comunidade arquitetura de sistema larga. Desde o meio-1970s, o alto-desempenho que computa indstria arrastou seu usurio pequeno e base de cliente por umas sries de arquitetura paralela freqentemente-discrepante digita, enquanto requerendo software principal refaz por geraes sucessivas. Estas mudanas eram freqentemente uma conseqncia de decises de vendedor individuais e resultaram em baixa confiana de cliente e uma reticncia forte para investir nos cdigos de porta a um sistema que poderia estar facilmente obsoleto antes da tarefa estava completo e incompatvel com qualquer sistema de gerao futuro. Artigo agrupa empregando communitywide que mensagem-passa bibliotecas oferece uma estrutura comum que cruza limites de vendedor e geraes do sistema, enquanto assegurando longevidade de investimento de software e confiana de cliente provendo. Pela evoluo de clusters, ns testemunhamos uma verdadeira convergncia de arquiteturas de sistema paralelas, enquanto provendo uma estrutura compartilhada na qual hardware e provedores de software podem desenvolver produtos com a garantia de aceitao de cliente e desenvolvedor de aplicaes pode inventar programas de usurio avanados com a confiana de apoio continuado de vendedores. 


Preo / desempenho. Nenhuma dvida o nico atributo o mais amplamente reconhecido de sistemas de cluster de Beowulf-classe  a vantagem de custo excepcional deles/delas comparada com outros computadores paralelos. Para muitas (mas no tudo) aplicaes de usurio e cargas de trabalho, Beowulf agrupa exibio uma vantagem de desempenho-para-custo de at uma ordem de magnitude ou mais comparado com processadores maciamente paralelos (MPPs) e sistemas de compartilhar-memria distribudos de balana equivalente. Hoje, o custo de hardware de Beowulf est chegando um dlar por megaflops de cume que usa ns de computao de consumidor-faixa. A implicao disto  longe maior que somente os meios de economizar um pouco dinheiro. Causou uma revoluo na aplicao de alto-desempenho que computa a uma gama de problemas e usurios que no poderiam caso contrrio trabalhar dentro do regime de supercomputing. Significa que pela primeira vez, computando est tocando um papel em indstria, comrcio, e pesquisa sem ajuda atravs de tal tecnologia. O baixo custo fez Beowulfs ideal para plataformas educacionais, ativando o treinamento em princpios de computao paralelos e prticas de muitos mais estudantes que previamente possvel. Mais estudantes esto aprendendo programao paralela agora em sistemas de Beowulf-classe que todos os outros tipos de computador paralelo combinaram. 


Flexibilidade de configurao e atualizao.


 Dependendo do usurio planejado deles/delas e base de aplicao, podem ser montados clusters em um arranjo largo de configuraes, com muito poucas restries impostas por vendedores comerciais. Para esses sistemas configurados no site final pelos administradores planejados e usurios, uma escolha larga de componentes e estruturas est disponvel, enquanto tornando possvel uma gama larga de sistemas. Onde clusters sero dedicados a cargas de trabalho especficas ou aplicaes, a estrutura de sistema pode ser aperfeioada para as capacidades exigidas e capacidades que melhor terno a natureza do problema que  computado. Como emergem tecnologias novas ou recursos financeiros adicionais esto disponveis, a flexibilidade com que so saturados clusters  til para atualizar sistemas existentes com tecnologias de componente novas como um "kicker" de meia-idade estender a vida e utilitrio de um sistema mantendo isto atual. 


Tecnologia localizando. 


Tecnologias novas acham rapidamente provvel o modo deles/delas nesses produtos prover o retorno mais rpido: computadores pessoal de alto-trmino populares e servidores de SMP. S depois que tempo de retardo significativo possa tais componentes seja incorporado em MPPs. Porm, agrupando prov um caminho imediato a integrao das mais recentes tecnologias, at mesmo esses que nunca podem ser adotados por outras formas de sistemas de computador de alto-desempenho. 


Disponibilidade alta. 


Clusters provem mltiplo recursos idnticos redundantes que, se administrou corretamente, pode prover operao de sistema continuada at mesmo por degradao graciosa como falta de componentes individual. 


Autorizao pessoal.


 Porque so derivados sistemas de cluster de alto-trmino de hardware prontamente disponvel e componentes de software, site de instalao, os administradores de sistema deles/delas, e usurios tenha mais controle em cima da estrutura, elementos, operao, e evoluo desta classe de sistema que em cima de qualquer outro sistema. Este senso de controle e flexibilidade proveu um attractor forte para muitos, especialmente esses na comunidade de pesquisa, e foi uma motivao significante para muitas instalaes. 


Desenvolvimento valeu e tempo. A indstria de cluster emergindo est sendo abastecida pelo muito baixo custo de desenvolvimento e o tempo curto a entrega de produto. Baseado em computao existente e produtos transmitindo em rede, podem ser desenvolvidos clusters de artigo vendedor-providos por integrao de sistemas bsica e criando, sem desgnio de componente requerido. Porque os componentes constituintes so fabricados para uma gama muito maior de propsitos de usurio que  o prprio mercado de cluster, o custo para o provedor  longe mais baixo que elementos de costume seriam caso contrrio. Assim clusters de artigo proporcionam os vendedores os meios para responder rapidamente a necessidades de cliente diversas, com baixo custo para primeira entrega. 







1.3 Uma histria curta 


Computao de cluster originou dentro de alguns anos da inaugurao do armazenar-programa eletrnico moderno computador digital. SALVA era um sistema de cluster construdo para NORAD debaixo de contrato de Fora area por IBM nos anos cinqenta baseado na MIT Vendaval arquitetura de computador. Tubo de vazio usando e tecnologias de memria de caroo, SALVA consistiu em vrios sistemas de standalone separados que cooperam para administrar descoberta de advertncia de intruso no ar hostil do continente de americano de Norte cedo. Aplicaes comerciais cedo de clusters empregadas computadores livremente juntados emparelhados, com um computador que executa tarefas de usurio enquanto a outra vria entrada / dispositivos de sada administrada. 

Inovaes ativando tecnologias aconteceram nos recentes 1970s, ambos em hardware e software que eram ter efeitos a longo prazo significantes em computao de cluster de futuro. Foram projetadas as primeiras geraes de microprocessadores com o desenvolvimento inicial de tecnologia de VLSI (integrao em escala muito grande), e ao final da dcada estavam sendo comercializados as primeiras estaes de trabalho e computadores pessoal. O advento de Ethernet proveu a primeira tecnologia de rede local extensamente usada, enquanto criando um padro de indstria para um multi modestamente estimado derruba que mdio de interconexo e dados transportam camada. Tambm neste momento, o multitarefa sistema operacional de Unix foi criado em AT&amp;T Sino Laboratrios e estendido com memria virtual e interfaces de rede na Universidade de California.Berkeley. Unix foi adotado em seu vrio comercial e domnio pblico forma pela comunidade de computao cientfica e tcnica como o ambiente principal para uma gama extensiva de computar classes de sistema de estaes de trabalho cientficas para supercomputador. 

Durante a dcada dos anos oitenta, interesse aumentado no potencial de computao de cluster era marcado atravs de experincias importantes em pesquisa e indstria. Uma coleo de 160 Apolo interconectado foram empregadas estaes de trabalho como um cluster para executar certo computational atarefa pela Agncia de Segurana Nacional. Corporao de Equipamento digital desenvolveu um VAX interconectado incluindo de sistema 11/750 computadores, enquanto cunhando o termo "cluster" no processo. Na rea de software, foram desenvolvidas ferramentas de gerenciamento de tarefas por empregar fazendas de estao de trabalho, notavelmente o pacote de software de Condor da Universidade de Wisconsin. Foram exploradas estratgias diferentes para processamento paralelo durante este perodo pela comunidade de pesquisa de informtica. Deste trabalho cedo veio os processos seqentes comunicando mais geralmente modelam chamado o modelo de mensagem-transcurso que veio dominar muito de cluster que computa hoje. 

Um marco milirio importante na aplicao prtica do modelo de mensagem-transcurso era o desenvolvimento de PVM (Mquina Virtual Paralela), uma biblioteca de funes de linkable que poderiam permitir rotinas que executam em separa mas transmitiu em rede computadores para trocar dados e coordenar a operao deles/delas. PVM (desenvolvido por Cume de Carvalho Laboratrio Nacional, Universidade de Esmeril, e a Universidade de Tennessee) esteve o primeiro sistema de software distribudo amplamente desdobrado disponvel do outro lado de plataformas diferentes. Pelo comeo dos anos noventa, vrios site estavam experimentando com clusters de estaes de trabalho. Ao NASA Lewis Centro de Pesquisa, um cluster pequeno de estaes de trabalho de IBM foi usado para simular o comportamento de firmar-estado de mecanismos de aeronave de jato em 1992. O AGORA (rede de estaes de trabalho) projeto em UC Berkeley comeou a operar o primeiro de vrios clusters l em 1993 que conduziram ao primeiro cluster em ser digitado na lista de Top500 do mundo a maioria dos computadores poderosos. Tambm em 1993, Myrinet, um da primeira rea de sistema comercial transmite em rede, foi introduzido para clusters de artigo, enquanto entregando melhorias em largura da banda e latncia uma ordem de magnitude melhor que a rede local de Ethernet Rpida (LAN) usou amplamente para o propsito naquele momento. 

A primeira Beowulf-classe que cluster de PC foi desenvolvido ao NASA Goddard centro de Vo espacial em 1994 liberaes cedo usando do sistema operacional de Linux e PVM que executam em 16 Intel 100 MHz computadores pessoal 80486-baseados conectadas por 10 Mbps Ethernet LANs dual. O projeto de Beowulf desenvolveu o Ethernet motorista software necessrio para Linux e ferramentas de administrao de cluster de baixo nvel adicionais e demonstrou o desempenho e efetividade de custo de sistemas de Beowulf para aplicaes cientficas real-mundiais. Baseado em experincia com muitos outros sistemas de software de mensagem-transcurso, o primeiro padro de Interface (MPI) de Mensagem-transcurso foi adotado pela comunidade de computao paralela para prover um conjunto uniforme de mensagem-passar semntica e sintaxe aquele ano. MPI se tornou o padro de programao de computao paralelo dominante e esteve por virtualmente todos MPP e cluster os vendedores de sistemas. Estao de trabalho agrupa executando Microsistema de Sol sistema operacional de Solaris e o PC de NCSA agrupe corrida a Microsoft NT sistema operacional estava sendo usado para aplicaes de real-mundo. 

Em 1996, a CORA Los Alamos Laboratrio Nacional e a Califrnia Institute de Tecnologia com o NASA Jato-propulso Laboratrio demonstraram desempenho contnuo de mais de 1 Gflops independentemente para sistemas de Beowulf que valem debaixo de $50,000 e foram premiadas o Gordon Sino Prmio para preo / desempenho para esta realizao. Antes das 1997, sistemas de Beowulf-classe de mais de cem ns tinham demonstrado desempenho contnuo de maior que 10 Gflops, com um Los Alamos sistema que faz a lista de Top500. Ao final da dcada, 28 clusters estavam na lista de Top500 com um melhor desempenho de mais de 200 Gflops. Em 2000, CORA e NSF anunciaram prmios a Compaq implementar as instalaes de computao maiores deles/delas, ambos os clusters de 30 Tflops e 6 Tflops, respectivamente. 







1.4 Elementos de um cluster 


Um cluster de Beowulf inclui numerosos componentes de hardware e software. Puros mainframes de carcereiro de fechado-caixa distintos, servidores, e estaes de trabalho, o usurio ou sendo anfitrio de organizao tem escolha considervel na arquitetura de sistema de um cluster, se ser montado em site de partes ou contanto por um integrador de sistemas ou vendedor. Um Beowulf cluster sistema pode ser visto como sendo feito upof quatro componentes principais, dois hardware e dois software. Os dois componentes de hardware so o compute ns que executam o trabalho e a rede que interconectam o n para formar um nico sistema. Os dois componentes de software so a coleo de ferramentas desenvolvia o usurio programas aplicativos paralelos e o ambiente de software por administrar os recursos paralelos do cluster de Beowulf. A especificao de um cluster de Beowulf reflete escolhas de usurio em cada destes domnios e determina o equilbrio de custo, capacidade, desempenho, e utilidade do sistema. 

O n de hardware  o bloco de edifcio principal do sistema de cluster fsico. Afinal de contas,  o n de hardware que est sendo agrupado. O n incorpora os recursos que provem a capacidade e capacidade do sistema. Cada n tem um ou mais microprocessadores que provem o poder de computao do n combinados na placa-me do n com a memria principal de DRACMA e as interfaces de I/O. Alm disso o n normalmente incluir um ou mais disco rgido dirige para memria persistente e utilizao de memria intermediria de dados local embora alguns clusters empregam ns que so diskless para reduzir custo e consumo de poder como tambm confiana de aumento. 

A rede prov os meios para trocar dados entre os ns de cluster e coordenar a operao deles/delas por mecanismos de sincronizao globais. O subcomponents da rede so os controladores de interface de rede (NIC), a rede encana ou link, e os interruptores de rede. Cada n contm um NIC que executa umas sries de operaes complexas para mover dados entre os link de rede externos e a memria de usurio pelo menos, enquanto administrando um ou mais transformaes nos dados no processo. Os link de canal so normalmente passivos, enquanto consistindo em um nico arame, mltiplo cabos paralelos, ou fibras pticas. Os interruptores interconectam vrios canais e mensagens de rota entre eles. Redes podem ser caracterizadas pela topologia deles/delas, a bisseo deles/delas e por largura da banda de canal, e a latncia para transferncia de mensagem. 

As ferramentas de software para aplicaes em desenvolvimento dependem do modelo de programao subjacente a ser usado. Felizmente, dentro da Beowulf cluster comunidade, houve uma convergncia de um nico modelo dominante: processos seqentes comunicando, mais geralmente chamado transcurso de mensagem. O mensagem-transcurso modelo implementa tarefas concorrentes ou processos em cada n fazer o trabalho da aplicao. So passadas mensagens entre estas tarefas lgicas compartilhar dados e sincronizar as operaes deles/delas. As tarefas que eles so escritos em uma linguagem comum como Fortran ou C++. Uma biblioteca de comunicar servios  chamada por estas tarefas para realizar transferncias de dados com ser de tarefas executou em outros ns. Enquanto foram desenvolvidas muitas linguagens de mensagem-transcurso diferentes e bibliotecas de implementao durante as ltimas duas dcadas, dois emergiram como dominante: PVM e MPI (com implementaes de biblioteca mltiplas disponvel para MPI). 

O ambiente de software para a administrao de recursos d administradores de sistema as ferramentas necessrias por supervisionar o uso global da mquina e d para os usurios a capacidade programar e compartilhar os recursos para arrumar o emprego deles/delas feito. Vrios schedulers esto disponveis e discutiram neste livro. Para fluxo de trabalho programar grosso-granular, o scheduler de Condor popular est disponvel. PBS e o scheduler de Maui controlam programao de tarefa para elementos concorrentes interativos. Para administrao de processo de peso leve, o Scyld Bproc novo scheduler provero operao eficiente. PBS tambm prov muitos dos mecanismos precisaram controlar contas do usurio. Por administrar arquivos paralelos, h PVFS, o Sistema de Arquivo Virtual Paralelo. 





1.5 Descrio do livro 


Beowulf Cluster que Computao  oferecida como uma discusso completamente inclusiva das fundaes e prticas para a operao e aplicao de clusters de artigo com uma nfase nesses derivados de componentes de hardware de massa-mercado e software prontamente disponvel. O livro  dividido em trs reas de tpico largas. Separe eu descrevo os componentes de hardware que compem um sistema de Beowulf e espetculos como montar tal um sistema como tambm tire para um giro inicial que usa alguns padres de desempenho paralelos prontamente disponveis. Parte II discute os conceitos e tcnicas por escrever programas aplicativos paralelos para executar em um Beowulf que usa os dois padres de communitywide dominantes, PVM e MPI. Parte que III explica como administrar os recursos de sistemas de Beowulf, inclusive administrao de sistema e programao de tarefa. Cada parte  standalone; qualquer um ou par de partes podem ser usados sem a necessidade dos outros. Em deste modo, voc h pouco pode pular para dentro do meio para adquirir ao jejum de informao necessrio. Ajudar nisto, Captulo 2 (o prximo captulo) prov uma avaliao e resumo de tudo do material no livro. Uma leitura rpida daquele captulo deveria dar bastante contexto para qualquer nico captulo fazer sentido sem seu ter que ter lido o resto do livro. 

O Beowulf reservam apresenta trs tipos de informao para melhor satisfaa as exigncias da comunidade de computao de cluster larga e variada. Inclui material de fundao para os estudantes e as pessoas novo para o campo. Tambm inclui material de referncia em cada rea de tpico, como as chamadas de biblioteca principais para MPI e PVM ou os controles bsicos para PBS. E, d explcito passo por passo orientao em como realizar tarefas especficas como montar um n de processador de componentes bsicos ou instalar o scheduler de Maui. 

Este livro pode ser usado de muitos modos diferentes. Ns recomendamos h pouco se sentando e ler isto durante uma hora ou assim adquirir um tato bom para onde a informao  que voc acharia mais til. D um passeio por Captulo 2 adquirir uma avaliao slida. Ento, se voc estiver tentando para arrumar um emprego feito, persiga aquele material germano para suas necessidades imediatas. Ou se voc for um primeiro-tempo o usurio de Beowulf e h pouco aprendizagem sobre computao de cluster, use isto como seu guia pelo campo. Toda seo  projetada ser interessante e lhe ensinar como fazer algo novo e til. 

Um desafio principal era como satisfazer as necessidades da maioria da comunidade de cluster de artigo quando uma diviso principal existe pelas linhas do sistema operacional usadas. Na realidade, pelo menos uma dzia de sistemas operacionais diferentes foram usados para sistemas de cluster. Mas a maioria do uso de comunidade Linux ou Windows. A escolha de qual dos dois usar depende em muitos fatores, alguns deles puramente subjetivo. Ns entramos a em ao sem precedente de oferecer uma escolha ento: ns fizemos dois livros, principalmente o mesmo, mas discrepante entre os dois sistemas operacionais. Assim, voc ou est concordando Beowulf Cluster Computao com Windows ou Beowulf Cluster Computao com Linux. Qualquer que trabalha melhor para voc, ns esperamos que voc ache isto o nico a maioria valioso livro em sua estante por fazer clusters e por fazer clusters trabalhe para voc. 

Thomas Sterling 


Sistemas de cluster de artigo oferecem uma alternativa para o mercado de computao tcnico e comercial para scalable que computa sistemas para mdio-e capacidade de computao de alto-trmino. Para muitas aplicaes eles substituem prvio-gerao supercomputador de vetor monolticos e MPPs. J incorporando s componentes desenvolvidos para mercados mais largos, eles no exploram s a economia de balana possvel no mercado de computao de alto-trmino e evitam desenvolvimento significante vale e tempos de avano tpico de classes mais cedo de sistemas de alto-trmino que resultam em uma vantagem de preo / desempenho que pode exceder uma ordem de magnitude para muitas cargas de trabalho de usurio. Alm disso, os usurios tm maior flexibilidade de configurao, atualizao, e provedor, enquanto assegurando longevidade desta classe de sistema distribudo e confiana de usurio no investimento de software deles/delas. Sistemas de Beowulf-classe exploram componentes de massa-mercado como PC entregar vantagem de custo excepcional com o espao mais largo de escolha por construir sistemas. Beowulfs integram extensamente disponvel e facilmente acessvel barato ou software bsico de nenhum-custo para prover muitas das capacidades requeridos por um ambiente de sistema. Como resultado destes atributos e as oportunidades insinuam eles, clusters de Beowulf-classe penetraram quase todo aspecto de computar e tm vindo para dominar o mdio a trmino alto rapidamente. 

Computando com um cluster de Beowulf empenha quatro reas distintas mas relacionadas de considerao: 


	hardware estrutura de sistema, 

	administrao de recurso e ambiente de administrao, 

	bibliotecas de programao distribudas e ferramentas, e 

	algoritmos paralelos. 


Hardware estrutura de sistema cerca todos os aspectos dos componentes de n de hardware e as capacidades deles/delas, os controladores de rede dedicados e interruptores, e a topologia de interconexo que determinam a organizao global do sistema. O ambiente de administrao de recurso  a bateria de software bsico e ferramentas que governam todas as fases de operao de sistema de instalao, configurao, e inicializao, por administrao e gerenciamento de tarefas, para estado monitorar de sistema, diagnstico de falhas, e manuteno. As bibliotecas de programao distribudas e ferramentas determinam o paradigma pelo qual o usurio final coordena os recursos de computao distribudos para executar os muitos componentes lgicos concorrentes que constituem o programa aplicativo paralelo simultaneamente e cooperativamente. Finalmente, o domnio de algoritmos paralelos prov os modelos e aproximaes para organizar a aplicao de um usurio para explorar o paralelismo intrnseco do problema enquanto operando dentro das restries prticas de desempenho efetivo. 

Este captulo prov um breve e avaliao de topo-nvel destes quatro domnios principais que constituem Beowulf agrupa computao. O objetivo  prover contexto suficiente para voc entender qualquer nica parte do livro restante e como sua contribuio ajusta dentro para a forma mais larga e funo de clusters de artigo. 


2.1 Um Taxonomy de computao paralela 


A meta de alcanar desempenho pela explorao de paralelismo  to velha quanto computao digital eletrnica isto que emergiu da era de Segunda Guerra Mundial. Foram inventadas muitas aproximaes diferentes e paradigmas conseqentes e estruturas, com muitos verses comerciais ou experimentais que so implementadas durante os anos. Porm, poucos sobreviveu os rigores severos da feira de processamento de dados. Aqui ns olhamos brevemente para muitas destas estratgias, apreciar melhor onde computadores de cluster de artigo e sistemas de Beowulf ajustaram e os intercmbios e acordos que eles representam. 

Uma decomposio de primeiro-fileira do espao de arquiteturas de computao paralelas pode ser classificada em termos de juntar: as latncias tpicas envolveram executando e explorando operaes paralelas. Isto pode variar dos sistemas bom-granulados o mais firmemente juntados da classe sistlica onde o algoritmo paralelo  duro-telegrafado de fato em um especial-propsito extremista-bom-granulou computador de hardware estrutura lgica com latncias medidas na gama de nanosegundo, para o outro extremo, freqentemente chamado computao distribuda que empenha computando extensamente separado potencialmente recursos por um continente ou ao redor do mundo e tem latncias na ordem de cem milissegundos. Assim o reino de estruturas de computao paralelas cerca uma gama de 108, quando mediu por grau de juntar e, implicitamente, granularidade de paralelismo. Na lista seguinte,  descrito o conjunto de classes principais em ordem de tenso de juntar brevemente. Ns notamos que qualquer tal taxonomy  subjetivo, raramente orthogonal, e sujeito a debate. S  oferecido como uma ilustrao da riqueza de escolhas e o espao geral em qual ajustes de computao de cluster. 


Computadores sistlicos normalmente so implementaes de hardwired de especial-propsito de algoritmos paralelos bom-granulados que exploram um -, dois -, ou pipelining tridimensional. Freqentemente usado para tempo real correspondncia sensor processadores, processamento notvel digital, processamento de imagens, e gerao de grficos, computao sistlica est experimentando uma revivificao por computao adaptvel, explorando a tecnologia de FPGA (campo arranjo de porto programvel) verstil que permite programar algoritmos sistlicos diferentes no mesmo mdio de FPGA a tempos diferentes. 


Faanha de computadores de vetor bom-granulou operaes de vetor por pipelining pesado de acessos de banco de memria e estrutura de unidade lgica e aritmtica (ALU), apoio de hardware para juntar-se espalhe operaes, e amortizando instruo vai buscar / executa ciclo em cima em cima de muitas operaes bsicas dentro da operao de vetor. A base para os supercomputador originais (por exemplo, Cray), processamento de vetor ainda  uma estratgia formidvel em certos sistemas de trmino altos japoneses. 


SIMD (nica instruo, dados mltiplos) arquitetura faanhas bom-granularam paralelismo de dados tendo muitos (potencialmente milhares) ou processadores simples que executam a mesma operao em passo de fechadura mas em dados diferentes. Um nico processador de controle emite os comandos globais a tudo mourejados compute processadores simultaneamente por um mecanismo difundido. Tais sistemas (por exemplo, MasPar-2, CM-2) redes de comunicao grandes incorporadas para facilitar movimento de dados volumoso pelo sistema em alguns ciclos. Nenhum mais longo uma rea comercial ativa, estruturas de SIMD continuam achando aplicao de especial-propsito para processamento de sensor de correspondncia. 


Modelos de Dataflow empregados controle de fluxo assncrono bom-granulado que s dependeu de restries de precedncia de dados, enquanto explorando um maior grau de paralelismo assim e provendo um mecanismo de programao adaptvel dinmico com respeito a recurso carregar. Porque eles sofreram severo em cima degradao, porm, que computadores de dataflow nunca eram competitivos e no acharam presena de mercado. No entanto, muitos dos conceitos refletidos pelo paradigma de dataflow tiveram uma influncia forte em anlise de compilador moderna e otimizao, reserva estaciona em concluso de instruo de fora-de-ordem que a ALU projeta, e arquiteturas de multithreaded. 


Arquiteturas de PIM (processador-em-memria) s esto emergindo h pouco como uma possvel fora em alto-trmino estruturas de sistema, intercalando memria (DRACMA ou SRAM) com processar lgica no mesmo dado de circuito integrado expor largura da banda de memria de em-chip alta e baixa latncia a memria para muitas operaes dados-orientadas. Esto sendo procuradas estruturas diversas, inclusive sistema em um chip que coloca DRACMA aterra e um caroo de processador convencional no mesmo chip; SMP em um chip que coloca processador convencional mltiplo descaroa e um cache coerente trs-nivelado estrutura hierrquica em um nico chip; e Memria Inteligente que pe lgica aos ampres de senso da memria de DRACMA para manipulao de dados de em-lugar. PIMs pode ser usado como sistemas de standalone, em arranjos de como dispositivos, ou como uma camada inteligente de um multiprocessador convencional maior. 

MPPs (processadores maciamente paralelos) constituem uma classe larga de arquiteturas de multiprocessador que exploram microprocessadores de fora-o-estante e memria lasca em desgnios de costume de placas de n, hierarquias de memria, e redes de rea de sistema globais. Ironicamente, "MPP" era primeiro usado no contexto de SIMD em lugar de mquinas de MIMD (instruo mltipla, dados mltiplos). MPPs variam de mquinas de distribuir-memria como o Modelo de perfeio de Intel, por memria compartilhada sem caches coerentes como a Borboleta de BBN e CRI T3E, para verdadeiramente CC-NUMA (acesso de memria de non-uniforme) como o Exemplar de HP e o SGI Origin2000. 


Clusters so um conjunto de computadores de fora-o-estante integrado por uma rede de interconexo e operando dentro de um nico domnio administrativo e normalmente dentro de um nico quarto de mquina. Artigo agrupa empregue redes comercialmente disponveis (por exemplo, Ethernet, Myrinet) ao invs de redes de costume (por exemplo, IBM SP-2). Clusters de Beowulf-classe incorporam massa-mercado tecnologia de PC para o deles/delas compute ns para alcanar o melhor preo / desempenho. 


Computao distribuda, uma vez chamado "metacomputing", combina as capacidades de processamento de numerosos, extensamente separados sistemas de computador pela Internet. Se realizou atravs de arranjo especial entre os participantes, por meio de disciplinas chamado Grade computar, ou por acordos de estao de trabalho mirade e donos de PC com algum comercial (por exemplo, DSI, Entropia) ou filantrpico (por exemplo, SETI@home) coordenando organizao de host, esta classe de computao paralela explora ciclos disponveis computadores existentes acesos e PC, enquanto adquirindo algo assim para quase nada. 


Neste livro, ns estamos interessados em clusters de artigo e, em particular, esses PC empregando para melhor preo / desempenho, especificamente, sistemas de cluster de Beowulf-classe. Podem ser subdivididos clusters de artigo em quatro classes que so discutidas aqui brevemente. 


Estao de trabalho agrupa. conjuntos de estaes de trabalho (por exemplo, Ponha ao sol, SGI) integrou por uma rede de rea de sistema. Eles tendem a ser o vendedor especfico em hardware e software. Enquanto exibindo preo / desempenho superior em cima de MPPs para muitos problemas, pode haver at um fator de 2.5 para 4 custo mais alto que clusters PC-baseados comparveis. 


Sistemas de Beowulf-classe. conjuntos de PC (por exemplo, Intel Pentium 4) integrado com redes local de CAMAS comerciais (por exemplo, Ethernet rpido) ou rea de sistema transmite em rede (por exemplo, Myrinet) e executa extensamente disponvel barato ou software de nenhum-custo por administrar recursos do sistema e coordenar execuo paralela. Tais sistemas exibem preo / desempenho excepcional para muitas aplicaes. 


Fazendas de cluster. redes local existentes de PC e estaes de trabalho que ou servem como estaes de usurio dedicadas ou servidores que, quando inativo, pode ser empregado para executar trabalho pendente de usurios externos. Paralelismo de fluxo de trabalho explorando, sistemas de software (por exemplo, Condor) foi inventado para distribuir trabalho feito fila enquanto impedindo intruso em recursos de usurio quando exigido. Estes sistemas so de mais baixo desempenho e efetividade por causa da rede compartilhada que integra os recursos, ao invs das redes dedicadas incorporadas por clusters de estao de trabalho e Beowulfs. 


Superclusters. clusters de clusters, ainda dentro de uma rea local como um quarto de mquina compartilhado ou em edifcios separados no mesmo campus industrial ou acadmico, normalmente integrado pela rede de rea extensa de backbone de infra-estrutura da instituio. Embora normalmente dentro do mesmo domnio de internet, os clusters podem estar debaixo de propriedade separada e responsabilidades administrativas. No entanto, organizaes esto se esforando para para determinar modos para desfrutar as oportunidades potenciais de partnering clusters locais mltiplos perceber computao de balana muito grande pelo menos parte do tempo. 


2.2 Hardware estrutura de sistema 


O mais visvel e discutiu aspectos de cluster que computa sistemas so os componentes fsicos deles/delas e organizao. Estes entregam as capacidades cruas do sistema, tomam quarto considervel no cho de quarto de mquina, e rendem o preo / desempenho excelente deles/delas. Os dois subsistema principais de um cluster de Beowulf so seu componente compute ns e sua rede de interconexo que integram os ns em um nico sistema. Estes so discutidos brevemente abaixo. 


2.2.1 Beowulf computam ns 


O compute ou processando ns incorpora todos os dispositivos de hardware e mecanismos responsvel para execuo de programa, incluindo executando as operaes bsicas, segurando os dados de funcionamento, provendo memria persistente, e ativando comunicaes externas de resultados de intermedirio e interface de comando de usurio. Cinco componentes de tecla fazem as pazes o compute n de um cluster de Beowulf: o microprocessador, memria principal, a placa-me, memria secundria, e empacotando. 

O microprocessador proporciona o poder de computao do n seu desempenho de cume medido em Mips (milhes de instrues por segundo) e Mflop (milhes de operaes com ponto flutuante por segundo). Embora foram implementados Beowulfs com quase toda famlia de microprocessador concebvel, os dois mais prevalecente hoje  o 32-bit Intel Pentium 3 e Pentium 4 microprocessadores e o 64-bit Alfa de Compaq 21264 famlia. Ns notamos que os dispositivos de AMD (inclusive o Athlon) que so binrio compatvel com o Intel Pentium conjunto de instrues tambm acharam aplicao significante em clusters. Alm do bsico de ponto flutuante e unidades lgicas e aritmticas de inteiro, o registrador aterra, e oleoduto de execuo e lgica de controle, o microprocessador moderno, enquanto incluindo na ordem de 20 para 50 milhes de transistores, inclui uma quantia significativa de memria de em-chiphigh-velocidade chamada cache para acesso de correnteza de dados. Cache normalmente  organizado em uma hierarquia com dois ou trs camadas, o mais ntimo para o processador que  o mais rpido mas menor e o ser mais distante relativamente mais lento mas com muito mais capacidade. Estes caches dados mais amarelos e instrues de memria principal e, onde dados usam de novo ou localidade de espao de acesso  alta, pode entregar uma porcentagem significativa de desempenho de cume. O microprocessador normalmente conecta com o resto do n atravs de dois barramentos externos: a pessoa especificamente aperfeioou como uma interface de alto-largura da banda a memria principal, e o outro em defesa de dados I/O. 

Memria principal armazena o conjunto de dados de funcionamento e programas usaram pelo microprocessador durante execuo de tarefa. Baseado em tecnologia de DRACMA na qual um nico bit  armazenado como uma carga em um capacitor pequeno acessada por um transistor trocando dedicado, leram dados e escrevem operaes podem estar significativamente mais lentas a memria principal que para cache. Porm, recentes avanos em desgnio de memria principal melhoraram velocidade de acesso de memria e aumentaram largura da banda de memria substancialmente. Estas melhorias foram facilitadas atravs de avanos em desgnio de barramento de memria como RAMbus. 

A placa-me  o mdio de integrao que combina todos os componentes de um n em um nico sistema operacional. Muito mais que h pouco uma placa de circuito impresso grande, a placa-me quase incorpora um conjunto de chips sofisticado to complicado quanto o prprio microprocessador. Este conjunto de chips administra todas as interfaces entre componentes e controla os protocolos de barramento. Um barramento importante  PCI, a interface primria entre o microprocessador e a maioria dispositivos externos de alta velocidade. Inicialmente um 32-bit barramento que opera a 33 MHz, a mais recente variao funciona a 66 MHz em 64-bit dados, quadruplicando seu processamento potencial assim. A maioria que so conectados rea rede interface controladores de sistemas ao n por meio do barramento de PCI. A placa-me tambm inclui uma memria somente para leitura significativa (que pode ser atualizado) que contm o BIOS do sistema (sistema de entrada / sada bsico), um conjunto de servios de baixo nvel, principalmente relacionado  funo do I/O e tarefas de correia de inicializao bsicas que definem a interface lgica entre o software de sistema operacional de alto-nvel e o hardware de n. Placa-me tambm aceitam vrios outra entrada / portas de sada como o teclado do usurio / monitor de mouse / vdeo e a porta de barramento (USB) consecutiva universal agora-onipresente que esto substituindo vrios tipos de interface distintos mais cedo. No entanto, a impressora paralela vestigial que a porta ainda pode ser achada, de quem especificao vai mais de vinte anos atrs para os dias dos PC mais cedo. 

Memria secundria prov alto-capacidade memria persistente. Enquanto memria principal perde todos seus contedos que quando o sistema  dado poder a fora, memria secundria retm seus dados completamente dentro o dar poder a-abaixe estado. Enquanto muitos standalone os PC incluem vrias classes de memria secundria, alguns Beowulf-sistemas podem ter ns que mantm s algo necessrio para segurar uma imagem de inicializao para iniciante de inicial, todos os outros dados que so carregados de um host externo ou n de mestre. Memria secundria pode ir um modo longo para melhorar confiana e reduzir por custo de n. Porm, perde a oportunidade para barato, memria de massa de alto-largura da banda. Dependendo em como o sistema  no final das contas usado, qualquer escolha pode estar tima. O mdio primrio para memria secundria  o disco rgido, baseado em um mdio magntico pequeno diferente de uma fita de cassete de udio. Esta tecnologia, quase to velho quanto computao digital isto, continua se expandindo em capacidade a uma taxa exponencial, embora velocidade de acesso e larguras da banda s melhoraram gradualmente. Dois contendores primrios, SCSI (interface de sistema de computador pequena) e EIDE (eletrnica dual integrada aumentada), so diferenciados por velocidade um pouco mais alta e capacidade na primeira caixa, e mais baixo custo na segunda caixa. Hoje, um gigabyte de EIDE disco memria vale o usurio alguns dlares, enquanto o preo de tabela para SCSI em uma configurao de INVASO (arranjo redundante de discos independentes) pode ser to alto quanto $100 por gigabyte (o custo extra compra mais velocidade, densidade, e confiana). A maioria do uso de estaes de trabalho SCSI, e a maioria do emprego de PC EIDE dirige que pode ser to grande quanto 100 Gbyte por passeio. Duas outras formas de memria secundria so o disco flexvel venervel e o disco ptico. A 3.5-polegada moderna mole (eles no baqueiam de fato mais, desde que eles entram agora um duro em lugar de uma caixa temporria), tambm mais que vinte anos velho, segura s 1.4 Mbyte de dados e deveria ter sido h muito tempo aposentado. Por causa de sua onipresena, porm, continua agentando e  ideal como um mdio de inicializao para ns de Beowulf. Disquetes em grande parte substituindo so o CD ptico (disco a laser), CDRW (compacto disco-read/write), e DVD (disco verstil digital). O primeiro dois cabo em aproximadamente 600 Mbyte de dados, com tempos de acesso de alguns milissegundos. (O CD bsico s  erudito, mas o CD-RW discos so writable, embora a uma taxa mais lenta distante.) A maioria que so distribudos software comercial e dados agora em CD porque eles so muito baratos criar (realmente mais barato que um um-pgina lustroso voador comercial que tem dois lados). Tecnologia de DVD tambm executa em atual-gerao os PC, enquanto provendo acesso direto a filmes. 

Empacotando originalmente para PC era na forma das "caixas de pizza": baixas, planas unidades, normalmente colocadas na escrivaninha com um monitor gordo que senta em cima. Algum Beowulfs cedo pequeno foram configurados com tal empacota, normalmente com tantos quanto oito destas caixas empilhou a pessoa em cima de outro. Mas at que o primeiro Beowulfs fossem implementados em 1994, torre cases.vertical cho-de p (ou s vezes na escrivaninha prximo ao monitor vdeo) components.were que substitui caixas de pizza por causa da maior flexibilidade deles/delas em configurao e o extensibility (com vrias alturas disponvel) deles/delas. Ainda so implementadas vrias geraes de clusters de Beowulf usando este esquema empacotando barato, robusto, enquanto conduzindo a tais expresses como "pilha de PC" e muitos (LOBOS) caixas" em estantes." Mas a nica limitao desta estratgia era sua baixa densidade (s aproximadamente dois dzia caixas poderiam ser armazenadas em um cho-para teto armado de estantes) e o footpad grande resultante de mdio-para amplo Beowulfs. Uma vez a indstria reconheceu o potencial de mercado de clusters de Beowulf, uma gerao nova de pacotes prateleira-montados foi inventada e foi unificada (por exemplo, 1U, 2U, 3U, e 4U, com 1U caixas que tm uma altura de 1.75 polegadas) de forma que isto  possvel instalar uma nica prateleira cho-parada com tantos quanto 42 processadores, enquanto vindo perto de dobrar a densidade de processamento de tais sistemas. Vendedores que provem sistemas de carcereiro completos como tambm hardware integrador de sistemas ("trazer-seu-prprio software") quase esto levando universalmente esta aproximao. Ainda para sistemas pequenos onde custo  crtico e simplicidade uma caracterstica, torres penetraro laboratrios pequenos, escritrios, e at mesmo casas por muito tempo. (E por que no? Nesses dias de inverno frios, eles fazem grandes aquecedores espaciais.) 

Beowulf agrupam ns (i.e., PC) viu enorme, at mesmo explosivo, crescimento durante os ltimos sete anos desde que foram introduzidos Beowulfs primeiro em 1994. Ns notamos que a data de entrada para Beowulf no era arbitrria: o nvel de hardware e tecnologias de software baseado no mercado de massa tinha alcanado h pouco (dentro dos seis meses prvios) o ponto que conjuntos deles pudessem competir aplicaes de nicho com certeza com o MPPs ento-bem-fortificado e poderiam prover benefcios (nas muito melhores caixas) de preo / desempenho de quase 50 a 1. A Intel nova 100 MHz 80486 tornou isto possvel alcanar at 5 Mflop por n para computationally seleto intensos problemas e o custo de 10 Mbps Ethernet controladores de rede e centros de rede tinha se tornado suficientemente moge que o custo deles/delas lhes permitiu ser empregado como redes de rea de sistema dedicadas. Igualmente importante era a disponibilidade do inchoate sistema operacional de Linux com o atributo todos-importante de ser fonte grtis e aberta e a disponibilidade de uma implementao boa do PVM que mensagem-passa biblioteca. Claro que, o projeto de Beowulf teve que preencher muito os intervalos, inclusive escritura a maioria dos motoristas de Ethernet distribuiu com Linux e outras ferramentas simples, como canal unir, isso facilitou a administrao destes sistemas modestos cedo. Desde ento, o desempenho de ponto flutuante entregue por processador cresceu por mais de duas ordens de magnitude enquanto capacidade de memria cresceu por mais que um fator de dez. Capacidades de disco se expandiram por at 1000X. Assim, Beowulf computam ns testemunharam uma evoluo extraordinria em capacidade. Ao final desta dcada, n desempenho de ponto flutuante, tamanho de memria principal, e capacidade de disco  esperado que tudo cresam por outras duas ordens de magnitude. 

Um aspecto de estrutura de n no contudo discutiu  multiprocessamento simtrico. Desgnio de microprocessador moderno inclui mecanismos que permitem mais que um processador ser combinado, compartilhando a mesma memria principal enquanto retendo coerncia completa por caches de processador separados, dando todos os processadores assim uma viso consistente de dados compartilhados apesar das cpias locais deles/delas em caches dedicados. Enquanto servidores de industrial-faixa grandes puderem incorporar tantos quanto 512 processadores em uma nica unidade de SMP, uma configurao tpica para SMPs PC-baseado  dois ou quatro processadores por unidade. A habilidade para compartilhar memria com tempos de acesso uniformes deveria ser uma fonte de desempenho melhorado a mais baixo custo. Mas desgnio e estimar  altamente complicado, e a escolha sempre no  bvia. s vezes a complexidade somada de desgnio de SMP compensa a vantagem aparente de compartilhar muitos dos recursos do n. Tambm, desempenho beneficia de acoplamento apertado dos processadores pode ser excedido em valor pela conteno por memria principal e possvel cache trilhar. Uma dificuldade somada est tentando para programar aos dois nveis: mensagem que passa entre ns e compartilhou memria entre processadores do mesmo n. A maioria dos usurios no aborrece, enquanto escolhendo permanecer at mesmo com um modelo de mensagem-transcurso uniforme entre processadores dentro do mesmo n de SMP. 


2.2.2 Redes de interconexo 


Sem a disponibilidade de moderado-custo curto-arrastamento rede tecnologia, crescem em cachos Beowulf computao nunca teria acontecido. De forma interessante, os dois lderes em cluster dedicado foram derivadas redes de tecnologias precedentes muito diferentes. Ethernet foi desenvolvido como uma rede local por interconectar nico usurio distribudo e comunidade que computam recursos com perifricos compartilhados e servidores de arquivos. Myrinet foi desenvolvido muito firmemente de uma base de experincia com juntou processadores em MPPs como o Modelo de perfeio de Intel. Junto, Rpido e Gigabit Ethernet e Myrinet provem a base para a maioria de clusters de Beowulf-classe. 

Uma rede  uma combinao de transporte fsico e mecanismos de controle associada com uma hierarquia estendida em camadas de encapsulation de mensagem. O conceito de caroo  a "mensagem." Uma mensagem  uma coleo de informao organizada em um formato (ordem e tipo) que ambos o enviando e os processos receptores entendem e podem interpretar corretamente. A pessoa pode pensar em uma mensagem como um registro mvel. Pode ser to curto quanto alguns bytes (no inclusive a informao de cabealho) ou contanto que muitos milhares de bytes. Ordinariamente, as usurio aplicao processo chamadas enviando uma rotina de biblioteca que administra a interface entre a aplicao e a rede. Executando um alto-nvel envia operao causa a mensagem de usurio a ser empacotada com informao de cabealho adicional e apresentou ao rede kernel motorista software. Informao de roteamento adicional e adicional converge  executado antes de enviar a mensagem de fato. O hardware de baixo-nvel dirige as linhas do canal de comunicao ento com o sinal, e a rede troca rota adequadamente a mensagem conforme a informao de roteamento codificou bits ao cabealho do pacote de mensagem. Em recibo ao n receptor,  invertido o processo e a mensagem est eventualmente carregada no usurio aplicao nome espao a ser interpretado pelo cdigo de aplicao. 

A rede  caracterizada principalmente em termos de sua largura da banda e sua latncia. Largura da banda  a taxa  qual os bits de mensagem so transferidos, normalmente citada em termos de processamento de cume como bits por segundo. Latncia  o comprimento de tempo requerido envia a mensagem. Talvez uma medida mais justa  o tempo de enviar a receber um processo de aplicao, enquanto levando em conta tudo das camadas de traduo, converses, e copiando envolvido. Mas os vendedores citam freqentemente o tempo mais curto entre os controladores de interface de rede deles/delas. Complicar assuntos, largura da banda e latncia so sensveis a comprimento de mensagem e trfego de mensagem. Mensagens mais longas utilizam melhor recursos de rede e entregam processamento de rede melhorado. Mensagens mais curtas reduzem transmita, receba, e tempos de cpia para prover uma mais baixa latncia de transferncia global mas causa abaixa largura da banda efetiva. Trfego de rede total mais alto (i.e., nmero de mensagens por tempo de unidade) aumentos processamento de rede global, mas a conteno resultante e os retardos eles incorrem resultado em latncia de transferncia de mensagem efetiva mais longa. 

Mais recentemente, um consrcio industrial desenvolveu um modelo de gesto de redes novo conhecido como POR. A meta desta classe de rede  aceitar um protocolo de zero-cpia, enquanto evitando o intermedirio que copia da mensagem no espao de sistema operacional e transferncias de mensagem de aplicao-para-aplicao diretas permitindo. O resultado  latncia significativamente reduzida de transferncia de mensagem. Emulex desenvolveu o produto de rede de cl que prov uma largura da banda de cume mais de 1 Gbps e para exibies de mensagens curtas uma latncia de transferncia na ordem de 7 microseconds. 

2.3 Software de n 


Um n em um cluster  freqentemente (mas no sempre) uma entidade de computao autnoma, complete com seu prprio sistema operacional. Beowulf agrupa explore a sofisticao de sistemas operacionais modernos ambos por administrar os recursos de n e por comunicar com outros ns por meio da rede de interconexo deles/delas. 

Linux emergiu como o Unix-igual sistema operacional dominante. Seu desenvolvimento era qualquer coisa mas tradicional; foi iniciado por um estudante diplomado (Linus Tovald) na Finlndia e contribuiu para por uma fora voluntria de centenas de fomentador ao redor do mundo pela Internet. Recentemente Linux recebeu apoio principal de vendedores de computador grandes inclusive IBM, Compaq, SGI, e HP. Linux  um multiusurio cheio-caracterizado, multitarefa, sistema operacional de memria virtual demanda-chamado com apoio de software de kernel avanado para operao de rede de alto-desempenho. 


2.4 Administrao de recurso 


Menos no mais restritivo de caixas, emparelhando as exigncias de uma carga de trabalho variada e as capacidades dos recursos distribudos de um cluster de Beowulf demandas de sistema o apoio e servios de um potencialmente sistema de software sofisticado para administrao de recurso. O Beowulfs mais cedo seja sistemas dedicados usados por (no mximo) alguns pessoas e controlou explicitamente, uma aplicao de cada vez. Mas o Beowulf mais elaborado de hoje agrupa, enquanto incluindo centenas possivelmente ou at mesmo milhares de processadores e compartilhou por uma comunidade grande de usurios, ambos local e em site remotos, precise equilibrar combatendo demandas e capacidade de processamento disponvel para alcanar resposta rpida para usurio programa e processamento alto de recursos de cluster. Felizmente, vrios tais sistemas de software esto disponveis para proporcionar administradores de sistemas e usurios semelhante uma escolha larga de polticas e mecanismos por qual governar a operao do sistema e sua alocao a tarefas de usurio. 

O desafio de administrar o conjunto grande de computa ns que constituem um cluster de Beowulf envolve vrias tarefas para emparelhar carga de trabalho usurio-especificada a recursos existentes. 


Fazendo fila. 


So submetidas tarefas de usurio a um cluster de Beowulf por pessoas diferentes, potencialmente de locais separados que so possivelmente desavisado de exigncias que so impostas no mesmo sistema por outros usurios. Uns buffers de sistemas fazendo fila as tarefas fortuitamente submetidas, digitou a lugares diferentes e tempos e com exigncias variadas, at que recursos do sistema esto disponveis para processar cada deles. Dependendo de prioridades e exigncias especficas, podem ser mantidas filas distribudas diferentes para facilitar tima programao. 


Programando. 


Talvez o componente mais complexo do administrador de recurso, o scheduler tem que equilibrar as prioridades de cada tarefa, com as demandas de outras tarefas, o sistema existente computa e recursos de memria, e as polticas administrativas ditaram para o uso deles/delas atravs de administradores de sistema. Schedulers precisam afirmar com tais exigncias variadas como tarefas grandes que precisam de todos os ns, tarefas pequenas que precisam nico ou no mximo alguns ns, tarefas interativas durante as quais o usurio deve estar disponvel e no loop para tais coisas como visualizao de tempo real de resultados ou desempenho que depuram durante desenvolvimento de programa, ou tarefas prioritrias que devem ser completadas depressa (como imaging mdico). O scheduler determina a ordem de execuo baseado nestes avaliaes de prioridade independentes e a soluo para o problema de caixa-embalagem clssico: Que tarefas podem ajustar ao mesmo tempo na mquina? 


Controle de recurso. 


Um componente de middleware, controle de recurso pe os programas nos ns designados, move os arquivos necessrios aos ns respectivos, inicia tarefas, suspende tarefas, termina tarefas, e offloads resultam arquivos. Notifica o scheduler quando recursos estiverem disponveis e controlam qualquer condio de exceo pelo conjunto de ns cometido a uma determinada tarefa de usurio. 


Monitorando. 


Devem ser localizados os estados contnuos do cluster de Beowulf continuamente e devem ser informados a um site de controle central como mestre ou n de host do sistema. Tal emite como disponibilidade de recurso, estado de tarefa em cada n, e constantemente devem ser monitoradas sades operacionais dos ns para ajudar na administrao prspera do sistema total servindo sua demanda de usurio incidente. Alguma desta informao tm que atualizar a apresentao de estado de operadores de sistema continuamente, enquanto outras estatsticas e parmetros de estado devem ser empregados diretamente pelo sistema de administrao de recurso automtico. 


Contabilidade. 


Para avaliar faturamento ou pelo menos determinar alocao de usurio restante de computam tempo (freqentemente medido em horas de n), como tambm para avaliar utilizao de sistema global, disponibilidade, e efetividade de resposta de demanda, devem ser mantidos registros automaticamente de contas do usurio e trabalho de sistema. Esta  a ferramenta primria pela qual administradores de sistema e administradores avaliam efetividade de programar polticas, manuteno pratica, e alocaes de usurio. 


Enquanto nenhuma nica administrao de recurso de sistema enderea tudo otimamente destas funes para todo operacional e circunstncias de demanda, vrias ferramentas provaram til em colocaes operacionais e estiveram disponvel aos usurios e administradores de Beowulfclass cluster sistemas. Um captulo inteiro  dedicado em parte a cada destes III deste livro; aqui eles s so discutidos brevemente. 


Apoios de condor distriburam administrao de recurso de fluxo de trabalho que enfatiza capacidade ou computao de processamento. Condor programa tarefas independentes em ns de cluster controlar cargas de trabalho de usurio grandes e prov muitas opes programando poltica. Este pacote venervel e robusto  vestido particularmente bem por administrar cargas de trabalho e recursos em site remotos. 


PBS  um sistema extensamente usado por distribuir tarefas de usurio paralelas por Beowulf paralelo agrupe recursos e provendo as ferramentas administrativas necessrias para superviso de sistemas profissional. Ambos livre e comercialmente aceitou verses deste sistema esto disponveis, e  professionally mantido, enquanto provendo usurio e confiana de administrador. 


Maui  um scheduler avanado que incorpora polticas sofisticadas e mecanismos por controlar uma pletora de demandas de usurio e estados de recurso. Este pacote na verdade senta em cima de outros administradores de recurso abaixar-nivelados, enquanto provendo capacidade somada. 


PVFS administra a memria secundria de um cluster de Beowulf, enquanto provendo gerenciamento de arquivo paralelo compartilhado entre os ns distribudos do sistema. Pode entregar resposta mais rpida e muita largura da banda de disco efetiva mais alta que uso convencional de NFS (sistema de arquivo de rede). 


2.5 Programao distribuda 


Explorao do potencial de clusters de Beowulf confia no desenvolvimento de uma gama larga de aplicaes paralelas novas que efetivamente tiram proveito dos recursos do sistema paralelos para permitir explorar problemas maiores e mais complexos em um tempo mais curto pesadamente. Programando um cluster difere substancialmente disso de programao uma estao de trabalho de uniprocessor ou at mesmo um SMP. Esta diferena est em parte devido ao fato que o compartilhamento de informao entre ns de um cluster de Beowulf pode levar muito mais longo que entre os ns de um sistema firmemente juntado, porque o espao de memria fragmentado refletiu pela distribuir-memria que Beowulfs impe substancialmente mais em cima que isso requereu atravs de sistemas de compartilhar-memria, e porque um Beowulf pode ter muitos mais ns que um 32-processador tpico SMP. Como uma conseqncia, o fomentador de um cdigo de aplicao paralelo para um Beowulf tem que levar em conta estes e outras fontes de degradao de desempenho alcanar desempenho de scalable efetivo para o problema de computational. 

Vrios modelos diferentes foram empregados para programao paralela e execuo, cada que enfatiza um equilbrio particular de necessidades e caractersticas desejveis. Os modelos diferem em parte pela natureza e grau de abstrao que eles apresentam ao usurio do sistema paralelo subjacente. Estes variam em generalidade e especificidade de controle. Mas um modelo emergiu como a estratgia dominante. Estes  os processos seqentes comunicando" modelo, mais freqentemente chamado o modelo de mensagem-transcurso. Por esta metodologia, o programador divide os dados globais do problema entre o conjunto de ns e especifica os processos a ser executados em cada n, cada funcionamento principalmente em sua partio de dados local respectiva. Onde informao de outros ns  requerida, o usurio estabelece caminhos lgicos de comunicao entre processos cooperando em ns separados. O programa aplicativo para cada processo envia explicitamente e recebe mensagens passadas entre isto e um ou mais outros processos remotos. Uma mensagem  um pacote de informao que contm um ou mais valores em uma ordem e formata que ambos processam envolveu na troca entenda. Mensagens tambm so usadas para sincronizar processos concorrentes para coordenar a execuo das tarefas paralelas em ns diferentes. 

Programadores podem usar kernel de sistema operacional de baixo nvel conecta  rede, como covas de Unix ou chamadas de procedimento remotas. Porm, felizmente um modo mais fcil existe. Foram desenvolvidos dois sistemas de programao de mensagem-transcurso principais para facilitar programao paralela e desenvolvimento de aplicao. Estes esto na forma de bibliotecas de linkable que podem ser usadas junto com linguagens convencionais como Fortran ou C. Beneficiando de experincias anteriores com tais ferramentas mais cedo, PVM tem um partidrio significante e foi usado para explorar uma gama larga de semntico constri e distribuiu mecanismos. PVM foi o primeiro sistema de programao em ser empregado em um cluster de Beowulf e sua disponibilidade era crtica a este trabalho cedo. MPI, o segundo e mais recentemente distribuiu sistema de programao, foi desenvolvido como um produto de um consrcio de communitywide. MPI  o modelo de escolha para a maioria da comunidade de programao paralela em Beowulf agrupa e outras formas de computador paralelo como bem, mquinas de compartilhar-memria planas. H vrias fontes abertas e comerciais de MPI com desenvolvimentos novos, especialmente na rea de I/O paralelo, estando incorporado em implementaes de MPI-2. Junto, MPI e PVM representam o tamanho de ser de programas paralelo desenvolvido ao redor do mundo, e so representadas ambas as linguagens neste livro. 

Claro que, desenvolvendo algoritmos paralelos e programas paralelos escrevendo envolvem muito mais que h pouco memorizando alguns somado constri. Foram dedicados livros inteiros a este tpico s (incluindo estas sries nisso), e  um foco de pesquisa ativa. Um discurso detalhado e inclusivo de desgnio de algoritmo paralelo est alm da extenso deste livro. Ao invs, ns oferecemos exemplos especficos e detalhados que provem mscaras que satisfaro muitas necessidades de programao. Certamente no exaustivo, estas ilustraes capturam muitos tipos de problema no entanto. 


2.6 Concluses 


Beowulf agrupam computao  um microcosmo fascinante de processamento paralelo, enquanto provendo mo-em exposio e experimenta com todos os aspectos do campo, de hardware de baixo nvel alto-nivelar desgnio de algoritmo paralelo e tudo entre. Enquanto muitas solues estiverem prontamente disponveis para prover muito dos servios necessrios requerido para uso efetivo de clusters de Beowulf em muitos papis e mercados, muitos desafios ainda permanecem a perceber o melhor do potencial de clusters de artigo. Pesquisa e desenvolvimento avanado ainda  uma parte importante do trabalho clusters circunvizinhos, at mesmo como eles so aplicados efetivamente a muitas cargas de trabalho de real-mundo. O resto deste livro serve dois propsitos: representa o estado da arte para esses que desejam estender Beowulf cluster capacidades no final das contas, e guia esses que desejam aplicar estas capacidades existentes a problemas de real-mundo imediatamente. 

Hardware de n 


Thomas Sterling 


Beowulf  uma rede de ns, com cada n um computador pessoal barato. Seu poder e  derivada simplicidade de explorar as capacidades dos sistemas de massa-mercado que provem o processamento e a comunicao. Este captulo explora tudo dos elementos de hardware relacionados a computao e memria. Opes de hardware de comunicao sero consideradas em detalhes em Captulo 5. 

Poucas tecnologias em civilizao humana experimentaram tal uma taxa de crescimento como isso do computador digital e sua culminao no PC. Seu baixo custo, onipresena, e s vezes aplicao trivial obscurece freqentemente sua complexidade e preciso como um dos produtos mais sofisticados derivado de cincia e criando. Em uma nica vida humana em cima da histria de cinqenta-ano de desenvolvimento de computador, desempenho e capacidade de memria cresceram por um fator de quase um milho de. Onde uma vez computadores estavam reservados para os ambientes especiais de mquina cuidadosamente estruturada se aloja, agora eles so achados em quase todo escritrio e casa. Um computador pessoal hoje ultrapassa os supercomputador de maior do mundo duas dcadas atrs da menos que um dez-thousandth o custo.  o produto deste legado extraordinrio que Beowulf arreia para abrir vistas novas em computao. 

Tecnologia de hardware muda quase incrivelmente rapidamente. Os processadores especficos, chipsets, e acrnimos de trs-carta (TLAs) que ns definimos hoje estaro obsoletos em uns muito poucos anos. Os preos citados estaro fora de data antes deste livro alcana estantes de livraria. Por outro lado, o desgnio organizacional de um PC e as funes de seus componentes primrios durar uma transao boa mais muito tempo. As foras relativas e fraquezas de componentes (por exemplo, memria de disco est mais lenta, maior, mais barata e mais persistente que memria principal) quase deveria permanecer como muito tempo vlido para. Felizmente,  agora fcil de achar preos em dia no Web; veja Apndice C para alguns lugares iniciarem. 

Este captulo concentra nos assuntos prticos relacionados  seleo e assembly dos componentes de um n de Beowulf. Voc pode montar os ns do Beowulf voc, pode deixar outra pessoa fazer (um integrador de sistema) isto a sua especificao, ou pode comprar um sistema de carcereiro. Em qualquer caixa, voc ter que tomar algumas decises sobre os componentes. Muitos integrador de sistemas suprem para um mercado de ignorante, enquanto oferecendo alguns tipos bsicos de sistemas, por exemplo, "escritrio" e "casa" modela com uma mistura ligeiramente diferente de hardware e componentes de software. Embora estas mquinas trabalhariam em um Beowulf, com s pesquisa um pequeno adicional voc pode comprar sistemas mais apropriados para menos dinheiro. Sistemas de Beowulf (pelo menos esses que ns conhecemos) tm pouca necessidade por sistemas de udio, oradores, joysticks, impressoras, grabbers de quadro, e o como muitos dos quais  includo na "casa" standard ou modelos de "escritrio." Vdeo de alto-desempenho  desnecessrio com exceo de especializado 

