Home
Introdução à programação em clusters de alto desempenho
Contents
1. A entrada principal do compilador DPC um arquivo contendo a descri o dos arquivos de clusters envolvidos no programa e das m quinas que comp em o ambiente de execu o distribu da Cada um dos arquivos de clusters corresponde a uma unidade de distribui o sendo composto por uma classe de objeto distribu do e diversas classes de objetos locais A partir do arquivo descritor o compilador gera o c digo das fun es do m dulo Diret rio definido pelo modelo possibilitando tamb m a introdu o de objetos espi es nos nodos da rede A partir dos arquivos de clusters as sa das do compilador s o duas classes de procuradores e clusters de distribui o Classes procuradoras definem um conjunto de objetos imagem aos objetos reais definidos pelas classes distribu das As classes procuradoras est o sujeitas as mesmas regras de heran a a que est o submetidas as classes distribu das a que representam implementando os mesmos m todos p blicos por m quando em execu o os m todos dos objetos procuradores realizam chamadas aos objetos distribu dos verdadeiros realizadores da opera o solicitada RELAT5S3 S3RIO DE PESQUISA Inst53ituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 54 Os objetos procuradores implementam as fun es da caixa postal de objetos distribu dos sendo sua manipula o e das classes procuradoras transparente ao programador sendo t
2. O A PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO public DSORT 6 DSORT O tarray t combina tarray t tarray t tarray t classifica tarray t vetor int int tarray t DSORT combina tarray t vetor1 tarray t vetor2 tarray_t auxvetor int i 0 int j 0 int k 0 int y auxvetor cont vetor1 cont vetor2 cont while i lt vetor1 cont amp amp j lt vetor2 cont if vetor1 vetor i lt vetor2 vetor j auxvetor vetor k vetor1 vetor i else auxvetor vetor k vetor2 vetor j if i lt vetor1 cont for y i y lt vetor1 cont y auxvetor vetor k vetor1 vetor y else for y j j lt vetor2 cont y auxvetor vetor k vetor2 vetor y return auxvetor tarray t DSORT classifica tarray_t vetor int i int f bool troca true int aux j x tam m tarray_t auxvetor int k 0 for j i j lt f j auxvetor vetor k vetor vetor j tam tamanho i f 1 m tam auxvetor cont tamanhoii f if auxvetor cont 1 return auxvetor while troca true troca false for j 0 j lt m j RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 77 if auxvetor vetor j gt auxvetor vetor j 1 aux auxvetor vetor j auxvetor vetor j auxvetor vetor j 1 auxvetor vetor j 1 aux troca true m 1 return auxvetor Figura 5 13
3. dependente da vari vel MAXVETOR que nesse caso 1000 A vari vel cont que do tipo inteiro possui a finalidade de armazenar a quantidade de elementos presentes na vari vel vetor Nesse arquivo tamb m s o definidas quatro fun es meio tamanho valf1 vali2 A fun o int meio int uma fun o do tipo inteiro que recebe como par metro um inteiro correspondente ao tamanho de um vetor e retorna a posi o central desse vetor A fun o int tamanho int int recebe como entrada um valor inicial e um final de um vetor retornando um valor inteiro correspondente ao tamanho do vetor As fun es int valf4 int int e int vali2 int int s o fun es que desempenham a fun o de dividir um vetor em dois menores A fun o int valf1 int int recebe como argumento o valor inicial e final de um vetor e retorna o valor final valfl de um hipot tico vetorl A fun o int vali2 int int RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 75 recebe como argumento o valor inicial e final de um vetor e retorna o valor inicial vali2 de um hipot tico vetor2 Note que essas fun es n o dividem o vetor em duas estruturas e sim devolvem ponteiros para emular dois vetores em uma nica estrutura ifndef TIPOS_H define TIPOS_H define MAXVETOR 1000 struct tarray int vetor MAXVETOR vetor de inteiros int cont linteiro int meio int tamanho int m m
4. es que o modelo DPC apresenta 4 4 1 Mecanismos de Toler ncia a Falhas para o Objeto Diret rio DPC As aplica es no DPC s o monitoradas e controladas por um objeto central objeto Diret rio o qual pode ser considerado um ponto de falha Se o processador que est executando o Diret rio falhar falha de crash toda a aplica o falha tamb m Dessa maneira torna se interessante a aplica o de alguma t cnica de toler ncia a falhas que permita a continua o da aplica o mesmo na ocorr ncia de falha do objeto Diret rio A t cnica utilizada para garantir a disponibilidade da aplica o foi o prim rio backup Neste sentido o objeto Diret rio seria replicado em outro nodo da rede Toda solicita o realizada ao objeto Diret rio prim rio por parte de qualquer objeto distribu do da aplica o implica em uma solicita o tamb m ao objeto Diret rio backup Exce o feita as solicita es de consulta as quais n o s o repassadas ao backup Foi realizado um modelo das poss veis falhas de crash tanto no processador que executa o Diret rio prim rio quanto no processador do Diret rio backup A partir deste modelo de falhas foi implementado um prot tipo para fins de valida o da proposta 4 4 2 Interface Gr fica de Visualiza o e Depura o de Aplica es DPC Sendo DPC um ambiente de programa o que visa fornecer ao programador facilidades para programa o de aplica es distribu das bas
5. implementa o do m todo construtor HelloWorld HelloWorld implementagao do m todo destrutor void HelloWorld sayHello implementa o do m todo sayHello char s 256 II declara um array s de 256 caracteres gethostname s 256 II obt m o nome da maquina host Essa fun o est definida em unistd h printf Hello world from s n s imprime uma mensagem Iicom o nome do host Figura 5 6 Conte do do arquivo HelloWorld dc O ltimo arquivo da aplica o o arquivo principal da aplica o chamado de main cc Como esse arquivo define a aplica o principal esse arquivo deve incluir todos os nomes dos arquivos das classes distribu das nesse caso foi inclu da a classe distribu da HelloWorld dc O conte do detalhado desse arquivo pode ser visto na Figura 5 7 include HelloWorld dc inclui a classe HelloWorld int main fungao principal que retorna um valor inteiro HelloWorld h linstancia um objeto h da classe HelloWorld h sayHello ichama o m todo sayHello do objeto h return 0 II retorna o valor 0 Figura 5 7 Conte do do arquivo main cc da aplica o HelloWorld Para compilar a aplica o basta digitar de dentro do diret rio onde se encontram os arquivos apl Hello apl seguido da tecla Enter Para executar basta digitar a out 5 3 C lculo de Fibonacci em DPC A fim de exemplificar o modelamento de uma aplica o matem tica no paradigma de objetos distribu dos
6. tamanho 2 1 if tamanho 2 0 m return m int tamanho int i int f int tam tam f i 1 return tam int valf1 int i1 int f2 return meio tamanho i1 f2 i1 int vali2 int i1 int f2 return valf1 i1 f2 1 define tarray_t struct tarray endif Figura 5 12 Conte do do arquivo tipos h da aplica o Integersort O terceiro arquivo editado o arquivo dsort dc esse arquivo que cont m a defini o e implementa o da classe distribu da DSORT Esse arquivo inclui o cabe alho do arquivo tipos h a fim de que os tipos abstratos de dados definidos naquele arquivo possam ser usados A classe DSORT possui um m todo construtor DSORT e um m todo destrutor DSORT Tamb m possui dois m todos O primeiro m todo tarray t combina tarray t tarray t recebe como par metro de entrada duas estruturas do tipo tarray definida no arquivo tipos h e devolve outra estrutura do tipo tarray Essa fun o necess ria para combinar dois vetores previamente ordenados em um nico vetor totalmente ordenado O segundo m todo tarray t classifica tarray t vetor int int serve para classificar um vetor previamente desordenado Esse m todo recebe como par metro de entrada uma estrutura do tipo tarray e devolve uma estrutura do tipo tarray cujo vetor est ordenado include tipos h class DSORT RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU
7. 4 2 O Modelo de Distribui o Esta se o apresenta um resumo das caracter sticas do modelo de distribui o utilizado como base de implementa o de DPC Uma vis o em maiores detalhes deste modelo apresentada em CAV93a 4 2 1 Caracter sticas Gerais do Modelo O modelo de distribui o adotado permite a execu o distribu da de objetos sobre uma rede de esta es de trabalho A sua estrutura geral apresentada na Figura 4 3 Em DPC um objeto distribu do implementado atrav s de um elemento denominado cluster Uma observa o muito importante que esse termo cluster n o deve ser confundido com os clusters de m quinas paralelas Nesse contexto clusters correspondem a processos provendo ao objeto distribu do capacidade de processamento e rea de mem ria A cria o de um cluster efetivada junto a cria o de um objeto distribu do A rea extra de mem ria do cluster pode vir a ser preenchida de inst ncias de objetos locais O recebimento de mensagens em um objeto distribu do realizado atrav s do cluster que o serve N o existe outra forma de tr fego de mensagens entre os objetos distribu dos O tratamento das mensagens realizado de forma sequencial de acordo com a ordem de recebimento Dentro de um cluster existe apenas um fluxo de execu o em um determinado instante de tempo n o ocorrendo concorr ncia interna A concorr ncia externa garantida pela execu o em diferentes nodos de pro
8. cececcceeeececceesteeeeeeteeeeeees 20 2 Ferramentas de Programa o em Clusters 23 2 1 PVM Parallel Virtual Machine ccccccsssecccceesssssseceeeeeeeesseeeeeeeees 23 2 2 MPI Message Passing Interface lt ccatecs sev snetacavencascadetaivetsecudcedetavavenenee 25 2 3 DPC Distributed Processing in C ccccecssseccesesssteeeeeesneeeeesees 26 2 4 Considera es Finais i case estao Crista edad Wasi abana UA nt aba 28 3 T picos Relacionados ao Ambiente DPC H 29 3 1 Sistema Operacional LINUX ys ccs ciercwsemivneyaredvermekereceivelaweveenceelones 29 3 kti Hist nado Linux sce sac bs q A a e ea e 30 3 1 2 Comandos B sicos do Linux ss sessseesseeseeesseseressessrssressresresseeseesssessresseesessressesess 31 3 1 3 Editores de Texto no Sistema Operacional Linux cccccceecceeeeeeeeeeaeaeesees 38 3 2 Linguagens Orientadas a Objet0S cccccceeesseecceesneeeeeeeeseeeeensneeeeees 38 3 2 1 Propriedades das Linguagens Orientadas a Objetos c sseccccceeeeeeeeeeeeeeeaes 39 3 2 2 Sistemas distribu dos vs orientados a ObjetOS sssseseeeeeeeeceeecceceeeeeeeeeeees 39 3 2 3 Heran a em ambientes distribuidos cccccccceesccceseceecasecceeseeesnseee saeeess 41 3 3 Programacao Sins read DU pueda nda CU SER US 42 Bi Sl EXPres SOG Sect ae Sac ates e dushaa due oandiaeaularonanate sac a e Garin du a dE aa a 42 3 3 2 Declara o d
9. o seria int x declara uma vari vel x x 1 atribui o valor 1 vari vel x onde nesse caso declarada uma vari vel inteira e atribu do o valor 1 a essa vari vel Incremento e Decremento O tipo do operando deve ser um tipo aritm tico ou um tipo ponteiro A express o x equivalente a x 1 que por sua vez igual x x 1 A express o x equivalente a x 1 que por sua vez igual x x 1 Operadores Aditivos Os operadores aditivos s o e Os operadores devem ser de tipo aritm tico ou ponteiro O resultado do operador a soma dos operandos e do operador a subtra o dos mesmos Um exemplo do uso desses operadores seria int a xX y declara tr s vari veis inteiras a xty atribui vari vel a o valor resultante de x y x a y llatribui vari vel x o valor de a y Comando for RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 3 O Ambiente do DPC 43 for j 0 j lt 10 j lt vari vel de controle gt lt condi o de parada gt lt incremento gt lt sequ ncia de comandos gt Comando if If x lt 10 lexpressao l gica then lt sequ ncia de comandos gt else lt sequ ncia de comandos gt Comando while while lt express o l gica gt lt sequ ncia de comandos gt Comando do while do lt sequ ncia de comandos gt while lt express o l gica 3 3
10. DO clusters CO CD Execut veiX O CO O CD O CD INTRODU O PROwr ___ EM CLUSTERS D Figura 4 13 Elementos de compila o DPC Essa compila o encarregada de gerar os arquivos execut veis da aplica o distribu da Neste ponto o nico arquivo execut vel diretamente pelo usu rio o arquivo principal da aplica o como seria se a aplica o fosse segiiencial O ambiente de compila o DPC mant m os arquivos tempor rios gerados durante o processo de compila o Estes arquivos correspondem ao c digo do objeto Diret rio e aos c digos dos objetos procuradores e distribu dos da aplica o Esses arquivos podem ser encontrados em tmp dpc lt pid gt e foram mantidos para que o programador da aplica o possa estud los se necess rio 4 3 4 Restri es quanto a Defini o e Execu o de Aplica es DPC Muitas vezes necess rio que a pessoa que for definir e executar aplica es DPC esteja atenta a alguns detalhes muito importantes e Todo m todo de objeto deve ter seu tipo de retorno definido explicitamente Somente permitido defini o impl cita para os m todos construtor e destrutor da classe e A fun o main n o admite par metros de entrada O nico argumento suportado o void e N o permitido que o c digo de aplica es DPC contenham trechos comentados 4 3 5 Implementa o do Compilador DPC O ambiente de compila o DPC composto por
11. G Arquiteturas Paralelas Vers teis e de Baixo Custo para a Pesquisa e o Ensino na Area de Processamento Paralelo e Distribuido Porto Alegre PUCRS 1999 DIL95 DILLON E SANTOS C Gamboa dos GUYARD J Homogeneous and heterogeneous networks of workstations message passing overhead In MPI DEVELOPERS CONFERENCE 95 1995 Motre Dame Proceedings 1995 DUM95 DUMAS Arthur Programming WinSock Sams Publishing 1995 ELL90 ELLIS M STROUSTRUP B The Annotated C Reference Manual Murray Hill Addison Weskey 1990 447p EIC95 EICKEN T von BASU A BUCH V Low Latency Communication Over ATM Networks Using Active Messages IEEE Micro p 46 53 Feb 1995 FLY92 FLYNN M J Some Computer Organizations and their Effectiveness IEEE Transactions on Computers New York v C 21 n 9 p 948 160 Sept 1972 FRO98 FROHLICH Antonio Augusto Medeiros SNOW project Disponivel por WWW em http www first gmd de guto snow fev 1998 GEI94 GEIST Alet al PVM parallel virtual machine Cambridge MA MIT Press 1994 GEI94a GEIST A BAGUELIN A DONGARRA J JIANG W MANCHEK R SUNDERAM V PVM Parallel Virtual Machine A User s Guide and Tutorial for Networked Parallel Computing MIT Press 1994 GRO96 GROPP W et al A high performance portable implementation of the MPI message passing interface standard Parallel Computing v 22 n 6 p 789 828 Sep 1996 HEI98 HEISS Hans Ulrich AG Heif proj
12. RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 18 Verissimo Dual Pentium PRO 200 Nodo do cluster Quintana Dual Pentium PRO 200 Nodo do cluster Euclides Dual Pentium PRO 200 Nodo do cluster As Tabelas 1 2 e 1 3 relacionam os nomes das m quinas pertencentes ao ambiente do cluster com seus respectivos n meros IPs e seus nomes no servidor NFS Na Tabela 1 2 est o as m quinas que n o fazem parte do cluster propriamente dito e possuem fun es de consoles ou de servidor NFS das redes Fast Ethernet e Myrinet caso da m quina scliar meyer e ostermann Essas m quinas que possu m fun o de consoles ou servidores NFS recebem um tratamento especial nas configura es al m de possu rem processadores diferentes dos n s do cluster logo n o s o contadas como n s da m quina paralela Como os consoles s o respons veis por toda a E S da m quina paralela e ainda t m fun es de carga de programas e de monitora o elas j sofrem uma carga consider vel Isso naturalmente n o impede que elas sejam usadas no processamento de aplica es paralelas A inclus o dessas m quinas no processamento de aplica es paralelas continuaria a deixar o cluster homog neo todas as m quinas reconhecem o mesmo conjunto de instru es mas esse se tornaria assim trico n o possuem as mesmas caracter sticas de processamento al m de que a sobrecarga q
13. construir se um programa que efetua o c lculo da s rie de Fibonacci No exemplo a seguir o programa ir computar o c lculo da s rie de Fibonacci para o valor 5 que como resultado ir imprimir na tela o valor 8 Quanto s rotinas do programa RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 71 principal o mesmo possuir uma rotina denominada de fibo2 que recebe como argumentos dois objetos e um n mero inteiro e retorna como resposta um n mero inteiro O programa ser constitu do de tr s arquivos denominados respectivamente Fibo apl Fibo dc e Main cc Na edi o desses arquivos pode se utilizar o editor emacs bastando digitar na tela de prompt emacs seguido da tecla enter O primeiro arquivo a ser editado no emacs vai ser o arquivo Fibo apl que respons vel pelas informa es dos arquivos constituintes da aplica o e das m quinas do ambiente distribu do O conte do do arquivo Fibo apl pode ser visualizado na Figura 5 8 Note que tudo o que vier ap s o s mbolo coment rio do c digo pertencente linha start Main cc Ifnome do arquivo principal da aplica o in verissimo fmaquina onde a aplica o ser iniciada with verissimo quintana fmaquinas do ambiente distribu do dclass FIBO Inome da classe distribuida at Fibo dc nome do arquivo em que se encontra a II implementa o da classe Figura 5 8 Conte do do arquivo Fibo apl da ap
14. e escrever o resultado em lt destino gt O s mbolo gt usado para redirecionar a sa da para um arquivo tem car ter destrutivo em outras palavras o comando acima escrever por cima do conte do de lt destino gt Se ao inv s disso voc redirecionar com o s mbolo gt gt a sa da ser adicionada a lt destino gt ao inv s de escrever por cima de seu conte do Muda o diret rio de trabalho corrente Sintaxe cd lt diret rio gt onde lt diret rio gt o nome do diret rio para o qual voc deseja mudar O s mbolo mm mm refere se ao diret rio corrente e o s mbolo refere se ao diret rio pai Para mover para um diret rio pai ou seja um diret rio acima do que voc est use o comando cd As Informa es sobre os comandos Linux foram obtidas na seguinte fonte Universidade Federal de Goi s Instituto de Inform tica home page do Projeto de Apoio ao Usu rio Internet http www dei ufg br apoio unix html RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 30 wow Obs Note o espa o entre cd e Voc tamb m pode usar nomes de caminho pathnames como argumento para o comando cd Por exemplo cd diretorio1 diretorio2 o posicionar diretamente em diret rio2 O uso de cd sem nenhum argumento far com que voc retorne para o seu home directory chgrp Modifica o grupo de
15. m consumidor de recursos e diminuir esta influ ncia se necess rio KRU94 No nosso modelo sempre que o espi o fizer uma nova avalia o de carga no nodo verificando a necessidade ou n o de notificar o escalonador central ele permanecer inativo por algum tempo no qual n o ganhar nenhum recurso Obt m se a adapta o possibilitando aumentar ou diminuir este tempo Se o nodo estiver com carga alta o espi o pode ficar inativo por um tempo maior caso contr rio n o haver problemas em se fazer avalia es de carga mais frequentes O Escalonador Central ter como tarefas manter uma tabela atualizada do estado dos nodos pertencentes a aplica o e fornecer ao Diret rio o nodo com melhores condi es de receber um novo objeto distribu do Inicialmente ele criar seus espi es nos nodos e aguardar uma mensagem dos mesmos informando o estado inicial dos nodos Este estado inicial pode incluir tamb m caracter sticas f sicas do nodo como capacidade de processamento velocidade de CPU etc Entretanto estas informa es n o s o necess rias caso todos os nodos sejam id nticos Ap s receber a situa o inicial uma tabela contendo o estado dos mesmos constru da e o escalonador est apto a receber requisi es Quando isto ocorrer o nodo de menor carga ser escolhido e retornado ao requisitante no caso o Diret rio Este modelo de Escalonamento para o DPC esta sendo implementado como Disserta o de Mestr
16. o de propriedade das outras pessoas que n o s o nem o usu rio e nem pertencente ao grupo do usu rio importante observar que os atributos referentes posi o 4 7 e 10 s o atributos de execu o Se esses atributos possu rem o valor x ent o ele representa um arquivo execut vel sendo que sua execu o restrita aos que possu rem o respectivo atributo de execu o ativado Uma observa o importante que nem todos os arquivos que cont m o valor x nessas posi es de atributos s o execut veis mas todos os arquivos execut veis devem conter numa dessas posi es de atributos o valor x Isso se deve ao fato de o usu rio ser capaz de mudar o atributo de um arquivo do tipo texto Esse arquivo poder possuir o atributo de execut vel apesar de ser um arquivo texto e assim sendo o computador n o ser capaz de execut lo Geralmente a configura o default assumida para os novos diret rios drwxr xr x RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 32 chown cp du A leitura dos atributos deve ser feita da mesma maneira como feita para os arquivos da esquerda para a direita sendo que a nica diferen a que o primeiro atributo possui o valor d de diret rio Os atributos seguintes possuem a mesma interpreta o dos atributos de um arquivo Modifica o propriet rio de um arquivo ou diret rio Sin
17. rotinas de interface que cont m um conjunto de primitivas que s o necess rias para a coopera o RELAT RIO DE PESQUISA Intituto de Inform tica da UFRGS INTRODU O A PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 22 entre tarefas de uma aplica o Como exemplo de primitivas temos pym_send pym_receive pvm spawn etc Essa biblioteca disp e de recursos que possibilitam a manipula o do ambiente virtual inclusive em tempo de execu o como retirar e inserir processadores criar novos processos matar processos enviar mensagens para v rios processos ao mesmo tempo e in meras outras possibilidades Uma observa o importante quanto a manipula o da m quina virtual adicionar e remover m quinas em tempo de execu o que al m de n o ser pr tico possui um custo computacional muito grande O PVM possui como caracter stica ser de f cil portabilidade entre arquiteturas diferentes e sistemas operacionais diferentes tanto que ele pode ser usado at sobre o sistema operacional Windows NT O PVM por exemplo t o heterog neo que n o s funciona em v rias arquiteturas mas como se pode rodar uma mesma aplica o nelas Exemplo pode se disparar uma aplica o usando como nodos as m quinas scliar verissimo Linux poncho Solaris e pala SUN4 todas dispon veis no laborat rio do Grupo Processamento Paralelo e Distribu do da UFRGS Algumas poucas diferen as na hora de compilar as aplica es s o ne
18. v 1388 SAN93 SANTOS Rafael Ramos dos CAVALHEIRO Gerson NAVAUX Philippe O A Mecanismo de Transporte para Comunicao entre Objetos Distribudos IN TELEMATICA 93 Simpsio de Redes de Computadores e suas Aplicacoes SUCESU RS Porto Alegre RS 3 a 5 de agosto 1993 Comunicao SAN93a SANTOS R R NAVAUX P O A Um modelo Distribu do para Programa o Orientada a Objetos In SAL O DE INICIA O CIENT FICA 5 1993 Porto Alegre Resumos Porto Alegre PROPESP UFRGS 1993 v 1 p 86 RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO SAN96 SANTOS R R CAVALHEIRO G G H NAVAUX P O A Checkpoints distribu dos em DPC In CONGRESO ARGENTINO DE CIENCIAS DE LA COMPUTACION 2 1996 San Luis AR Trabajos Seleccionados San Luis Universidad Nacional de San Luis 1996 p 74 85 SNY86 SNYDER A Encapsulation and Inheritance in Object Oriented Programming Languages SIGPlan Notices v 21 n 11 p 38 45 Nov New York ACM 1986 SNY93 SNYDER A The Essence of Objects Concepts and Terms IEEE Software v 10 n 1 p 31 42 Jan New York IEEE 1993 TAK 88 TAKEHASHI T Introdu o a Programa o Orientada a Objetos In EBAI 3 Curitiba jan 1988 TAK90 TAKAHASHI T LIESENBERG K E Programa o Orientada a Objetos S o Paulo IME USP 1990 340p WAR98 WARSCHKO Thomas M BLUM Joachin M TICHY Walte
19. vel e determina se que ela ser reduzida de todos os processos por uma opera o matem tica Como exemplo podemos citar um programa que calcule o PI em que cada processo calcula uma parte e o resultado final a soma de todas as partes no caso um MPI REDUCE pela soma O efeito o mesmo do que se cada processo enviasse uma mensagem com a sua parte ao nodo raiz nodo 0 para que este fa a a soma As vers es mais recentes do PVM tamb m j trazem este tipo de opera es O mecanismo utilizado para trocar dados o m todo de troca de mensagens sendo que fica sob a responsabilidade do programador a introdu o dos comandos para que essa troca se realize Em rela o ao compartilhamento de mem ria mem ria comum existem implementa es de bibliotecas MPI para arquiteturas com mem ria compartilhada As vers es mais novas do MPI MPI 2 suportam threads que permite explorar m quinas com mais de um processador 2 3 DPC Distributed Processing in C Al m das bibliotecas mencionadas anteriormente existe atualmente na UFRGS um avan ado projeto de ambiente de compila o chamado DPC Distributed Processing in C Inicialmente projetado para sistemas distribu dos com mem ria distribu da o DPC atualmente est implementado diretamente sobre sockets de UNIX mas logo poder ser facilmente portado para outros sistemas gra as a um outro projeto chamado DECK Distributed Executive Communication Kernel que uma camada
20. 2 Declara o de classes em C Uma das diferen as da linguagem C em rela o linguagem C que essa permite a defini o de classes Nesta se o ser ilustrado como se declara classes em C Na Figura 3 3 mostrado um exemplo ilustrativo de como se implementaria uma hipot tica classe CONTA Primeiramente feita a declara o da classe sendo que nessa declara o se define o nome e os m todos da classe incluindo par metros de entrada e retorno Nota se que a declara o da classe n o envolve a real implementa o da mesma A real implementa o de seus m todos realizada abaixo das declara es No caso primeiramente s o declarados os m todos construtores e destrutores obrigat rios al m dos m todos combina e classifica O m todo combina recebe como par metro de entrada um ponteiro para um vetor de inteiros e retorna um valor do tipo inteiro O m todo classifica recebe como par metro de entrada um ponteiro para um vetor de inteiros e n o retorna nada como valor de retorno Uma observa o importante que como passado um ponteiro para uma estrutura qualquer altera o que vier a ser realizada na mesma acabar por alterar o conte do da mesma class CONTA Inome da classe void CONTA void fm todo construtor da classe void CONTA void m todo destrutor da classe int combina int vetor im todo combina que retorna um valor inteiro void classifica int vetor m todo que cl
21. Al m disso existem algumas m quinas que possuem a fun o de console e ou servidor NFS O sistema operacional Linux com kernel 2 2 1 e compilador C gcc vers o 2 91 60 egcs 1 1 1 Est o instaladas as bibliotecas PVM 3 4 e duas implementa es de MPI LAM 6 1 da Universidade de Ohio OHI96 e MPICH 1 1 2 do Laborat rio de MCS GRO96 Observa es sobre o cluster da UFRGS e A rede Myrinet est isolada sendo acess vel somente para a execu o de aplica es paralelas de dentro do cluster e Para usar a rede Fast Ethernet basta citar o nome da maquina ou o IP nos programas Para usar a Myrinet deve se utilizar o segundo nome da maquina ou o segundo IP e A m quina meyer encontra se no conectada ao switch Fast Ethernet mas possui placa Ethernet A Tabela 1 1 mostra a rela o de todas as m quinas pertencentes ao ambiente do cluster sendo que as m quinas meyer scliar e ostermann possuem a fun o de console terminais de acesso ao cluster e as m quinas dion lio verissimo quintana e euclides constituem os nodos do cluster onde s o executadas as aplica es paralelas Tabela 1 1 Caracter sticas das m quinas pertencentes ao cluster M quina Arquitetura Caracter sticas Especiais Meyer Pentium PRO Single Console N o est conectado rede Myrinet Scliar Pentium PRO Single Servidor NFS do cluster Ostermann Pentium II Console Dionelio Dual Pentium PRO 200 Nodo do cluster
22. Como pode ser visto na Figura 5 15 root casa delassif apl integersort apl Figura 5 15 Compila o da aplica o Integersort em DPC O resultado da compila o da aplica o pode ser visto na Figura 5 16 Note que o arquivo execut vel possui todos os atributo de exeu o com o valor x RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 79 1r ot roo t 1 root not Figura 5 16 Execut vel da aplica o compilada Ao inv s de editar um arquivo manualmente pode se implementar um gerador de seguencias de n meros desordenados Nesse exemplo implementou se o programa gerafile Esse programa recebe como par metro de entrada um n mero quantidade a ser gerada e o nome de um arquivo arquivo chamado teste Como pode ser visto na Figura 5 17 Croot casa dclassiflt gerafile 900 testel Figura 5 17 Gera o autom tica de um arquivo desordenado A execu o do programa gerafile apresenta a seguinte tela Figura 5 18 O resultado um programa que servir de entrada para a aplica o Integersort Figura 5 18 Execu o do gerador de sequencia de n meros desordenados gerafile O conte do do arquivo gerado deve ser uma segii ncia de n meros separados por uma quebra de linha tecla enter Um peda o do arquivo gerado pelo programa gerafile pode ser visto na Figura 5 19 Note que essa figura a visualiza o do arquivo utilizando o edito
23. aplica o Existem objetos auxiliares para o controle de processamento os chamados objetos espi es Em cada nodo que comp em a aplica o DPC instanciado um objeto deste tipo Sua fun o contabilizar a carga computacional do nodo onde se encontra O diret rio mant m uma tabela da carga computacional dos nodos que atualizada regularmente atrav s de solicita es aos objetos espi es sobre a carga de processamento do seu nodo Ent o no momento da cria o de um objeto esta tabela consultada e o nodo que apresentar a menor carga selecionado para instanci lo Por outro lado o programador pode definir um nodo espec fico para a instancia o de um determinado objeto Nesse caso o sistema ativa o objeto sem consultar a carga de processamento do nodo Al m desta tabela o diret rio manipula ainda uma tabela de controle de objetos distribu dos Nesta tabela encontram se informa es relativas a cada objeto tais como identifica o dos objetos criados atrav s da qual s o endere adas as mensagens identifica o do objeto que requisitou sua cria o e o nodo onde est instanciado 4 2 4 Objetos procuradores Objetos distribu dos s o referenciados em outros nodos atrav s de objetos procuradores Um objeto procurador possui uma imagem do objeto distribu do que representa Sua tarefa enviar ao objeto real remoto mensagens com as solicita es de tarefas referentes a invoca es de m todos At
24. combina int vetor m todo assincrono com confirma o int calcula int num lm todo s ncrono Figura 4 2 M todos sincronos assincronos e assincronos com confirma o 4 1 2 Heran a nas classes distribu das A heran a em DPC realizada a n vel de linguagem da mesma forma que em C possibilitando ao programador heran a m ltipla e est tica Isto implica que a implementa o de um objeto pode ser definida em termos de n o apenas uma mas diversas implementa es de outros objetos como o caso da heran a simples E por ser est tica a implementa o do objeto definida em tempo de compila o n o podendo ser alterada durante a execu o do programa A implementa o da heran a para as classes que definem objetos distribu dos feita atrav s de c pia Assim toda a estrutura hier rquica sobre a qual montada a classe distribu da replicada em cada inst ncia M todos virtuais existentes em classes C utilizados para definir um m todo cuja implementa o encontra se em uma classe derivada podem ser utilizados em DPC Por m uma classe distribu da deve ter todos os m todos implementados implicando que uma classe distribu da deva ser um nodo folha de um grafo de heran a Os n veis de visibilidade de classes C definindo reas privadas protegidas ou p blicas continuam v lidas nas defini es de objetos distribu dos DPC Os m todos definidos em reas p blicas comp em a
25. come ar com y yes o arquivo ser apagado caso contr rio ele ser mantido no sistema Quando se apaga um arquivo com o comando rm voc est apagando somente um ink liga o ou entrada para um arquivo Um arquivo somente ser apagado verdadeiramente do sistema quando ele n o possuir mais nenhuma liga o para ele isto nenhum ink referenciando o Geralmente arquivos possuem somente um link portanto o uso do comando rm ir apagar o s arquivo s No entanto se um arquivo possuir muitos links o uso de rm ir apagar somente uma liga o nesse caso para apagar o arquivo necess rio que voc apague todos os links para esse arquivo Pode se verificar o n mero de links que um arquivo possui utilizando o comando Is com a op o Algumas op es do comando f Remove todos os arquivos mesmo se estiverem com prote o de escrita em um diret rio sem pedir confirma o do usu rio 1 Esta op o pedir uma confirma o do usu rio antes de apagar o s arquivo s especificado s r Opc o recursiva para remover um diret rio e todo o seu conte do incluindo quaisquer subdiret rios e seus arquivos Obs diret rios e seus conte dos removidos com o comando rm r n o podem ser recuperados utilizado para apagar diret rios vazios Sintaxe rmdir lt diret rio 1 gt lt diret rio 2 gt lt diret rio n gt onde lt diret rio 1 gt at lt diret rio n gt s o os diret rios a serem apa
26. de execu o de prop sitos gerais dedicada aplica es paralelas Ela prov ao usu rio uma API com um conjunto de primitivas que lidam com threads opera es de defini o de comunica es e de sincroniza o da mesma forma que um n mero b sico de servi os como nomea o empacontamento desempacotamento carregamento balanceado de tarefas etc necess rias pela maioria das aplica es paralelas DECK um ambiente dedicado para clusters formados por esta es de trabalho homog neas interconectadas via uma interface LAN FastEthernet Myrinet etc e faz uso de um mecanismo de comunica o do tipo sockets de UNIX em conjunto com uma biblioteca Pthreads compliant para prover multiprograma o O DPC possui como m todo de troca de dados o mecanismo de troca de mensagens s que isso feito de uma maneira impl cita nunca o programador far uso de uma primitivasend de forma expl cita Isso se deve ao fato de que quando o programador cria um objeto distribu do esta cria o o envio de par metros e posteriormente o retorno feito com troca de mensagens Os servi os send e receive n o podem ser usados pelo programador O DPC ao contr rio do PVM e MPI uma linguagem de programa o possuindo um compilador pr prio que necessita inclusive de uma biblioteca de troca de mensagens para funcionar podendo ser at mesmo o PVM ou o MPI Inicialmente o DPC foi implementado em sockets com um prot t
27. dos objetos distribu dos O conte do do arquivo pingpong h pode ser visto na Figura 5 2 Nesse arquivo foi definido o tipo abstrato de dado msg t que nada mais do que um vetor de caracteres de 1024 elementos typedef struct define a estrutura msg t char m 1024 define um array m de 1024 caracteres msg t Figura 5 2 Conte do do arquivo pingpong h O terceiro arquivo o arquivo que conter a declara o e defini o da classe distribu da PingPong Esse arquivo inclui o arquivo pingpong h definido anteriormente pois faz uso do tipo de dado msg t E interessante que esse arquivo tenha o mesmo nome da RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 3 classe distribu da que definida nele seguida da extens o dc O conte do do arquivo PingPong dc pode ser visto na Figura 5 3 include pingpong h II inclui o arquivo pingpong h dclass PingPong II define a classe distribu da PingPong public fm todos p blicos PingPong Im todo construtor da classe PingPong m todo destrutor da classe msg_t doPingPong msg_t lm todo doPingPong que llretorna um elemneto msg_t gt PingPong PingPong limplementagao do m todo construtor Ilda classe PingPong PingPong limplementagao do m todo destrutor Ilda classe msg_t PingPong doPingPong msg tm implementagao do Ilm todo doPingPong return m Figura 5 3 Conte d
28. e Deve ser criada uma vari vel de ambiente de nome DPC PATH que conter todo o caminho path para o diret rio DPC Essa vari vel deve ser definida em algum script de inicializa o do usu rio login ou profile Tamb m deve ser adicionada a vari vel PATH o caminho para o subdiret rio bin Um exemplo de edi o do arquivo login pode ser visto na Figura 4 8 Um exemplo da adi o do caminho para o subdiret rio bin vari vel PATH pode ser visto na Figura 4 9 setenv DPC PATH home DPC RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 4 O M55Sodelo DPC 55 Figura 4 8 Exemplo de edi o do arquivo login export PATH PATH usr local dpc bin Figura 4 9 Exemplo de configura o do caminho para o subdiret rio bin Note que para editar qualquer um dos arquivos de inicializa o login ou profile deve se executar um editor de textos Se o usu rio desejasse editar o arquivo ogin esse primeiramente deveria mudar para o seu diret rio home bastando para isso digitar cd seguido da tecla Enter Uma vez em seu diret rio home digitar emacs login Isso inicia o editor de textos emacs com o arquivo ogin j aberto O usu rio deve acrescentar ao arquivo as linhas vistas nas Figuras 4 8 e 4 9 efetuando as devidas altera es em rela o aos diret rios onde o pacote de distribui o foi descompactado Ap s isso as altera es devem ser salvas Caso ocorra algum erro na edi o de a
29. ex flags de programa o que resultam em diferentes desempenhos Inicialmente com o objetivo de otimizar a comunica o o gerenciamento din mico de processos e processadores n o era suportado ao contr rio do PVM A princ pio esta restri o pode parecer desfavor vel mas os programas escritos em MPI tendem a ser mais eficientes pelo fato de n o haver overhead na carga de processos em tempo de execu o O MPI no entanto por n o prover gerenciamento din mico de processos deixa de ser atraente para algumas aplica es tipicamente para aquelas onde cada processador respons vel por uma tarefa espec fica Para usar o MPI nesses casos o que se fazia era um c digo bastante grande com v rios comandos if Esses processos usavam muitos recursos de hardware e sua inicializa o era custosa MPI97 Uma caracter stica marcante no MPI que n o existem processos como no PVM existe sim um nico processo que pode ser rodado em v rias m quinas chamadas de nodos j previamente montadas na m quina virtual e n o modific vel em tempo de execu o Logo se percebe que esta t cnica se beneficia em muito de programas paralelos sim tricos onde todos os participantes executam o mesmo trecho de c digo s que em por es de dados diferenciadas Como pode se observar MPI mais indicado para problemas que s o facilmente lidados por arquiteturas SIMD Single Instruction Multiple Data onde se dispara o mesmo processo em to
30. interface de acesso ao objeto distribu do 4 1 3 Restri es na manipula o de mem ria Por tratar se de uma ambiente distribu do n o h espa o de mem ria acess vel por todos os objetos inexistindo portanto a possibilidade de compartilhamento de dados atrav s de rea comum de mem ria em DPC A linguagem C possui duas formas de compartilhamento de mem ria que DPC restringe e Uso de vari veis de classe e Passagem de endere os de objetos como par metros m todos Um objeto C ao ser instanciado cria sua pr pria rea de dados independente dos demais objetos da mesma classe Por m uma categoria de dados definida em uma classe compartilhada por todas as inst ncias desta classe s o chamadas vari veis de classe Este compartilhamento de dados realizado por mem ria n o poss vel em um ambiente distribu do pois diversas inst ncias RELAT47047RIO DE PESQUISA Inst47ituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 48 de uma mesma classe podem estar dispersas por diversos processadores n o podendo endere ar a mesma rea de mem ria Tamb m devido ao problema de endere amento de mem ria n o poss vel enviar como par metro endere os de objetos locais a um nodo m todos de objetos de outro nodo Entre objetos de diferentes nodos somente poss vel a passagem de endere os de objetos distribu dos e de dados por valor by value
31. mais recente argc ser o numero de par metros passados ao programa por um ambiente no qual esse programa executado Se argc diferente de zero esses par metros ser o supridos como strings terminados em zero em argv 0 por interm dio de argv argc 1 e argv 0 ser o nome usado para invocar o programa ou garantido RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 42 que argv argc 0 Uma observa o que a fun o main n o pode ser chamada do interior de um programa Para encerrar o programa deve se chamar a fun o void exit int que est declarada em lt stdlib h gt O valor do argumento retornado para o ambiente do programa como o valor do programa Uma instru o return em main tem o efeito de chamar exit com o valor de retorno como retorno como argumento Deve se notar que n o objetivo desse relat rio fazer uma apresenta o extensa e detalhada da linguagem C sugere se que o futuro programador leia livros relacionados com o assunto como em ELL90 3 3 1 Express es Esse cap tulo discute as express es de C os blocos de constru o fundamentais para a computa o Uma observa o importante que muitas vezes uma mesma express o pode ser constru da de diferentes maneiras Comando de Atribui o O operador de atribui o em C o sinal de Um exemplo do uso desse operador de atribui
32. o a distribui o O conjunto de m todos do objeto consistem na implementa o dos servi os oferecidos pelo objeto Em um determinado instante apenas um m todo encontra se em execu o em um objeto O estado interno de um objeto composto pelo conjunto de dados manipulados pelo objeto Estes dados s o considerados objetos locais os quais n o podem ser referenciados diretamente por outros objetos distribu dos Os objetos locais s o considerados como informa es pertinentes apenas a um objeto ou que o custo de processamento n o justifique a distribui o RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 4 O M5Slodelo DPC 51 4 2 3 O Diret rio O diret rio o objeto central do modelo Sua tarefa realizar o controle dos objetos da aplica o e da carga de processamento de cada nodo Nele s o centralizados os pedidos de cria o de objetos distribu dos e decidido onde instanciar cada objeto de acordo com as taxas de processamento de cada nodo O diret rio utiliza um c digo pr definido pelo ambiente de compila o A estrutura deste c digo compreende al m dos m todos construtor e destrutor m todos respons veis pela cria o dos objetos distribu dos endere amento e comunica o entre estes objetos O m todo de cria o de objetos distribuidos a parte vari vel do diret rio e depende exclusivamente da quantidade de classes distribuidas especificas pelo programador da
33. of this work is to register and to validate the use of the machines clusters in special cluster of high performance of the UFRGS and the environment of programming DPC The documentation includes features of cluster of the UFRGS being given a special emphasis to the available tools for programming of applications of high performance PVM MPI and DPC Tool DPC was developed by the Parallel Processing and Distributed group and drift of C It is objects oriented and of easy adaptation on the part of the programmer Also the validation and the examplification of the use of this environment had been developed applications aiming at Keywords High Performance Computing Parallel Processing Distributed Processing High Performance s Clusters DPC Cap tulo 1 Introdu o aos Clusters 11 1 Introdu o aos Clusters Sistemas de processamento paralelo v m se tornando cada vez mais populares em fun o da demanda por processamento de alto desempenho exigido pelas diversas reas da ci ncia ex qu mica biologia meteorologia Infelizmente os sistemas que oferecem a capacidade de processamento para satisfazer a essa demanda representados pelas m quinas de arquiteturas maci amente paralelas ou tem um custo elevado ou s o dificeis de programar ou ambos Em fun o disso nos ltimos anos t m se investido na pesquisa de m quinas paralelas baseadas em clusters de multiprocessadores sim tricos por possu rem um custo
34. onde ir rodar o programa with quintana nome das m quinas pertencentes ao II ambiente distribu do dclass HelloWorld nome da classe distribu da at HelloWorld dc Inome do arquivo onde se encontra lla classe distribu da Figura 5 5 Conte do do arquivo Hello apl O arquivo HelloWorld dc o arquivo que cont m a defini o e implementa o da classe distribu da HelloWorld Uma observa o importante que esse arquivo inclui o cabe alho da biblioteca de rotinas unistd h que pr pria da linguagem C Por ser uma biblioteca pr pria da linguagem C o nome dessa biblioteca est entre os s mbolos lt gt que serve para indicar que essa biblioteca se localiza no diret rio de bibiotecas do C e n o no diret rio corrente do arquivo que nesse caso deveria explicitar o nome da biblioteca entre Um exemplo de fun o pertencente a essa biblioteca a fun o gethostname p1 p2 O conte do desse arquivo pode ser visto na Figura 5 6 include lt unistd h gt inclui a biblioteca unistd h dclass HelloWorld Ildeclara a classe HelloWorld e seus m todos RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO public Ifm todos p blicos HelloWorld HelloWorld m todo construtor HelloWorld II HelloWorld m todo destrutor void sayHello II sayHello m todo que n o retorna nenhum I valor HelloWorld HelloWorld
35. pertence o propriet rio do arquivo no exemplo temos o grupo users Na quinta coluna temos o tamanho do arquivo em bytes Por fim na sexta e s tima colunas temos a data da ltima modifica o feita no arquivo e o nome do mesmo respectivamente Vale lembrar que v rias op es podem ser usadas de forma composta Por exemplo podemos executar o comando Is la RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 3 O Ambiente do DPC 35 e esse mostrar todos os detalhes que as op es l e a disp em man Exibe uma p gina do manual interno do Linix para um dado comando ou um recurso isto qualquer utilit rio do sistema que n o seja comando por exemplo uma fun o de biblioteca E como um help interno ao sistema Sintaxe man lt comando gt onde lt comando gt e o nome do comando ou recurso que se deseja obter a ajuda mkdir Cria diret rios Praticamente igual ao comando md do DOS Sintaxe mkdir lt diret rio 1 gt lt diret rio 2 gt lt diret rio n gt onde lt diret rio 1 gt at lt diret rio n gt s o os diret rios a serem criados As entradas padr o em um diret rio por exemplo os arquivos para o pr prio nn diret rio e para o diret rio pai s o criadas automaticamente A cria o de um diret rio requer permiss o de escrita no diret rio pai O identificador de propriet rio owner id e o identificador de grupo group id dos novos diret rios
36. recomenda es pr requisito o programador possuir um certo conhecimento da linguagem C caso contr rio o conte do desse cap tulo ser de dif cil compreens o Como foi visto no cap tulo 4 referente ao modelo DPC uma aplica o DPC composta pelos seguintes arquivos e Arquivo descritor da aplica o nesse arquivo que o compilador DPC ira procurar por informa es sobre os arquivos que far o parte da aplica o principal e das m quinas que far o parte do ambiente distribu do e Arquivo principal da aplica o nesse arquivo que escrito o programa que ser a aplica o propriamente dita nesse arquivo que s o feitas as chamadas dos m todos dos objetos das classes distribu das sendo que deve possuir como extens o cc Ex lt nome do arquivo gt cc e Arquivos de classes distribu das s o os arquivos que cont m a defini o e implementa o das classes distribu das Cada classe distribu da precisa ser definida em um arquivo com a extens o dc Ex lt nome da classe gt dc e Arquivos de defini es de tipos s o os arquivos que cont m os tipos definidos pelo usu rio S o usados para definir tipos abstratos de dados que n o est o previamente definidos pelo compilador Esse o nico arquivo que n o obrigat rio em uma aplica o DPC Esses arquivos devem terminar com a extens o h Ex lt nome do arquivo gt h Os arquivos podem ser editados em qualquer editor de tex
37. tr s pr processadores cada um com uma fun o espec fica durante o processo de an lise da aplica o Um conjunto de rotinas de comunica o juntamente com um objeto principal chamado Diret rio completam o ambiente A Figura 4 14 ilustra o ambiente de compila o DPC RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Capitulo 4 O M590delo DPC 59 Ambiente de Interm edi ria Compila o DPC Aplica o Diret rio classe distribu da classe B Procurador i distribuida classe A ar quivo Procurador descritor classe B Objeto Objeto Diret rio distribu do distribu do A B Figura 4 14 Ambiente de compila o DPC A regi o Aplica o cont m a defini o da aplica o a ser desenvolvida o c digo escrito pelo programador para as classes distribu das juntamente com o arquivo principal da aplica o A regi o Intermedi ria consiste na interpreta o da aplica o pelo ambiente de compila o DPC segundo o modelo de objetos distribu dos Nessa regi o encontram se os c digos dos objetos procuradores totalmente implementados pelo ambiente de compila o A regi o Execut vel consiste nos c digos execut veis dos elementos que comp em a aplica o juntamente com o c digo execut vel do objeto Diret rio Nesse ponto o nico m dulo execut vel diretamente pelo usu rio o que cont m a rotina principal da aplica o 4 3 5 1 Rotinas
38. tulo 4 O M630delo DPC 63 Figura 4 15 Modelo do escalonador Cada nodo participante da aplica o DPC ter um objeto espi o respons vel pela atualiza o de sua carga junto ao escalonador Para minimizar o n mero de troca de mensagens os espi es somente notificar o o escalonador central quando houver uma mudan a realmente significativa na carga O que o sistema adotar como mudan a significativa tamb m depende do estado do sistema Inicialmente por exemplo pode se assumir que n o interessa ao escalonador tomar conhecimento de mudan as inferiores a 5 Depois caso o sistema torne se carregado este valor pode ser trocado para digamos 20 Desta forma pode se variar o overhead com as trocas de mensagens entre espi es e escalonador de forma din mica A id ia tamb m oferecer mecanismos do programador influenciar estas medidas podendo por exemplo assumir que nunca o espi o informar mudan as na carga fazendo o apenas uma nica vez Esta configura o pode ser til no caso dos objetos distribu dos possu rem uma carga equivalente e todos eles serem criados no in cio da aplica o n o havendo mudan as na carga ap s isso Outra caracter stica do modelo o fato de ser adaptativo Um escalonador adaptativo definido como aquele que possui condi es de mudar suas caracter sticas dinamicamente ou seja ele pode se for o caso avaliar sua pr pria influ ncia sobre o nodo que controla pois ele tamb
39. usado para separar por exemplo mensagens de dados das de controle tag 1 para dados e tag 2 para controle Novamente na linha 19 deve se utilizar rotinas do PVM para desempacotar os dados na mesma ordem com que foram empacotados Na linha 20 tem se o comando para matar o processo para quem acabou de enviar a mensagem e finalmente na linha 22 o comando para desmontar a m quina paralela virtual 6 2 C digo em MPI O c digo abaixo est escrito em C e faz uso das primitivas dispon veis pela biblioteca MPI mostrando o emprego de tais diretivas RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 1 include lt mpi h gt 2 include lt stdio h gt 3 4 int mpierr rank size 5 MPI_Status status 6 char msg OK 7 temp 10 8 9 void main void 10 11 MPI_Comm_rank MPl_COMM_WORLD amp rank 12 MPI_Comm_size MPI_COMM_WORLD amp size 13 if rank 0 14 for cont 1 cont lt size cont 15 16 MPI Send msg 2 MPI CHAR cont 1 MPI COMM WORLD 17 MPI Recv temp 10 MPI CHAR 0 1 MPI COMM WORLD amp status 18 3 19 else 20 21 MPI_Recv temp 10 MPI_CHAR 0 1 MPI_COMM_WORLD amp status 22 MPI_Send msg 2 MPI_CHAR 0 1 MPI_COMM_WORLD 23 MPI_Finalize 24 25 26 Figura 6 2 Exemplo de c digo em MPI Neste exemplo n c pias do processo s o disparadas em n nodos Inicialmente na linha 11 o c dig
40. 1993 v 2 p 518 532 CAV93a CAVALHEIRO G G H NAVAUX P O A DPC uma linguagem para processamento distribu do In SIMP SIO BRASILEIRO DE ARQUITETURA DE COMPUTADORES PROCESSAMENTO DE ALTO DESEMPENHO 5 1993 Florian polis Anais Florian polis SBC 1993 v 2 p 732 744 CAV94 CAVALHEIRO Gerson G H Um modelo para linguagens orientadas a objetos distribu dos Porto Alegre CPGCC da UFRGS 1994 Disserta o de Mestrado CAV95 CAVALHEIRO G G H KRUG R C RIGO S J NAVAUX P O A DPC an object oriented distributed language In CONFERENCIA INTERNACIONAL DE LA SOCIEDAD CHILENA DE CIENCIA DE LA COMPUTACI N 15 1995 RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO Arica CL Actas Santiago Sociedad Chilena de Ciencia de la Computaci n 1995 p 92 103 CHA97 CHAIMOWICZ Luiz RABE Jos Nagib Cotrim Balanceamento de carga em um ambiente Distribu do In IX Simp sio Brasileiro de Arquitetura de Computadores e Processamento de alto desempenho 1997 ANAIS p 475 491 DER97 De ROSE C A F NAVAUX P Um Modelo Distribu do para a Aloca o e Ger ncia de Processadores em Multicomputadores In SIMP SIO BRASILEIRO DE ARQUITETURA DE COMPUTADORES PROCESSAMENTO DE ALTO DESEMPENHO 9 1997 Campos do Jord o Anais S o Paulo Escola Polit cnica da USP 1997 p 447 461 DER99 De ROSE C A F MAI C
41. ANs comuns desta forma os protocolos padr o de LANs podem ser eliminados Isto permite utilizar propriedades mais especializadas na rede como protocolos ponto a ponto e controle da rede ao n vel do usu rio sem intera o com o sistema operacional O protocolo ParaStation implementa m ltiplos canais l gicos de comunica o em uma liga o f sica Em contraste com outras redes de alta velocidade como a Myrinet por exemplo na ParaStation n o h custo adicional para componentes de switch central e Myrinet um novo tipo de rede que utiliza uma tecnologia baseada em comunica o atrav s de pacotes As caracter sticas que tornam a Myrinet uma rede de alto desempenho incluem o desenvolvimento de canais robustos de comunica o com controle de fluxo pacotes controle de erro baixa lat ncia interfaces que podem mapear a rede rotas selecionadas tradu o de endere os da rede para essas rotas bem como manipula o do tr fego de pacotes e software que permite comunica o direta entre os processos a n vel de usu rio e a rede A Myrinet foi originalmente desenvolvida para ser utilizada em sistemas multicomputadores MPP s e NOW s que consistem de uma cole o de n s de computa o cada um com sua pr pria mem ria conectados por uma rede de troca de mensagens Atualmente a Myrinet vem sendo utilizada em m quinas baseadas em clusters Do mesmo modo que as LANs os n s de uma m quina baseada em clusters utilizam um
42. Computing Orlando FL v 40 n 1 p 4 18 Jan 1997 MEY88 MEYER B Objected Oriented Software Construction New York 1988 534p MPI94 MPI FORUM The MPI message passing interface standard Knoxville University of Tenessee 1994 MPI97 MESSAGE PASSING INTERFACE FORUM MPI 2 Extensions to the Message Passing Interface 1997 NAV97 NAVAUX P O A Manual de Instala o do Ambiente de Compila o DPC Porto Alegre CPGCC da UFRGS 1997 OHI96 OHIO SUPERCOMPUTER CENTER MPI primer developing with LAM S 1 Ohio State University 1996 PIL97 PILLA M L BARRETO M E SANTOS R R CAVALHEIRO G G H NAVAUx P O A Mecanismo de toler ncia a falhas para a linguagem distribu da DPC In SIMP SIO BRASILEIRO DE ARQUITETURA DE COMPUTADORES PROCESSAMENTO DE ALTO DESEMPENHO 9 1997 Campos do Jord o Anais S o Paulo Escola Polit cnica da USP 1997 p 139 152 PIL97a PILLA M L BARRETO M E SANTOS R R CAVALHEIRO G G H NAVAUX P O A Implementa o de um algortimo de cria o de checkpoints para a linguagem distribu da DPC In CONGRESO ARGENTINO DE CIENCIAS DE LA COMPUTACION 3 1997 La Plata AR Anales La Plata Universidad Nacional de La Plata 1997 PRY98 PRYLLY L TOURANCHEAU B BIP a new protocol designed for high performance networking on myrinet In IPPS SPDP 98 WORKSHOPS 10 1998 Proceedings Springer 1998 P 472 485 Lecture Notes in Computer Science
43. Conte do do arquivo dsort dc da aplica o Integersort O ltimo arquivo o arquivo principal da aplica o chamado de Intergersort cc Esse arquivo inclui todos os cabe alhos das bibliotecas necess rias pelo programa nesse caso foi inclu do o cabe alho da biblioteca stdio h que a biblioteca padr o do C para entrada e sa da al m da classe distribu da nesse caso foi inclu do o arquivo dsort dc pois nesse arquivo que est contida a classe distribu da DSORT O Conte do detalhado desse arquivo pode ser visto na Figura 5 10 No corpo do programa pode ser visto que s o definidos dois ponteiros para arquivos chamados readFile e outpFile respectivamente Tamb m definido uma vari vel vetor do tipo tarray t al m de tr s inst ncias da classe distribu da DSORT Uma observa o importante que os coment rios no c digo t m apenas um efeito ilustrativo n o devendo ser inseridos no c digo pois o compilador DPC ir acusar erro O programa funciona em tr s etapas A primeira etapa onde feita a inicializa o do vetor Essa inicializa o se d atrav s do arquivo teste sendo esse o arquivo que cont m os n meros inicialmente desordenados A segunda etapa onde realizada a classifica o distribu da S o definidas duas novas estruturas tarray t para que o resultado da classifica o das partes do vetor que realizada por dois objetos distribu dos possa ser armazenada para uma futura combina
44. DECK Uma observa o importante que a linguagem DPC derivada do C possibilitando uma poss vel reutiliza o de c digo previamente escrito RELAT RIO DE PESQUISA Intituto de Inform tica da UFRGS INTRODU O A PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 26 2 4 Considera es finais Existem alguns ambientes dispon veis para a programa o no cluster da UFRGS PVM MPI DPC Athapascam Sendo que feito uma compara o das caracter sticas dos tr s primeiros ambientes de programa o paralela Nesse trabalho est sendo dada especial aten o ao ambiente DPC por fazer uso do paradigma de orienta o a objetos por ser uma extens o da linguagem C e n o exigir um grande esfor o do programador para garantir a comunica o entre os processos paralelos uma vez que essa comunica o impl cita bastando ao programador modelar o problema no paradigma de orienta o a objetos Al m dos motivos expostos anteriormente cabe ressaltar que o DPC um projeto do Grupo de Processamento Paralelo e Distribu do da UFRGS A biblioteca PVM e todas as implementa es de MPI foram inicialmente desenvolvidas sobre o protocolo TCP IP Conseqiientemente seu simples uso em uma arquitetura baseada em cluster com r pidas redes de interconex o resulta em uma desempenho muito aqu m da m xima desempenho oferecida por essas redes A alta taxa de tempo gasta na comunica o e na manipula o de dados s o os
45. LUSTERS DE ALTO DESEMPENHO 36 Sintaxe mv lt arquivo 1 gt lt arquivo 2 gt lt arquivo n gt lt destino gt onde lt arquivo 1 gt at lt arquivo n gt s o os arquivos a serem movidos e lt destino gt o arquivo ou o diret rio para onde os arquivos ser o movidos Se lt destino gt n o for um diret rio somente um arquivo dever ser especificado como fonte Se for um diret rio mais de um arquivo poder ser especificado Se lt destino gt n o existir mv criar um arquivo com o nome especificado Se lt destino gt existir e n o for um diret rio seu conte do ser apagado e o novo conte do ser escrito no lugar do antigo Se lt destino gt for um diret rio o s arquivo s ser o movido s para este diret rio Os arquivos fonte e destino n o precisam compartilhar o mesmo diret rio pai Algumas op es do comando i Com esta op o mv ir perguntar a voc se permitido escrever por cima do conte do de um arquivo destino existente Uma resposta y ves significa que a opera o poder ser executada Qualquer outra resposta impedir que mv escreva por cima do conte do de um arquivo j existente passwd Modifica a senha pessoal Para garantir a seguran a do sistema o sistema Unix requer o uso de uma senha Se voc achar que algu m utilizou sua conta sem permiss o mude sua senha imediatamente Na Figura 3 2 est o descritos os passos que acontecem quando passwd utilizado pas
46. M montar uma m quina virtual de n processadores e us los para enviar tarefas e receber os resultados Essa cole o de computadores m quina virtual pode ser usada de uma maneira cooperativa para computa o concorrente ou paralela Por computa o concorrente entende se um conjunto de processos que concorrem entre si a fim de obter recursos computacionais ex processador mem ria perif ricos A computa o concorrente pode ser praticada sobre um nico processador n o necessitando obrigatoriamente mais de um processador O conceito de computa o paralela se refere a processar um ou mais processos simultaneamente logo esse conceito exige que haja no m nimo dois processadores O ambiente PVM composto de tr s partes principais A primeira parte o console que usado para montar a m quina paralela virtual atrav s de primitivas pr prias O ideal criar essa m quina uma nica vez para v rias aplica es ou seja a m quina estar dispon vel enquanto o programador n o a destruir A segunda parte um daemon que um programa que roda em todos os nodos constituintes da m quina virtual e respons vel pelo controle das tarefas que est o sendo executadas nesses nodos A a o de inserir uma m quina no ambiente virtual nada mais do que iniciar um processo daemon na mesma sendo que a remo o de uma m quina nada mais do que matar o referido processo A terceira parte do ambiente PVM uma biblioteca das
47. NHO 16 Nesta se o ser o apresentadas tr s configura es poss veis de clusters que foram apresentadas em DER99 Ser adotado que essas configura es possuir o um n mero fixo de nodos uma vez que bastaria recursos para a inclus o de novos A configura o minima se caracteriza por utilizar placas convencionais Fast Ethernet al m de uma Switch Fast Ethernet para a interconex o dos n s da m quina importante ressaltar que apesar de a diferen a para uma rede de esta es NOW parecer pequena essa Switch garante uma lat ncia muito menor na comunica o entre m quinas atrav s da emula o de uma conex o ponto a ponto entre todas as m quinas feito um chamamento em hardware ligando os n s da rede a cada comunica o Esse o ponto determinante que faz com que essa m quina perten a classe de m quinas baseadas em clusters e n o classe de redes de esta es NOW s Essa configura o denominada m nima porque o uso de placas convencionais implica na implementa o das camadas de rede em software o que compromete a lat ncia de forma significativa A configura o b sica caracteriza se por utilizar uma rede de baixa lat ncia para a interconex o dos n s Essa denomina o foi utilizada para representar a interconex o dos n s por placas de baixa lat ncia e n o por placas de rede convencionais A principal diferen a para a configura o m nima que as camadas de rede s o implementad
48. Sparcs da SUN m quinas M68000 semelhantes a Atari e Amiga MIPS e PowerPCs O Linux um clone UNIX de distribui o livre para PCs sendo que sua implementa o independente da especifica o POSIX com a qual todas as vers es do UNIX padr o true UNIX est o convencionadas Sendo um sistema baseado no padr o POSIX desfruta as vantagens do UNIX para trabalho e gerenciamento seguro de grandes redes e programa o mas tamb m ideal para uso dom stico controle administrativo de pequenas empresas e at para entretenimento O Linux foi escrito inteiramente do nada logo n o h c digo propriet rio em seu interior sendo que o sistema operacional encontra se dispon vel na forma de c digo objeto bem como em c digo fonte Uma caracter stica importante do Linux que esse pode ser livremente distribu do nos termos da GNU General Public License O Linux possui como caracter sticas timo desempenho estabilidade seguran a e multiplicidade de recursos al m de todas as caracter sticas que se pode esperar de um UNIX moderno incluindo e Multitarefa real e Mem ria virtual e Biblioteca compartilhada e Demand loading e Gerenciamento de mem ria pr prio e Executaveis copy on write compartilhados e Rede TCP IP incluindo SLIP PPP ISDN e X Windows A maioria dos programas rodando em Linux s o freeware gen ricos para UNIX muitos provenientes do projeto GNU A variedade de programas dispon veis no mercad
49. UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 50 e Caixa postal associado ao canal de invoca o Estes dois elementos s o respons veis pelo envio de requisi es a outros objetos e pelo tratamento de respostas as mensagens enviadas caso existam Cada par Caixa postal canal de invoca o permite a comunica o com um objeto distribu do e Delegac o associado a um canal de entrada gerencia a recep o de requisi es de outros objetos ativando os m todos por elas requisitados Tamb m retorna mensagens contendo respostas a caixa postal do objeto solicitante conforme o tipo de requisi o enviada canal e i ntrada m todos e estado canais de caixas interno postais invoca o Figura 4 4 Modelo do objeto distribu do A interface de comunica o o elemento pelo qual o objeto recebe as mensagens de invoca o de seus m todos Cabe a interface organizar as mensagens ativar os m todos correspondentes e conforme o caso enviar mensagens com respostas s solicita es recebidas Essa interface ligada rede de comunica o e endere ada pelo identificador do objeto Na interface se concentram todas as fun es de distribui o relativas ao modelo DPC A modularidade imposta por este aspecto possibilita uma f cil gera o de c digo visto que o c digo originalmente escrito n o precisa ser alterado em seu conte do e sim acrescido de algumas propriedades que possibilitar
50. UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORM TICA PROGRAMA DE P S GRADUA O EM COMPUTA O Introdu o Programa o em Clusters de Alto Desempenho por Eduardo Henrique Rigoni Rafael Bohrer vila Marcos Ennes Barreto Elgio Schlemer Cesar DeRose Tiaraju Asmuz Diverio Philippe O A Navaux RP 305 Outubro 1999 UFRGS II PPGC Caixa Postal 15 064 CEP 91501 970 Porto Alegre RS Brasil Telefone 051 316 68 46 Fax 051 319 15 76 E mail diverio inf ufrgs br Universidade Federal do Rio Grande do Sul Reitora Profa Dra Wrana Panizzi Pr Reitor de Pesquisa e P s Gradua o Prof Jos Carlos Ferraz Hennemann Diretor do Instituto de Inform tica Prof Dr Philippe Olivier Alexandre Navaux Coordenador de P s Gradua o Profa Dra Carla Maria Dal Sasso de Freitas Bibliotec ria Chefe do Instituto de Inform tica Beatriz Regina de Bastos Haro Sum rio Lista de VAG saia US EA a 4 Lista de Tabelas assis aesass pasa is ana sia a A Ga ata esa 5 Lista de ADreviaturas cccccccccccecceseesessessessessessssnssnsncnnaanaaes 5 RESUMO as ad On assadas 6 ADSIT Ke AEAEE E AE T 7 1 Introdu o aos ClusterS sssessseecssseccccsssecccsssececosecocosssseesssesee 11 1 1 Configura es de CIUSIEr Sa irassiae car aba aid ES DD SUAS TE e 16 1 2 O Cluster de Alto Desempenho da UFRGS cc cccccececeeceeeeeeeeeeeees 17 1 3 Objetivo e Organiza o desse Relat rio
51. a rede Myrinet eles enviam e recebem dados na forma de pacotes Qualquer nodo pode enviar um pacote para qualquer outro nodo Um pacote consiste de uma sequ ncia de bytes iniciando com um cabe alho que examinado pelos circuitos de roteamento para encaminhar o pacote atrav s da rede Em contraste com as LANs comuns por m esta rede baseada em Myrinet possui altas taxas de transfer ncia Uma liga o Myrinet composta por um par de canais full duplex que permite uma taxa de transfer ncia de cerca de 1 28 Gbit s cada um Uma rede Myrinet utiliza normalmente topologias regulares tipicamente malhas de duas dimens es embora ela permita a utiliza o de uma topologia arbitr ria uma vez que um cabo Myrinet pode conectar hosts entre si ou ainda ligar uma placa a um switch ou ainda dois switches entre si Ao contr rio de uma LAN t pica onde todo o tr fego de pacotes compartilha um mesmo canal f sico uma rede Myrinet com uma malha bidimensional pode ser considerada escal vel pois a capacidade dos agregados cresce com o n mero de n s devido ao fato de que muitos pacotes podem trafegar de forma concorrente significado geom trico s lido gerado pela rota o de uma superficie plana fechada em torno de um eixo que n o lhe seja secante RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 1 Introdu o aos Clusters 15 por diferentes caminhos da rede Uma rede Myrinet composta de liga es full du
52. a 6 2 Exemplo de c digo em MPL pasasassaiurenda ais caa seitas asmaranadis anos caras cssivina 85 Lista de Tabelas Tabela 1 1 Caracter sticas das m quinas pertencentes ao cluster ceee ee 19 Tabela 1 2 Endere os Ips das m quinas COnsoles cccceccceesseeeeeteeeeeeeeeeeeeeeeeaeeesaeeeees 19 Tabela 1 3 Endere os Ips das m quinas pertencentes ao cluster iitiiei 20 Tabela 3 1 Analogia entre orienta o a objetos e processamento distribu do 40 PULC TCP IP UFRGS UDP XDR Lista de Abreviaturas Application Programming Interface M dulo do DPC respons vel por fun es b sicas Basic Interface for Programming Linguagem de Programa o C Distributed Executive Communication Kernel Disk Operating System Distributed Processing in C Distributed Shared Memory Nome dado a licen a de uso p blico Grupo de Processamento Paralelo e Distribu do Internet Protocol Implementa o do MPI feita pela universidade de Ohio Local Area Network Implementa o de MPI criado no Laborat rio do MCS Message Passing Interface Implementa o de MPI criado na Universidade de Massachusets Message Passing Interface Fast Messages Massively Parallel Processor Network File System Network Of Workstations Non Uniform Memory Access Parastation User Level Comunication Parallel Virtual Machine Remote Procedure Call Symmetric MultiProcessor Transfer Control Protocol Internet Protoc
53. a instanciado sendo que este nodo invocar o m todo solicitado enviando uma mensagem ao nodo solicitante com a resposta e Destruir um objeto significa enviar uma mensagem ao nodo hospedeiro deste objeto para torna lo inativo Obs As considera es acima se referem ao novo modelo do DPC proposto e n o ao atualmente implementado A princ pio o DPC n o possui mecanismos de toler ncia a falhas mas se espera que em uma vers o futura o DPC possua tais mecanismos Atualmente o DPC n o de f cil portabilidade entre arquiteturas diferentes e sistemas operacionais diferentes pois est implementado sobre o mecanismo de sockets de UNIX Assim que o DPC estiver fazendo uso dos servi os de comunica o do DECK poder ser portado para os sistemas que o DECK permitir como o DPC dependente da biblioteca de comunica o que faz uso a portabilidade depende em princ pio da biblioteca de comunica o Uma poss vel compara o de desempenho entre PVM DPC e MPI n o poss vel uma vez que DPC n o uma biblioteca e a troca de mensagens n o responsabilidade dele O DPC necessita de uma biblioteca de comunica o logo para fazer uma compara o entre PVM MPI e DPC dever se ia fazer uma compara o entre PVM MPI e sockets atual biblioteca de comunica o utilizado pelo DPC Como a tend ncia de que o DPC seja implementado sobre o DECK poder se ia fazer uma compara o entre PVM MPI e
54. ado pelo aluno Elgio Schlemer 4 4 5 Biblioteca de Suporte em Tempo de Execu o A diversidade de arquiteturas e bibliotecas de suporte a multiprograma o comunica o e sincroniza o motivaram a proposta de defini o de uma interface padr o de servi os chamado RELAT63063RIO DE PESQUISA Inst63ituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 64 DECK BAR98 a ser usada pelas aplica es DPC para garantir melhor portabilidade e efici ncia linguagem DECK disponibilizar servi os de cria o de threads comunica o de por caixas postais sincroniza o e servi os adicionais como nomea o A defini o e implementa o de DECK ser o realizadas como disserta o de mestrado pelo mestrando Marcos Ennes Barreto A nova vers o do compilador DPC est sendo preparada para suportar as primitivas oferecidas pela biblioteca RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 4 O M65odelo DPC 65 RELAT65065RIO DE PESQUISA Inst6Situto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 5 5 Exemplos de Programas Esse cap tulo tem como principal objetivo exemplificar o uso da linguagem DPC na constru o de programas distribu dos Ser o mostrados os passos necess rios para se construir programas distribu dos utilizando o ambiente de compila o DPC al m de algumas observa es e
55. ados executem concorrentemente com outros objetos O fluxo de execu o interna ao objeto sequencial Esse modelo inserido de forma que acessos plataforma de distribui o seja transparente ao programador No modelo cada objeto distribu do possui uma mem ria local onde armazenado seu estado interno um conjunto de fun es m todos um canal de entrada e um canal de invoca es Os objetos distribu dos s o instanciados criados a partir da defini o de classes distribu das em DPC dclass 4 1 A Linguagem DPC A linguagem DPC totalmente baseada em C ELL90 por sua vez originada a partir de C DPC absorve da linguagem C a estrutura de programa o sintaxe e tipos b sicos Introduz apenas modifica es no tratamento da heran a n o sentidas pelo programador e abstra es na especifica o de m todos de classes distribu das possibilitando identificar os tipos de mensagens recebidas A op o por implementar o modelo de linguagem orientada a objetos distribu da sobre uma linguagem j existente deve se principalmente a quatro pontos e Facilidade de implementa o do modelo uma vez que n o necess rio definir uma linguagem completa apenas adicionar as caracter sticas do modelo introduzido e Facilidade de utiliza o do novo modelo pois os programadores que j tem conhecimento da linguagem base podem rapidamente utilizar a nova ferramenta e Utilizar os recursos j desenvolvidos p
56. aeeeseeeeneeeeens SI 4 3 2 2 Arquivos de classes distribuidas ic cxcsssasonssniidexpadaneareceMexesailanaentempanniaaenein 58 4 3 2 3 Arquivo principal da aplica o ccccecesecesscessceescecsseceseeseceeeaeecsaecesecseneeeseecsaeenes 58 4 3 3 Compilando e Executando Aplica es sussaaimisanindcc saia diuizadoiailedeaiaaisadam alias 58 4 3 4 Restri es quanto a Defini o e Execu o de Aplica es DPC 59 4 3 5 Implementa o do Compilador DPC si ansssaiseasraieretas inesrensadoceaisantsasioaanisasniensabndas 60 4 3 5 1 Rotinas de comunica o System ccccccccccccessceeessceceseeeecseecseeeecesneeeecsaeeeseeaeeesaes 61 4 3 35 2 Pr pr cessad r APD ssnin i r R ER Ga 61 A dida Pr processador DPG noirin delirio E AER EA bt aan 62 4 3 5 4 Pr processador GERAPROC ns sssssssssesssseseessseesesssessrssreesesssressrssreeseesresseseressenst 62 4 4 Tend ncias de Desenvolvimento do DPC ice 62 4 4 1 Mecanismos de Toler ncia a Falhas para o Objeto Diret rio DPC 62 4 4 2 Interface Gr fica de Visualiza o e Depura o de Aplica es DPC 63 4 4 3 Concorr ncia entre M todos de Objetos Distribu dos ciiiil 63 44 4 ERC AIOMOING TIL aiesainioani io r pe 63 4 4 5 Biblioteca de Suporte em Tempo de Execu o 65 5 Exemplos de Programas cccesesse esses se re seerreecceceecccecceneae OT SI Png DOIDO Es oi c a ota meet e
57. aeeiatdesatsempaenand 56 Figura 4 9 Exemplo de configura o do caminho para o subdiret rio bin 56 Figura 4 10 Exemplo de edi o do arquivo hosts asisuasisss vidas apainag ini peaipidntas ani opaas 56 Figura 4 11 Arquivo descritor arquivo saps sciscsssnedesusdeiay shccevdassuddedustacesiaeeianaaeadopnacets 57 Figura 4 12 Defini o de Classes Distr Dit Gas sisssecaysesestecainacatsegedanlenaateeateedeeatedoonnncaes 58 Figura 4 13 Elementos de compila o DPC acccscacusdcsnshutvohecaviecaypestiicenncsinncerscenehans 59 Figura 4 14 Ambiente de compila o DPC Essen so nissadpaiara tas bios Gac das SEG Ages dead 60 Fig ra 4 15 Modelo do escalonado ss seiaanmapa dados ie sai 64 Figura 5 1 Conte do do arquivo Ping P One apl essas ideal poa nbeasai fc olihaa alada did sui eaaA dada 68 Figura 5 2 Conte do do arquivo Pin spon ques iosdans colicas nie daphefo jaca nnirasr acusa d pearl 68 Figura 5 3 Conte do do arquivo PingPono de aspas isca ni ciais o niie daiane inianas dada dana 69 Figura 5 4 Conte do do arquivo main cc da aplica o PingPong eee eeeeeeteeeeeeees 69 Figura 5 5 Conte do do arquivo Hellovapl ico ccsscecsscudeaswshenasindceateaticnseideeainiensdentapinsdatawene 70 Figura 5 6 Conte do do arquivo Hello w orld dG ccicsiatesstiaceivtioeienmaseanaeneacieenivaass 71 Figura 5 7 Conte do do arquivo main cc da aplica o HelloWorld 71 Figura 5 8 Conte do do arquivo Fibo a
58. ara suporte da linguagem base e Possibilitar o reaproveitamento de c digo j escrito na linguagem original 4 1 1 Diretivas DPC RELAT45045RIO DE PESQUISA Inst4Situto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 46 Algumas altera es visando adequar C ao modelo distribu do fizeram se necess rias Tais altera es correspondem a restri es na manipula o de mem ria e introdu o de novas palavras reservadas linguagem estas ltimas atuando como diretivas ao compilador DPC A palavra reservada dclass distributed class especifica que a classe definida a seguir corresponde defini o de objetos que devem executar de forma distribu da e portanto a defini o da classe deve ter um tratamento diferenciado sendo utilizada como base para gera o do c digo execut vel do objeto distribu do e da gera o da classe procuradora dos objetos desta classe A Figura 4 1 apresenta um esquema que representa a declara o de uma classe distribu da dclass lt nome da classe distribu da gt lt defini o de m todos gt Figura 4 1 Defini o de uma classe distribu da Classes n o definidas como dclass distributed class s o assumidas como defini es de objetos locais A comunica o ente os processos se d atrav s de envio de requisi es aos m todos de objetos distribu dos Estas requisi es s o mapeadas em tr s tipos de mensagens permitind
59. arefas que efetivamente foram iniciadas Se este n mero for menor do que o desejado no caso 5 deduz se que houve um erro linhas 11 e 12 Nas linhas 14 a 22 temos simplesmente o envio do identificador de processo para cada processo o recebimento de um inteiro deste processo e o comando para mat lo Para enviar uma mensagem com PVM uma maratona de procedimentos s o necess rias A primeira delas preparar o buffer de mensagem com o pvm initsend A constante PvmDataDefault indica que o PVM deve formatar as mensagens por um padr o XDR Este padr o possibilita enviar mensagens entre arquiteturas diferentes Caso se utilize apenas um tipo de arquitetura todos PC s rodando Linux por exemplo pode se usar o par metro PvmDataRow que n o prov nenhum tipo de codifica o sendo portanto muito mais eficiente Na linha 16 tem se um comando de empacotamento de mensagens Podemos numa nica mensagem enviar v rios tipos de dados como inteiros strings etc Ap s a mensagem estar devidamente preparada para ser enviada o comando pvm send se encarrega de envi la ao processo destino Para receber uma mensagem usa se o pyvmrecv No exemplo linha 18 o primeiro 1 indica o recebimento de mensagem de qualquer processo Se deseja se receber apenas de um nico coloca se seu id neste par metro O outro 1 indica o recebimento de qualquer tag veja na linha 17 o envio de msg com tag 1 segundo par metro O conceito de tag pode ser
60. as em hardware nas placas e n o em software como na configura o anterior o que melhora a lat ncia na comunica o Como nesse caso o valor de lat ncia se aproxima consideravelmente das m quinas MPP j se torna poss vel neste caso comparar as duas arquiteturas clusters e MPP em n vel de desempenho Como essa configura o n o implementa uma mem ria global por hardware como a configura o avan ada ser vista adiante a implementa o de uma mem ria global e distribu da em software uma poss vel rea de pesquisa No caso da configura o m nima e b sica pode se utilizar bibliotecas que implementem DSM sobre mem ria distribu da como a biblioteca TreadMarks AMZ95 A configura o avan ada caracteriza se por utilizar duas redes de interconex o distintas uma que se utiliza de uma Switch Fast Ethernet equivalente a configura o m nima e outra que se utiliza de placas de interconex o especiais do padr o SCI A id ia aqui utilizar a rede Fast Ethernet para a tr fego de E S monitora o e ger ncia de recursos do sistema liberando a rede de menor lat ncia para o tr fego exclusivo de mensagens das aplica es paralelas As placas SCI s o ligadas entre si por conex es ponto a ponto e para um pequeno n mero de n s 2 a 10 se recomenda a liga o em anel importante ressaltar que a principal diferen a em n vel de arquitetura da m quina que a placa SCI implementa tamb m uma mem ria globa
61. assifica um vetor n o retorna valor RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 44 CONTA CONTA void limplementagao do m todo construtor da classe CONTA CONTA void Ilimplementa o do m todo destrutor da classe CONTA combina int vetor implementagao do m todo combina lt sequ ncia de comandos gt return lt resultado do tipo inteiro gt CONTA classifica int vetor Ilimplementa o do m todo classifica lt sequ ncia de comandos gt Figura 3 3 Implementa o de uma classe hipot tica CONTA 3 4 Relacionamento com DPC Nesse cap tulo foi apresentado o ambiente necess rio para se poder executar o ambiente de compila o DPC Foi feita uma introdu o ao sistema operacional Linux para que a pessoa que for programar utilizando a ferramenta DPC esteja familiarizada com os comandos do sistema operacional O Linux foi escolhido por ser esse o atual sistema operacional que est em uso no cluster da UFRGS Atualmente o DPC possui suas rotinas de comunica o implementadas sobre sockets de UNIX e como o Linux semelhante ao UNIX faz se necess rio que o programador tenha conhecimentos b sicos de Linux Al m disso o sistema Linux possui duas grandes vantagens permite a altera o do c digo para adapta o de partes do sistema caso desejado e o fato de ser gratuito A introdu o prog
62. atrav s dos objetos procuradores 4 2 5 Objetos espi es S o objetos auxiliares cuja fun o contabilizar a carga computacional do nodo onde se encontram informando ao diret rio a taxa de uso do nodo quando solicitado Em cada nodo que comp e a aplica o DPC instanciado um objeto deste tipo 4 2 6 lt exec cmd registra cgi gt Toler ncia a falhas no modelo DPC O modelo de suporte a toler ncia a falhas atualmente empregado em DPC faz uso de um mecanismo para cria o de checkpoints distribu dos SAN96 PIL97 PIL97a ou pontos de recupera o distribu dos Este mecanismo baseia se em caracter sticas peculiares das aplica es DPC para estabelecer um protocolo que rege a cria o de checkpoints de modo a sempre manter um estado global consistente entre os objetos distribu dos O m todo utilizado define um algoritmo que garante que a cria o de um ponto de recupera o nunca possa ocasionar a perda de mensagens mantendo assim a consist ncia do sistema Como o comportamento das aplica es DPC bem definido e a troca de mensagens restrita ou seja ela s ocorre em situa es espec ficas quando da invoca o de m todos ou na resposta a estes a consist ncia garantida criando se a cada mensagem enviada um ponto de recupera o no objeto emissor e no objeto receptor Ap s a cria o dos checkpoints os objetos trocam mensagens de confirma o ACK para indicar que os pontos foram c
63. bdiret rios dentro do diret rio temp para um novo diret rio templ Esta uma c pia recursiva como designado pela opc o r Se voc tentar copiar um diret rio sem utilizar esta opc o voc ver uma mensagem de erro mostra a utiliza o do disco em cada subdiret rio Exibe o espa o ocupado de um diret rio e de todos os seus subdiret rios em blocos de 512 bytes isto unidades de 512 bytes ou caracteres RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 3 O Ambiente do DPC 33 date Exibe a data configurada no sistema O comando date a n vel de usu rio exibe na tela a data configurada no sistema Ele pode se usado com op es mostram a data local ou data universal GMT Greenwich Mean Time A configura o dos dados desse comando s podem se realizadas pelo super usu rio root Para exibir a data local basta executar date Caso queira a data GMT utilize a op o u Exemplo date Wed Jan 8 12 05 57 EDT 1997 Aqui a data exibida em 6 campos que representam o dia da semana abreviado o m s do ano abreviado o dia do m s a hora disposta em horas minutos segundos a zona hor ria e o ano file Exibe o tipo de um arquivo Alguns arquivos tais como arquivos bin rios e execut veis n o podem ser visualizados na tela O comando file pode ser til se voc n o tem certeza sobre o tipo do arquivo O uso do comando permitir a visualiza o do tipo do arquivo Exemplo f
64. calculate if n lt 2 return 1 else return calculate n 1 calculate n 2 Figura 5 9 Conte do do arquivo Fibo dc da aplica o Fibonacci O ltimo arquivo da aplica o o arquivo principal da aplica o chamado de Main cc Como esse arquivo define a aplica o principal esse arquivo deve incluir todos os cabe alhos das bibliotecas necess rias pelo programa nesse caso foi inclu do o cabe alho da biblioteca stdio h que a biblioteca padr o do C para entrada e sa da al m das classes distribu das nesse caso foi inclu do o arquivo Fibo dc pois nesse arquivo que est contida a classe distribu da Fibo O Conte do detalhado desse arquivo pode ser visto na Figura 5 10 include lt stdio h gt linclui a biblioteca de E S padr o do C include fibo dc linclui a classe distribu da fibo dc int fibo2 Fibo f1 Fibo f2 int n fun o que retorna o c lculo return f1 gt calculate n 1 f2 gt calculate n 2 void main fungao principal do programa Fibo f1 f2 linstancia dois objetos da classe FIBO printf d n fibo2 amp f1 amp f2 5 Ilimprime o resultado Figura 5 10 Conte do do arquivo Main cc da aplica o Fibonacci Note que o paralelismo da aplica o se deve ao fato de serem instanciados dois objetos da classe distribu da Fibo f1 e f2 Na linha printf d n fibo2 amp f1 amp f2 5 chamada a fun o fibo2 que est implementada no programa principal que distr
65. cess rias para se portar para outras arquiteturas Como facilidades para o programador em rela o a paralelismo impl cito ou expl cito o PVM n o possui nenhuma sendo necess rio que o programador explicite a cria o de tarefas sua comunica o e destrui o sendo poss vel inclusive explicitar em qual processador uma tarefa deve ser iniciada Esse fato dificulta um pouco a adapta o por parte do programador exigindo desse um estudo rigoroso de suas primitivas al m de um bom embasamento na rea de projeto de algoritmos paralelos e distribu dos Por possuir apenas uma biblioteca que disponibiliza m todos que permitem o paralelismo o PVM n o gera c digo para o programador sendo que este tem que se encarregar de dividir suas tarefas em processos e dispar los nos nodos O programador pode se desejar fazer sua pr pria rotina de escalonamento e cham la de dentro da primitiva pvm spawn O PVM n o possibilita a modelagem em um n vel mais alto de abstra o ex necessita se ater a detalhes de paralelismo e comunica o o que torna mais complexo a modelagem de problemas e respectiva defini o de aplica es Quanto a programa o de aplica es o PVM permite que os programas possam ser escritos nas linguagens C C e Fortran sendo uma grande vantagem a reutiliza o de c digo previamente escrito Para a defini o de aplica es o cabe alho da biblioteca que cont m as rotinas de interface do PVM deve es
66. cessamento e caso dois ou mais objetos distribu dos compartilhem o mesmo nodo por um sistema operacional que garanta a multiprograma o RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Capitulo 4 O M490delo DPC 49 Rede de Comunica o gura 4 3 O modelo ddbjetos distribuidos 4 2 2 O objeto distribuido O objeto distribu do a unidade b sica de execu o e corresponde a classe distribu da especificada pelo programador da aplica o Um objeto distribu do tem as mesmas caracter sticas de um objeto definido pelo paradigma de orienta o a objetos TAK9O por m al m dos m todos e do estado interno deve possuir elementos que suportem o envio e o recebimento de mensagens entre os diferentes nodos Uma vez instanciado um objeto distribu do pode estar pronto para recebimento de uma mensagem trabalhando a fim de executar uma tarefa requisitada ou bloqueado aguardando o recebimento de uma resposta a uma requisi o enviada Nesse esquema poss vel distinguir os m todos e o estado interno do objeto como encontrado nos objetos implementados pelas linguagens sequenciais tradicionais consistindo respectivamente nos servi os prestados pelo objeto e no seu conjunto de dados privados A Figura 4 4 esquematiza um objeto distribu do definido pelo modelo cujos elementos principais que comp em a interface de comunica o s o RELAT49049RIO DE PESQUISA Inst49ituto de Inform tica da
67. child 11 if tasks lt 5 12 printf Erro ao inicializar as 5 tarefas n return 0 13 for cont 0 cont lt 5 cont 14 15 pvm initsend PvmDataDefault 16 pvm pkint amp child cont 1 1 17 Pvm send child cont 1 18 pvm_recv 1 1 19 pvm upkint amp temp 1 1 20 pvm kill child cont 22 pvm delhosts hosts 3 h status 23 Figura 6 1 Exemplo de c digo em PVM Na Figura 6 1 tem se um exemplo de programa o em PVM Na linha 5 tem se o nome das m quinas que ser o usadas no processamento Umas das grandes caracter sticas do PVM que estas m quinas nem ao menos precisam ter a mesma arquitetura ou seja pode se misturar m quinas SUN com Linux para executar uma tarefa Na linha 9 tem se um comando para inserir as referidas m quinas no ambiente e na linha 10 iniciam se 5 tarefas de nome test onde seus id s numero para identificar o processo dentro da maquina virtual s o armazenados no vetor child Os comandos do PVM retornam geralmente um inteiro que indica condi o de sucesso ou erro Todo o conte do do ap ndice foi retirado do trabalho N cleos de Comunica o MPI e OpenMP escrito por Elgio Schlmer e est dispon vel em www inf ufrgs br elgio trabs html Nucleo openMP html RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 83 No caso do pvm spawn este retorno apenas o n mero de t
68. dados e possiblitam ao futuro iniciado no ambiente que esse se sinta mais familiarizado com esse Algumas observa es s o muito importantes entre elas que a pessoa que vier a programar no ambiente DPC deve ter uma boa familiaridade com o paradigma de orienta o a objetos e um bom conhecimento da linguagem C Alguns detalhes inerentes ao modelo distribu do adotado por DPC fazem com que muitas vezes tenha se que repensar nos objetos e m todos que vierem a ser implementados Um exemplo t pico disso que o modelo adotado por DPC n o permite a passagem de ponteiros e nem endere os de objetos e ou estruturas de dados o que faz com que muitas vezes tenha se que procurar alternativas para poder superar certas dificuldades RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 6 Ap ndice Esse ap ndice tem a fun o de exemplificar a defini o de aplica es tanto em PVM quanto em MPI 6 1 C digo em PVM O c digo abaixo est escrito em C e faz uso das primitivas dispon veis pela biblioteca PVM mostrando o emprego de tais diretivas 1 include lt pvm3 h gt 2 include lt stdio h gt 3 4 int tasks child 5 cont temp h_status 3 5 static char hosts scliar verissimo dionelio 6 7 void main void 8 9 pvm_addhosts hosts 3 h_status 10 pvm_spawn test char 0 PymTaskDefault char 0 5
69. de comunica o System O mecanismo utilizado pelo ambiente de compila o DPC para a comunica o ente os objetos distribu dos o de sockets com fluxo de mensagens por datagramas UDP Esse RELAT5S9 S9RIO DE PESQUISA Inst59ituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 60 mecanismo n o oferece controle de fluxo controle de erros e n o orientado a conex o ou seja as mensagens podem seguir caminhos diferentes para chegar a um mesmo destino o que pode ocasionar uma ordem de recebimento diferente da ordem de envio No entanto o uso deste mecanismo de comunica o mais simplificado e permite um desempenho melhor do sistema com confiabilidade aceit vel se for empregado em redes locais SAN93 As rotinas de comunica o s o inseridas automaticamente na aplica o pelo ambiente de compila o 4 3 5 2 Pr processador APL O pr processador APL respons vel por tr s fun es b sicas e cria o do diret rio tempor rio de trabalho identificado como dpc lt pid do processo gt e an lise do arquivo descritor da aplica o de acordo com regras l xicas e sint ticas e e cria o do objeto diret rio a partir das classes distribu das especificadas no arquivo descritor Ap s a realiza o destas fun es o pr processador APL dispara a gera o do arquivo principal e dos objetos distribu dos da aplica o A gera o do arquivo princ
70. do da mesma maneira ideal para iniciantes no sistema O emacs possui manuseio semelhante ao mcedit mas possui comandos adicionais o que requer do usu rio um certo grau de conhecimento avan ado para que possa tirar o m ximo proveito desse Como o detalhamento sobre os editores e seus respectivos usos foge do escopo desse trabalho sugere se buscar informa es a respeito dos mesmos Refer ncias sobre a utiliza o dos editores pode ser conseguida a partir da ajuda on line do pr prio Linux bastando para isso digitar man lt nome do editor gt no prompt de comando Caso a ajuda on line n o possua a p gina de informa o desejada deve se rodar o respectivo editor de texto e procurar em seu help as informa es necess rias 3 2 Linguagens Orientadas a Objetos Como a linguagem DPC baseada no paradigma de orienta o a objetos sera feita uma introdu o orienta o objetos a fim de familiarizar o futuro projetista de aplica es DPC 3 2 1 Propriedades das Linguagens Orientadas a Objetos Segundo Meyer MEY88 uma linguagem para ser considera puramente orientada a objetos deve possuir 7 propriedades b sicas e prover estrutura modular ao sistema e descrever objetos como implementa es de tipos de dados abstratos e possuir gerenciamento autom tico de mem ria liberando a rea de mem ria ocupada por objetos n o utilizados sem interfer ncia direta do programador e definir o comportamento de um conjunto d
71. do interno dos objetos os quais s o replicados em todos objetos Em ambientes sem mem ria compartilhada o uso de heran a mais complexo Se por um lado o c digo que implementa uma classe for mantido em uma nica unidade servidora de c digo execut vel ao qual todas inst ncias podem acessar a fim de obter o trecho de c digo que implementa uma tarefa requisitada esse servidor tornar se ia um gargalo do sistema Por outro lado o c digo sendo replicado para cada inst ncia implica em um consumo maior de recursos no caso de mem ria Note se a necessidade de replicar toda a estrutura de heran a uma vez que os objetos instanciados devem tamb m oferecer os RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 3 O Ambiente do DPC 41 servi os dos m todos das defini es hierarquicamente superiores a sua classe no grafo de heran a Esta segunda forma de tratamento de heran a por c pia a frequentemente encontrada em implementa es de linguagens orientadas a objetos distribu das Mas n o raro devido a complexidade esquemas de heran a s o deixados de fora de muitas linguagens distribu das Outras formas de suprir o problema de heran a o esquema de delega o adotado pelo modelo de atores implementado em linguagens de atores e em algumas linguagens baseadas em objetos Nestas linguagens um objeto tem acesso apenas ao c digo que implementa sua classe por m pode conhecer outros obj
72. dos os nodos A versao 2 do MPI j possui um MPI Spawn para disparar processos permitindo disparar processos n o sim tricos em m quinas diferentes Por ser apenas uma biblioteca o MPI n o gera c digo para o programador Trabalha se com bibliotecas incorporando as ao c digo do programa e executando suas primitivas A portabilidade e a efici ncia s o pontos fortes do MPI que pode ser verificado pelas diferentes implementa es mas com a mesma API para o desenvolvimento de aplica es O MPI permite que os programas possam ser escritos nas linguagens C C e Fortran possibilitando reutiliza o de c digo previamente escrito Em rela o facilidade de adapta o por parte do programador exig ncia de conhecimentos espec ficos o MPI necessita um estudo rigoroso de suas primitivas precisa se explicitar a cria o das tarefas suas comunica es e destrui o Esse fato dificulta a modelagem de problemas em um n vel mais alto de abstra o necessitando se ater a detalhes do paralelismo em si RELAT RIO DE PESQUISA Intituto de Inform tica da UFRGS INTRODU O A PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 24 A programa o com o MPI mais simples e mais leg vel que a do PVM O simples fato de no PVM existirem n c digos diferentes de uma mesma aplica o e no MPI haver apenas um j o torna mais atraente MPI tamb m trouxe alguma comunica o impl cita como o MPI REDUCE Neste caso define se uma vari
73. e classes em C t cccceecccccsseecccesccceeescsessesecssssscsssssscsess FG 3 4 Relacionamento com DPC H ecra Bo 4 O Modelo DPC ssa teosicssteseacsssavacdcnicacessoccsceccsonseecvepexestvens 46 41 A Linguagem DEC TE iera e aa i a AO 4 1 1 Directivas DPOF seus nccleet dene asi ias COI a acids decides icaseee des aad das shad pea dicas dia eed s 47 4 1 2 Heran a nas classes distribuidas ccsicaiaisi tiansindensiiaved maa ertiaes sa es Ga 48 4 1 3 Restri es na manipula o de mem ria 00 0 eee eeceeeteeeeeteeceeeeeeteceeseecesaeeeeeeeeneas 48 4 2 O Modelo de Distribui o ccccccsssssnccsceccccssssseeeeceecceeseseees 49 4 2 1 Caracteristicas Gerais do MOCO 33 asuisserasnas dateoesnencastelenscssessdnerstucanneddvenensauiscuaeseas O 42 2 O objeto distribuidores erea g K A ER EAR E AAEE 50 AD OD ICL OTD MAN DOR RD RR O RARAS UR DR ENERE ESS 52 42 4 Objetos Procuradores cots scxsacrecescuenpnstenenemreeswcsecusucsueencnecedscssdedesewindaueenscenctesevmsanasias 52 4 2 5 Objetos CODIDES quinas ipa aero ra tips EU SD 53 4 2 6 lt exec cmd registra cgi gt Toler ncia a falhas no modelo DPC 53 4 3 O compilador DPOC opera 54 4 3 1 Instala o do Ambiente de Compila o is cerecereeereaeeeneeaa 55 4 3 2 Defini o de Aplica es em DPCH ansiosas diodo amend SUS 57 4 3 2 1 Arquivo descritor da aplica o ccceesccccescesseccessecceseeeeseeeeeeeeccaeces
74. e objetos atrav s de classes e organizar classes em estrutura de heran a e permitir aos objetos referenciar a objetos de outras classes podendo as opera es serem diferentes nas diferentes classes atrav s do polimorfismo e liga o din mica e e a heran a deve ser m ltipla possibilitando que uma classe seja definida a partir de v rias classes Apesar de claras as propriedades especificadas por Meyer nem todas as implementa es de linguagens ditas orientadas a objetos possuem todos os requisitos listados acima WY A92 Linguagens que seguem apenas os quatro primeiros itens acima RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 3 O Ambiente do DPC 39 s o ditas como sendo linguagens baseadas em objetos n o possuindo mecanismos de heran a 3 2 2 Sistemas distribu dos vs orientados a objetos O interesse pelo desenvolvimento de linguagens concorrentes baseadas no paradigma de orienta o a objetos teve influ ncia direta da estrutura fortemente modular e de sua adequa o a implementa es distribu das Y AU92 Linguagens concorrentes s o linguagens que possibilitam o desenvolvimento de programas que durante execu o podem concorrer entre si a fim de obterem recursos computacionais ex mem ria processador perif ricos Na programa o orientada a objetos um programa consiste em um grupo de objetos processando de forma cooperativa Cada objeto composto de estado int
75. eadas em objetos importante que a intera o entre ambiente e programador seja amig vel Baseado nisso o desenvolvimento de uma interface gr fica para a visualiza o em tempo de execu o e depura o de programas DPC ser realizado de modo que o usu rio final possa explorar mais plenamente os recursos oferecidos por DPC O desenvolvimento do ambiente de visualiza o e depura o ser realizado pela doutoranda Denise Stringhini como tese de doutorado 4 4 3 Concorr ncia entre M todos de Objetos Distribu dos RELAT61061RIO DE PESQUISA Inst lituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 62 Os objetos distribu dos de DPC s o implementados no momento atrav s de processos UNIX Esses processos possuem apenas uma thread de execu o ou seja n o h concorr ncia entre m todos de um mesmo objeto distribu do Arquiteturas multiprcessadoras permitem que m ltiplas threads sejam executadas simultaneamente O objetivo implementar atrav s do uso de m ltiplas threads concorr ncia entre m todos de um mesmo objeto distribu do Essa pesquisa foi desenvolvida pelo mestrando Rafael Bohrer vila VI99a AVI99b e far parte da nova vers o do compilador DPC 4 4 4 Escalonamento Para distribuir de forma uniforme a carga de processamento entre os n s dispon veis para uma determinada aplica o faz se necess rio que haja alguma pol tica de escaloname
76. ect Arminius Dispon vel por WWW em http www unipaderborn de cs heiss arminius dez 1998 HIP97 HIPPER G TAVANGARIAN D Advanced workstation cluster architectures for parallel computing Journal of Systems Architecture Amsterdam v 44 n 3 4 p 207 226 Dec 1997 HUF89 HUFNAGEL S P BROWNE J C Desempenho Properties of Vertically Partioned Object Oriented Systems IEEE Transaction on Software Enginnering New York v 32 n 4 p 935 946 Aug 1989 HWA93 HWANG K Advanced computer architecture parallelism scalability programmability MacGraw Hill Series in Computer Science McGraw Hill 1993 IEE95 INSTITUTE OF ELECTRICAL AND ELETRONIC ENGINEERS Local and metropolitan area networks supplement media acess control MAC RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 87 parameters physical layer medium attachment units and repeater for 100Mb s operation type 100BASE T clauses 21 30 IEEE 802 3u 1995 New York NY 1995 JAL94 JALOTE P Fault tolerance in distributed systems Englewood Cliffs PTR Prentice Hall 1994 432p KRU94 KRUEGER Phillip SHIVARATRI Niranjan G Adaptative Location Policies for global Scheduling IEEE Transactions on Software Engeneering Vol 20 No 6 Junho 1994 Pp 432 444 LAU97 LAURIA Mario CHIEN Andrew MPI FM high performance MPI on workstation clusters Journal of Parallel and Distributed
77. em ria HW A93 Protocolos para coer ncia de cache em mem ria compartilhada distribu da podem ser desenvolvidos para estes sistemas baseados em NUMA O SCI evita a limita o f sica dos barramentos pelo emprego de liga o unidirecional ponto a ponto Deste modo n o h maiores dificuldades para a escalabilidade As liga es podem ser r pidas e seu desempenho pode aumentar com a utiliza o de tecnologia de ponta Tais liga es podem ser implementadas com linhas de transmiss o paralela ou serial baseadas em diferentes m dias ex fibra tica O SCI especifica uma largura de banda inicial de 1 Gbit s para liga o serial e 1 Gbyte s usando uma canal paralelo ambos sobre curtas dist ncias A constru o b sica de blocos SCI atrav s de pequenos an is Sistemas maiores podem ser obtidos atrav s da cria o de an is de an is interconectados via SCI switches Desta forma al m de permitir a troca de mensagens utilizando um hardware especial o SCI ainda possui a capacidade de implementar via hardware uma mem ria compartilhada distribu da DSM atrav s de opera es de escrita e leitura em regi es de mem ria mapeadas em mem rias remotas Isto se traduz em baixa lat ncia taxa na ordem de poucos microssegundos num ambiente baseado em clusters 1 1 Configura es de Clusters 2 216 64K RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPE
78. erno contendo a mem ria do objeto e de m todos que sobre o estado interno executam as tarefas definidas para o objeto Quando a execu o n o distribu da todos os objetos s o processados num mesmo n de processamento diz se que a comunica o entre objetos se d atrav s de passagem de par metros e retorno de resultados sendo que quando essa distribu da diz se que os objetos se comunicam atrav s da troca de mensagens Uma mensagem para um objeto enviada atrav s de invoca es aos seus m todos os quais definem seu protocolo de acesso Na programa o distribu da um programa consiste em m dulos independentes tanto quanto no que diz respeito a mem ria quanto em fluxo de execu o uma vez que previsto diferentes m dulos de processamento independentes para suprir as necessidades do programa A coopera o entre os m dulos se d atrav s de troca de mensagens por m sobre uma interface n o t o r gida Em ambos modelos de programa o se verifica semelhan as no que se refere a poder de processamento e utiliza o de mem ria e tanto a programa o orientada a objetos como a programa o distribu da prov em acesso restrito a rea de mem ria e em ambos esquemas o fluxo de execu o das diversas partes do programa m dulos ou objetos independente das demais e a intera o entre as partes do programa se d atrav s de troca de mensagens Sendo classificada por BAL89 como linguagem di
79. etos que implementam outros servi os possibilitando desta forma enviar uma requisi o recebida de um servi o que n o possa tratar para um objeto que implemente a tarefa requisitada Em WYA92 s o apresentadas 14 linguagens paralelas e discutido brevemente a implementa o de heran a ou delega o quando existe de cada uma 3 3 Programa o em C C uma linguagem de programa o de uso geral baseada na linguagem de programa o C A linguagem C tamb m permite o uso de classes sobrecarga de operadores sobrecarga de nome de fun o tipos constantes refer ncias operadores de gerenciamento de armazenamento livre verifica o de argumentos de fun o e convers o de tipo Um programa em C consiste em um ou mais arquivos Um arquivo uma por o de texto contendo c digo fonte em C e comandos do pr processador Em outras palavras ele corresponde a um arquivo fonte em um sistema tradicional Um programa deve conter uma fun o chamada main que o inicio planejado do programa Essa fun o n o predefinida pelo compilador n o pode ser sobrecarregada e seu tipo dependente da implementa o recomendado que os dois exemplos a seguir sejam permitidos em qualquer implementa o e que quaisquer argumentos adicionais necess rios sejam acrescentados depois de argv A fun o main pode ser definida como int main ou int main int argc char argv Na forma
80. g Pong resolveu se constituir o programa em quatro arquivos sendo que denominou se respectivamente PingPong apl main cc PingPong dc PingPong h Na edi o desses arquivos utilizou se o editor emacs bastanto digitar na tela de prompt emacs seguido da tecla enter O primeiro arquivo a ser editado no emacs o arquivo PingPong apl que respons vel pelas informa es dos arquivos constituintes da aplica o e das m quinas do ambiente distribu do O conte do do arquivo PingPong apl pode ser visualizado na Figura 5 1 Note que tudo o que vier ap s o s mbolo coment rio do c digo pertencente linha start main cc IInome do arquivo principal da aplica o in verissimo Imaquina onde ir rodar a aplica o with quintana fmaquinas integrantes da aplica o distribu da dclass PingPong nome da classe distribu da at PingPong dc arquivo onde se encontra I definida a classe distribu da Figura 5 1 Conte do do arquivo PingPong apl O segundo arquivo a ser editado o arquivo pingpong h deve se observar que esse um arquivo opcional sendo que sua utilidade basicamente para a defini o de tipos abstratos de dados Como na linguagem DPC n o permitido enviar como par metro endere os de objetos locais pertencentes a um determinado nodo m todos de objetos de outro nodo torna se necess ria a defini o de tipos abstratos de dados para que esses funcionem como o resultado da execu o de m todos
81. gados Quando usar rmdir lembre se que o seu diret rio de trabalho corrente n o pode estar contido no s diret rio s a ser em apagado s Se voc tentar remover seu pr prio diret rio corrente ser exibida a seguinte mensagem de opera o n o permitida Se o diret rio o qual voc deseja remover n o estiver vazio utilize o comando cd para acessar os arquivos dentro do diret rio e ent o remova estes arquivos utilizando o comando rm Algumas op es p Permite aos usu rios remover o diret rio e seu diret rio pai o qual se torna vazio Uma mensagem ser exibida na sa da padr o informando se o caminho path inteiro foi removido ou se parte do caminho persiste por algum motivo r elimina todos os arquivos e subdiret rios da pasta que est sendo deletada este comando semelhante ao deltree do DOS Obs diret rios removidos com o comando rmdir n o podem ser recuperados 3 1 3 Editores de Texto no Sistema Operacional Linux RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 38 Alguns editores de texto normalmente dispon veis no sistema operacional Linux s o vi emacs joe pico mcedit O vi o editor padr o dos sistemas UNIX Seu uso complicado exigindo que o usu rio leia sua documenta o Sua principal vantagem que ele sempre est dispon vel nos sistemas UNIX O mcedit muito parecido com o edit do DOS sendo manusea
82. gerar um arquivo execut vel chamado a out Note que o sistema operacional Linux gera o nome de arquivos execut veis com extens es diferentes dos sistemas operacionais Windows DOS No caso do Linux a extens o do arquivo n o possui outra fun o al m de aumentar a legibilidade cabendo ao programador renome lo caso desejado para qualquer outro nome com qualquer outra extens o Para rodar a aplica o basta digitar Ja out e a aplica o come ar a execu o O s mbolo significa que se deve procurar o execut vel a partir do diret rio atual que nesse caso representado pelo ponto 5 2 Hello World Esse programa tem como objetivo mostrar como o programa cl ssico Hello World pode ser implementado distribuidamente Nesse exemplo o programa ir instanciar um objeto distribu do e ir imprimir na tela o nome da m quina onde esse objeto foi instanciado Fazem parte da aplica o tr s arquivos Hello apl HelloWorld dc main cc Do mesmo modo como foi visto na aplica o exemplo PingPong utilizou se o editor emacs para a edi o dos arquivos Caso o programador tenha familiaridade com o editor ms dos pertencente ao ambiente MS DOS recomenda se utilizar o editor mcedit pertencente ao ambiente Linux O conte do do primeiro arquivo que o arquivo que cont m os dados da aplica o pode ser visto na Figura 5 5 start main cc nome do arquivo onde se encontra o programa principal in verissimo nome da m quina
83. hilipe O A A Fine Grain Concurrency Model for Object Oriented Distributed Applications Artigo submetido ao EUROPAR 99 Toulouse Fran a 1999 VI99c VILA Rafael B NAVAUX Philippe O A Um modelo de paralelismo de gr o fino para objetos distribu dos Porto Alegre PPGC UFRGS 1999 Disserta o de Mestrado BAL89 BAL H E STEINER J G TANENBAUM A S Programming Languages for Distributed Computing Systems Computing Surveys ACM v 21 n 3 p 261 320 New York ACM Sept 1989 BOD95 BODEN N et al Myrinet a gigabit per second local area network IEEE Micro Los Alamitos v 15 n 1 p 29 36 Feb 1995 BAR98 BARRETO Marcos E NAVAUX Philipe O A RIVIERE Michel P DECK a New Model for a Distributed Executive Kemel Integrating Communication and Multithreading for Support of Distributed Object Oriented Application with Fault Tolerance Support In CONGRESSO ARGENTINO DE CIENCIAS DE LA COMPUTACION 4 1998 Neuqu n Argentina Anales Neuqu n Universidad Nacional de Comahue Facultad de Economia y Administraci n Departamento de Informatica y Estadistica 1998 v 2 p 623 637 CAV92 CAVALHEIRO G G Implementa o de Concorr ncia em C Porto Alegre CPGCC da UFRGS 1992 Trabalho Individual CAV93 CAVALHEIRO G G H NAVAUX P O A Um Modelo Distribuido para Linguagens Orientadas a Objetos In SEMIN RIO INTEGRADO DE SOFTWARE E HARDWARE 20 1993 Florian polis Anais Florian polis SBC
84. ibui o trabalho do c lculo da s rie de Fibonacci importante observar que o s mbolo amp na frente dos objetos f1 e f2 significa que se est passando o endere o do objeto ponteiro para a fun o Isso se deve ao fato de se ter instanciados dois objetos da classe Fibo Uma varia o para isso seria a defini o de dois ponteiros para objetos da classe Fibo e ao inv s de se passar como par metro o objeto antecedido do s mbolo amp seriam passados como par metro o pr prio ponteiro RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 73 A fun o fibo2 recebe como argumentos dois ponteiros para objetos da classe Fibo representados pelo s mbolo al m de um n mero inteiro e retorna como valor de resposta um n mero inteiro Na linha que cont m o trecho de c digo return f1 gt calculate n 1 f2 gt calculate n 2 o s mbolo gt usado quando se quer referenciar um m todo de um objeto o qual se faz aceso via ponteiro Ap s a defini o de todos os arquivos da aplica o deve se passar para o passo de compila o bastando para isso digitar de dentro do diret rio onde se encontram os arquivos apl Fibo apl seguido da tecla Enter Para executar a aplica o resultante basta digitar a out 5 4 Classifica o em DPC O objetivo desse exemplo de programa mostrar uma das poss veis modelagens de um programa distribu do a fim de efetuar uma c
85. ile copyfile copyfile ascii text grep Exibe todas as linhas dos arquivos especificados que cont m um certo padr o O comando grep exibe todas as linhas dos arquivos nomeados que s o iguais ao padr o especificado Sintaxe grep padr o lt arquivo 1 gt lt arquivo 2 gt lt arquivo n gt onde padr o uma express o regular e lt arquivo 1 gt at lt arquivo n gt s o os arquivos nos quais a procura ser feita Exemplo grep trabalho trabalho unix grep html mostrar todas as linhas no arquivo trabalho unix grep html que cont m o padr o trabalho Is Serve para listar arquivos e diret rios similar ao comando dir do DOS Sintaxe Is lt diret rio gt op es Quando executado sem qualquer par metro mostra o conte do do diret rio corrente Assim a linha de comando Is mostra o conte do do diret rio corrente naquele momento Como na maioria dos comandos UNIX Is pode ser controlado por op es que come am com um h fen Tenha sempre o cuidado de deixar um espa o antes do h fen Uma op o bastante RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 34 til a que vem do ingl s all tudo e ir mostrar detalhes sobre o seu diret rio Por exemplo cd Is a Digitando estes comandos em seqii ncia o sistema vai para o seu home directory atrav s do comando cd e em seguida mostra o con
86. ipal bastante simples e corresponde a adaptar o arquivo principal da aplica o de forma que ele reconhe a o objeto diret rio e inicie sua execu o imediatamente ap s a cria o do diret rio O pr processador APL tamb m respons vel por disparar a compila o C ap s todos os objetos distribu dos serem criados 4 3 5 3 Pr processador DPC Este m dulo do ambiente de compila o respons vel pela identifica o das classes e m todos que comp em a aplica o Utiliza se de uma lista de classes e uma lista de m todos para manipular estas informa es de forma a gerar como sa da tabelas de m todos para cada classe Estas tabelas servem de entrada para o pr ximo m dulo do ambiente de compila o 4 3 5 4 Pr processador GERAPROC O ltimo m dulo do ambiente respons vel pela gera o dos objetos distribu dos clusters execut veis e dos objetos procuradores RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Capitulo 4 O M6lodelo DPC 61 O n mero de vezes que os pr processadorores DPC e GERAPROC s o executados depende da quantidade de classes distribu das da aplica o pois para cada classe corresponde uma execu o destes pr processadores 4 4 Tend ncias de Desenvolvimento do DPC Esse t pico refere se a tend ncias de modifica es sobre o modelo do DPC Muitas dessas id ias de modifica es foram elaboradas a fim de superar as atuais dificuldades e limita
87. ipo em PVM mas atualmente est sendo migrado para o DECK Ent o RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 2 Bibliotecas e Ferramentas de Comunica o 25 para uma poss vel compara o de desempenho entre PVM MPI e DPC ser v lida deve se especificar qual a biblioteca atualmente usada no DPC Em rela o a facilidades para o programador paralelismo impl cito expl cito ambos pode se dizer que o DPC n o possui paralelismo impl cito pois o programador precisa dividir suas tarefas em objetos Por outro lado se tem uma grande diferen a em rela o ao PVM e MPI a troca de mensagens entre os processos da aplica o de forma impl cita possibilitando uma modelagem em um n vel mais alto de abstra o o programador n o precisa se ater a detalhes da comunica o em si Pode se afirmar que o DPC extrai paralelismo pois a rigor o programador n o est dividindo seu problema em tarefas para serem executadas em outros nodos Ele o est dividindo em objetos da mesma forma que feita em C Objetos que s o criados resolvem algo e retornam suas respostas a que o DPC entra pois e Criar objeto significa instanciar um objeto de uma determinada classe em um nodo X significa enviar uma mensagem para o nodo pedindo que torne ativo o objeto e Executar m todo X do objeto Y significa enviar uma mensagem com os par metros necess rios para o nodo onde o objeto Y se encontr
88. l em hardware dando uma maior versatilidade na programa o RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 1 Introdu o aos Clusters 17 desta configura o A lat ncia da placa SCI equivalente as placas usadas na configura o b sica poucos microssegundos pois tamb m implementa as camadas de rede em hardware A programa o de m quinas clusters pode ser feita com bibliotecas padr o para a programa o paralela como PVM que se encontram dispon veis para o sistema operacional Linux e s o gratuitas sendo que outra possibilidade a programa o utilizando o mecanismo de Sockets DUM95 dispon veis no Linux Ambas trabalham com o modelo de comunica o de troca de mensagens que se adapta bem ao caso da configura o m nima e b sica uma vez que essas possuem mem ria distribu da No caso da configura o avan ada h mais possibilidades de programa o uma vez que al m da mem ria distribu da h a possibilidade de exist ncia de uma mem ria global entre as m quinas 1 2 O Cluster de Alto Desempenho da UFRGS O Grupo de Processamento Paralelo e Distribu do da UFRGS possui como plataforma de execu o para aplica es paralelas um cluster homog neo formado por 4 nodos Cada nodo do cluster um Dual Pentium Pro 2 way SMP com 64M de mem ria RAM e clock de 200Mhz Estes nodos est o interconectados por duas redes de comunica o uma rede Fast Ethernet e outra rede Myrinet
89. lassifica o de n meros inteiros Nesse exemplo ser utilizado o algoritmo de classifica o Bubblesort Apesar desse algoritmo apresentar uma complexidade quadr tica ou seja O n sabendo que os melhores algoritmos de classifica o sequencial s o da ordem de O nlogon apenas se est objetivando um exemplo ilustrativo Nesse exemplo a entrada do programa um arquivo de n meros desordenados denominado de teste Esse arquivo teste deve conter n meros inteiros separados pelo s mbolo de quebra de linha basta pressionar a tecla enter e n o deve conter nenhum s mbolo adicional ap s a edi o do ltimo n mero pois esse s mbolo adicional ser encarado pelo programa como um n mero e provavelmente ocorreria um erro durante a execu o do programa de ordena o A sa da do programa um arquivo chamado saida Esse arquivo possui como conte do os mesmos n meros que se desejava ordenar s que em ordem cresecente de ordena o Nesse exemplo de aplica o o programa principal possui um vetor para a armazenagem dos n meros que se deseja ordenar A classifica o desses n meros efetuada da seguinte forma s o instanciados tr s objetos pertencentes classe DSORT Esses objetos trabalham em conjunto um deles classifica os primeiros n 2 n meros onde n a quantidade total de n meros que se deseja ordenar o segundo classifica a partir dos n 2 1 n meros at o fim do vetor e o terceiro faz a combina o da
90. lgum desses arquivos o ambiente DPC n o ir conseguir encontrar seus execut veis para a realiza o da compila o de programas e O usu rio deve editar o arquivo rhosts em seu diret rio home Nesse arquivo deve ser colocado todos os nomes de m quinas que o usu rio ter acesso Assim sendo as aplica es distribu das s poder o ser projetadas fazendo uso das m quinas definidas nesse arquivo Um exemplo de edi o do arquivo rhosts pode ser visto na Figura 4 10 dion lio lt usrname gt quintana lt usrname gt euclides lt usrname gt ostermann lt usrname gt dionelio m lt usrname gt quintana m lt usrname gt euclides m lt usrname gt ostermann m lt usrname gt Figura 4 10 Exemplo de edi o do arquivo rhosts Ap s a realiza o destes passos o ambiente de compila o estar instalado e pronto para ser utilizado Os arquivos execut veis dos pr processadores do ambiente encontram se no sub diret rio bin abaixo do diret rio definido para o DPC 4 3 2 Defini o de Aplica es em DPC O ambiente de compila o DPC foi desenvolvido com o objetivo de introduzir na aplica o do usu rio as caracter sticas necess rias ao modelo de execu o distribu da Estas caracter sticas s o introduzidas durante o processo de an lise do c digo da aplica o A defini o de aplica es distribu das em DPC bastante simples O ambiente de compila o deve conter com entradas um arquivo descri
91. lica o Fibonacci O segundo arquivo o arquivo que conter a declara o e defini o da classe distribu da fibo dc Nessa declara o consta a declara o do m todo construtor e destrutor da classe Fibo al m da declara o do m todo calculate que recebe como argumento um n mero inteiro e devolve como resposta um n mero inteiro interessante que esse arquivo tenha o mesmo nome da classe distribu da que definida nele para fins de legibilidade seguida da extens o dc O conte do do arquivo Fibo dc pode ser visto na Figura 5 9 O m todo calculate da classe Fibo recebe como um argumento um n mero inteiro n se esse n mero for menor do que dois retorna o valor 1 Caso o argumento passado seja maior ou igual a dois o valor de retorno o resultado da soma das chamadas recursivas da fun o calculate sendo que em uma das chamadas se tem como argumento n 1 e na outra tem se como argumento n 2 RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O A PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 2 dclass Fibo llclasse distribu da Fibo public fm todos p blicos Fibo construtor do objeto da classe Fibo Fibo Ildestrutor do objeto da classe Fibo int calculate int m todo calculate da classe Fibo gt Fibo Fibo void Ilimplementa o do m todo construtor Fibo Fibo void Ilimplementa o do m todo destrutor int Fibo calculate int n limplementa o do m todo
92. mentos para melhorar e fazer do Linux o sistema operacional potente e diversificado que hoje Esse foi o segredo trabalho cooperativo e volunt rio Linus distribuiu seu trabalho sem cobrar nada e em troca exigiu que os outros programadores envolvidos no projeto fizessem o mesmo Por isso o Linux gratuito Por causa da abertura do c digo fonte ao mundo n o existe uma mas muitas distribui es do Linux no mercado Todas tem caracter sticas especiais que as diferenciam entre si Na verdade n o existe o Linux existem os Linux Mas apesar de singulares todas essas vers es s o compat veis porque utilizam o mesmo kernel Essa parte delicada do sistema operacional s atualizada por um grupo restrito de experts em Linux dentre os quais est o pr prio Linus Torvalds Essa parte do sistema t o importante que as novas vers es do kernel s podem ser distribu das depois de passarem pelo aval de Linus As principais vers es dispon veis s o Slackware Linux Debian Linux Open Linux LinuxWare e Red Hat Linux A grande maioria das vers es est licenciada sob a licen a GNU Licen a Geral P blica Isso garante a livre distribui o e utiliza o do software bem como o acesso estudo e utiliza o dos c digos fontes H apenas um encargo quem se utilizar do c digo licenciado sob a GNU precisa distribuir seu trabalho sob essa mesma licen a RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap
93. ne cpa cins chase sentra evarctonaeeses 68 5 2 Helo World ssa Sa 5 3 C lculo de Fibonacci em DPCO canis adro il 72 5 4 Classifica o em DEC need o 74 5 5 Conclus es sie ene RN een Nee en AS 82 Gy A PCT GLICO apa na SS dO 7 Bibliografia ssessessocseoceccccocccccccccecesccesessssssossosssssessessesssssssess D Lista de Figuras Figura 1 1 Atual configura o do cluster de alto desempenho da UFRGS 20 Figura 1 2 Torre do cluster composto por 4 m quinas 21 Figura 3 1 Exemplo de utiliza o do comando CHMOG ssceeecceeseceneeceneeeneeceeeceaeees 31 Figura 3 2 Seq ncia de execu o do comando passwd ii 36 Figura 3 3 Implementa o de uma classe hipot tica CONTA 44 Figura 4 1 Defini o de uma classe distribuida assassina iss aeranantasada age tati aerea Figura 4 2 M todos s ncronos assincronos e assincronos com confirma o 48 Figura 4 3 O modelo de objetos dis DINOS susiseaaasais tes nnaidai ndo la ia aer na faladas ada 50 Figura 4 4 Modelo do objeto Gist DUNG is nin iga aa 51 Figura 4 5 Comunica o entre objetos de diferentes clusters ssiiiiiis 53 Figura 4 6 Cria o de checkpoints GistriDiidOs scsccsscdassivadeesdaseassiavidentaataneantinnmeeianntdaians 54 Figura 4 7 Exemplo de instala o do ambiente DPC H 55 Figura 4 8 Exemplo de edi o do arquivo AOB it ssscissacacssisetasteiapcccauancavinaeis
94. necessidade de troca de informa es entre os processadores para que eles cooperem para o desenvolvimento ou resolu o de um problema Quando se tem todos os processadores em uma nica m quina em geral a comunica o se d atrav s da mem ria principal global a qual compartilhada por todos os processadores Quando se tem os processadores distribu dos em esta es de trabalho h a necessidade de comunica o entre processadores Usualmente cada processador opera sobre um conjunto pr prio de dados armazenados em uma mem ria local Eles se comunicam atrav s de ferramentas e bibliotecas de comunica o Nesse contexto cada processador se constitui um nodo da rede Atualmente diferentes software de comunica o s o usados para permitir comunica o e disponibiliza o de paralelismo atrav s de uma rede As ferramentas podem ser divididas em bibliotecas de comunica o e linguagens paralelas Como exemplos de bibliotecas de comunica o tem se o PVM MPI e Athapascam e como exemplos de linguagens paralelas tem se o DPC Inicialmente esses software foram projetados para sistemas distribu dos com mem ria distribu da A seguir ser feita uma introdu o a respeito das ferramentas PVM MPI e DPC 2 1 PVM Parallel Virtual Machine PVM GEI94 uma biblioteca de comunica o que emula computa o concorrente heterog nea de prop sitos gerais em computadores interconectados de variadas arquiteturas A id ia do PV
95. net ficou isolada da rede externa n o sendo poss vel que trafeguem por ela dados origin rios de fora do cluster A Figura 1 2 apresenta uma foto do cluster de alto desempenho utilizado pelo Grupo de Processamento Paralelo e Distribu do da UFRGS Cluster Verissimo Dionelio Euclides Quintana Comutador gt EN ES Comutador p E Fast Ethernet Amr Myrinet a L Figura 1 2 Torre do cluster composto por 4 maquinas RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 20 1 3 Objetivo e organiza o desse relat rio Este relat rio foi desenvolvido com a finalidade de apresentar m todos de constru o de programas paralelos utilizando se os recursos dispon veis pelo Grupo de Processamento Paralelo e Distribu do da UFRGS No primeiro cap tulo foram apresentadas as caracter sticas e conceitos dos clusters seguida de uma breve descri o dos recursos dispon veis pelo grupo No segundo cap tulo s o descritas tr s ferramentas que se encontram dispon veis no cluster do Grupo de Processamento Paralelo e Distribu do da UFRGS Essas ferramentas PVM MPI DPC possibilitam a constru o de programas paralelos e distribu dos sendo feita uma compara o entre as caracter sticas dessas ferramentas na constru o dos mesmos No cap tulo tr s feita uma introdu o do ambiente necess rio para se executar essas ferramenta
96. nto A fim de buscar um bom desempenho essencial saber qual algoritmo de escalonamento se adequa melhor ao ambiente assim como deve se considerar m todos para computar a carga de trabalho de cada nodo Sendo o Diret rio o objeto respons vel pela cria o de outros objetos distribu dos cabe a ele decidir dentre os v rios nodos pertencentes ao sistema atual aquele que apresenta melhores condi es de execut los considerando sua ociosidade e capacidade de processamento Mesmo que atualmente muitas pesquisas voltam se para modelos distribu dos de escalonameno ou seja aqueles onde todos os nodos participam das decis es de escalonamento WIL93 CHA97 o modelo de escalonamento escolhido para o DPC foi o centralizado tendo em vista as caracter sticas do DPC que gerencia as tarefas de forma centralizada Neste um nico nodo respons vel por todo o escalonamento e todas as decis es s o centralizadas nele O mecanismo de escalonamento ser composto basicamente de dois m dulos objetos espi es e escalonador central A tarefa dos objetos espi es fazer estimativas de carga nos nodos e informar ao escalonador o estado dos mesmos A tarefa do escalonador central basicamente manter uma tabela de nodos com suas estimativas de cargas atualizadas e aguardar requisi es de escalonamento de objetos A Figura 4 15 mostra de forma sucinta o modelo Processo DPC Objetos espi es Objetos distribu dos Cap
97. o RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 28 extremamente grande incluindo at sistemas gerenciadores de bancos de dados SQL e emuladores de terminais remotos O fato de seus programas serem de livre distribui o reduz os custos de implementa o e uso a quase nada 3 1 1 Hist ria do Linux Em agosto de 1991 na Finl ndia um jovem de 21 anos de idade chamado Linus Torvalds iniciou o projeto do Linux O estudante universit rio desejava desenvolver uma vers o do Unix que rodasse em micros PC AT e compat veis mas que fosse diferente dos sistemas Unix j existentes cujo pre o era exorbitante para o usu rio comum Linus chegou a divulgar a id ia num newsgroup de que participava e embalado pelo projeto programou sozinho a primeira vers o do kernel do Linux n cleo do sistema operacional Linus Torvalds se inspirou em Andy Tanembaum criador do Minix outro sistema operacional Unix do qual Linus era usu rio A nova cria o foi batizada com o nome de Linux voc bulo que resultou da fus o de Unix com o primeiro nome de seu criador Linus Depois de finalizar o kernel Linus deu ao seu projeto o rumo que desencadeou seu grande sucesso passou a distribuir o c digo fonte do kernel pela Internet para que outros programadores pudessem aprimorar o sistema Assim v rias empresas e programadores de todo o planeta contribu ram com seus conheci
98. o das mesmas A terceira etapa tem a fun o de transferir os elementos ordenados do vetor para um arquivo denominado ord include lt stdio h gt include dsort dc int main FILE readFile FILE outpFile int j i1 f2 tarray_t vetor DSORT d1 d2 d3 Inicio da Primeira Etapa fprintf stderr Programa de ordenacao n readFile fopen teste rt i1 0 f2 0 fscanf readFile d amp vetor vetor f2 while feof readFile fscanf readFile d amp vetor vetor f2 RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 3 f2 fclose readFile fim da primeira etapa Inicio da Segunda etapa int f1 i2 f1 valf1 i1 f2 i2 vali2 i1 f2 tarray_t vetor1 vetor2 vetor1 d1 classifica vetor i1 f1 vetor2 d2 classifica vetor i2 f2 vetor d3 combina vetor1 vetor2 fim da Segunda etapa inicio da Terceira Etapa outpFile fopen saida wt j 0 do fprintf outpFile d n vetor vetor j while j lt f2 fclose outpFile Fim da Terceira Etapa Figura 5 14 Conte do do arquivo Integersort cc da aplica o Integersort Ap s a defini o de todos os arquivos da aplica o deve se passar para o passo de compila o bastando para isso digitar de dentro do diret rio onde se encontram os arquivos apl Integersort apl seguido da tecla enter
99. o do arquivo PingPong dc O ltimo arquivo constituinte da aplica o o arquivo que cont m o c digo da aplica o principal nesse arquivo que que escrita a aplica o sendo que nessa aplica o em que se deve fazer as chamadas dos m todos dos objetos distribu dos Como ele deve chamar os m todos dos objetos distribu dos obrigat ria a inclus o do s arquivo s que cont m os objetos distribu dos nesse caso o nome do arquivo PingPong dc cont m a classe distribu da PingPong inclu do logo no in cio do programa como pode ser visto na Figura 5 4 include PingPong dc linclui o arquivo PingPong dc int main fimplementagao da fun o principal do programa PingPong p instancia um elemento p da classe PingPong msg tm linstancia um elemento m do tipo msg t p doPingPong m chama o m todo doPingPong com o argumento m printf ok n imprime na tela return 0 retorna o valor 0 Figura 5 4 Conte do do arquivo main cc da aplica o PingPong Ap s a edi o de todos os arquivos todos deve estar dentro de um mesmo diret rio deve se compil los a fim de gerar a aplica o Para isso deve se chamar na linha de RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 69 comando o programa apl do compilador DPC Basta digitar apl pingPong apl seguido da tecla Enter e se o ambiente estiver devidamente configurado o compilador DPC ir
100. o registra se no ambiente e obt m em rank seu identificador Como todos os processos s o criados na linha de comando n o existe uma hierarquia de processos n o existe um processo pai Todos s o numerados de 0 a n 1 sendo n o n mero total de processos que deve ser menor ou igual ao n mero de nodos dispon veis Na Figura 6 2 determina se que o nodo de n mero O ser respons vel para enviar mensagens aos demais O envio e recebimento de mensagens n o muito diferente do PVM apenas nota se a n o necessidade de empacotar se as mensagems mas em contrapartida deve se informar linha 16 par metro MPI CHAR qual o tipo de dado que est se enviando RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O A PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 85 7 Bibliografia AME85 AMERICA P Design Issue in a Parallel Object Oriented Language In M Feilmeier G Joubert and U Schendel editors International Conference in Parallel Computing p 325 330 North Holland 1985 AMZ95 AMZA Cristiana et al TreadMarks Shared Memory Computing on Networks of Workstations ACM Computer 1995 VI99a AVILA Rafael B NAVAUX Philipe O A Um Modelo de Express o Implicita de Concorr ncia Aplicado Programa o Orientada a Objetos In SIMP SIO BRASILEIRO DE LINGUAGENS DE PROGRAMA O 3 1999 Porto Alegre Anais Porto Alegre UFRGS 1999 P 225 229 VI99b VILA Rafael B NAVAUX P
101. o tr s formas distintas de sincronismo e Mensagem assincrona um objeto A envia uma mensagem a um objeto conhecido B e imediatamente prossegue sua execu o n o aguardando a chegada da mensagem ao seu destino nem recebendo qualquer tipo de resposta e Mensagem assincrona com confirma o um objeto A envia uma mensagem a um objeto conhecido B ficando bloqueado aguardando uma mensagem com a confirma o do recebimento da mensagem pelo objeto B antes de prosseguir a execu o O recebimento no caso significa retirar a mensagem da fila de mensagens e Mensagem s ncrona neste tipo de intera o um objeto A envia uma mensagem para um objeto B e fica com sua execu o bloqueada at que o objeto B execute a fun o desejada retornando alguma informa o como resposta Mensagens ass ncronas com confirma o s o enviadas a m todos cujo retorno especificado como confirmation Esse tipo de mensagem causa o envio de resposta com a confirma o da ativa o do m todo M todos cujo retorno especificado seja void isto n o h dado de retorno as mensagens enviadas s o do tipo assincronas Aos m todos com algum tipo de RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 4 O M4Todelo DPC 47 dado de retorno especificado s o enviados mensagens s ncronas As tr s abordagens s o exemplificadas na Figura 4 2 dclass SORT void classifica int vetor ilm todo assincrono confirmation
102. ol Universidade Federal do Rio Grande do Sul User Datagram Protocol EXternal Data Representation Resumo Nos ltimos anos tem se investido na pesquisa de m quinas paralelas baseadas em clusters de multiprocessadores sim tricos SMP por possu rem um custo relativamente mais baixo que as m quinas de arquiteturas maci amente paralelas MPP al m de serem mais flex veis que essas O objetivo desse trabalho documentar e validar o uso das m quinas clusters em especial o cluster de alto desempenho da UFRGS e o ambiente de programa o DPC A documenta o inclui caracter sticas do cluster da UFRGS sendo dado uma nfase especial s ferramentas dispon veis para programa o de aplica es de alto desempenho PVM MPI e DPC A ferramenta DPC foi desenvolvida pelo Grupo de Processamento Paralelo e Distribu do e deriva do C Ela orientada a objetos e de f cil adapta o por parte do programador Tamb m foram desenvolvidas aplica es visando a valida o e a exemplifica o do uso desse ambiente Palavras Chave Processamento de Alto Desempenho Processamento Paralelo Processamento Distribu do Cluster de Alto Desempenho DPC Abstract In the last years one has invested in the research of parallel machines based on clusters of symmetrical multiprocessors SMP for possessing a cost relatively lower than the machines of architectures massive parallel MPP besides being more flexible than these The objective
103. onvers o de dados para que uma instru o possa processar em diferentes processadores Apresentam problemas ligados convers o de dados entre diferentes sistemas operacionais e ou arquiteturas Al m dessas classes de arquiteturas cluster pode se distinguir dois tipos de classifica o quanto aos nodos que fazem parte do cluster e Arquitetura sim trica possuem todos os nodos homog neos sendo que todos os nodos possuem a mesma velocidade e capacidade de processamento al m de possu rem a mesma quantidade de recursos computacionais ex mem ria Somente clusters com esse tipo de arquitetura possibilitam uma verdadeira an lise de desempenho e Arquiteturas assim tricas possuem nodos diferentes Podem possuir nodos homog neos mas com diferentes velocidades e capacidades de processamento ou nodos homog neos com diferentes recursos de computa o ex mem ria Arquiteturas dessa classe dificultam poss veis an lises de desempenho RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 1 Introdu o aos Clusters 13 Al m dessas vantagens a disponibilidade comercial de redes r pidas tem encorajado muitos experimentos no uso de clusters de SMPs a fim de se obter m quinas de alto desempenho com uma boa rela o de custo desempenho Essas redes de interconex o oferecem tempo de lat ncia e largura de banda compar veis com as redes de interconex o propriet rias que s o encontradas nas MPPs A seg
104. orretamente criados A Figura 4 6 ilustra a cria o de pontos de recupera o quando da troca bem sucedida de uma mensagem entre dois objetosdistribu dos bem como as mensagens de confirma o definidas pelo protocolo estabelecido RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 4 O M53odelo DPC 53 PR o meg ol FR Figura 4 6 Cria o de checkpoints distribuidos O objeto ol envia uma mensagem ao objeto 02 e cria seu ponto de recupera o Ao receber a mensagem 02 cria o seu checkpoint e envia uma mensagem de confirma o Ao receber esta ltima 01 envia nova confirma o determinando o estabelecimento de um estado consistente entre os dois objetos visto que a mensagem original foi bem recebida e os pontos de recupera o corretamente criados O protocolo que rege esse mecanismo garante que na ocorr ncia de uma situa o de falha em um dos objetos seja poss ve restaurar o sistema a um estado global consistente Esta caracter stica adv m de uma s rie de particularidades das aplica es DPC E importante salientar que esse mecanismo totalmente transparente ao programador bastando que seja usada a vers o do compilador que inclui essa funcionalidade 4 3 O compilador DPC O compilador DPC tem a tarefa de introduzir no programa a ele submetido as fun es do modelo de distribui o O compilador gera como sa das programas C que devem ser submetidos a um compilador C
105. otalmente implementadas pelo ambiente DPC Os clusters de distribui o correspondem a um pequeno programa C contendo a descri o de uma classe de objeto distribu do e diversas classes de objetos cuja a instancia o local a este cluster da mesma forma que definido pelo programador no arquivo de cluster sendo apenas inclu da uma por o de c digo referente ao elemento de Delega o definido pelo modelo Quando em execu o apenas um objeto distribu do encontra se ativo em um cluster 4 3 1 Instala o do Ambiente de Compila o Antes da instala o do ambiente de compila o DPC deve se verificar se sistema operacional em uso no cluster o Linux e se o usu rio j possui uma conta no mesmo Ap s a verifica o desses pr requisitos a instala o do ambiente de compila o DPC deve seguir alguns passos b sicos descritos abaixo e O usu rio deve extrair o pacote de distribui o no formato tar gz diretamente no local desejado para a instala o Um exemplo desse procedimento pode ser visto na Figura 4 7 cd usr local tar xvzf dpc 1 1 0 tar gz cd dpc Figura 4 7 Exemplo de instala o do ambiente DPC Nesse procedimento hipot tico o usu rio primeiramente mudou de diret rio usr local Em seguida executou o comando tar para descompactar o pacote de distribui o E por fim mudou para o subdiret rio rec m criado dpc e O usu rio deve executar make e depois make install
106. pl da aplica o Fibonacci 72 Figura 5 9 Conte do do arquivo Fibo dc da aplica o Fibonacci 13 Figura 5 10 Conte do do arquivo Main cc da aplica o Fibonacci 73 Figura 5 11 Conte do do arquivo integersort apl da aplica o Integersort 75 Figura 5 12 Conte do do arquivo tipos h da aplica o Integersort i 76 Figura 5 13 Conte do do arquivo dsort dc da aplica o Integersort 78 Figura 5 14 Conte do do arquivo Integersort cc da aplica o Integersort 79 Figura 5 15 Compila o da aplica o Integersort em DPC cee eeeeeeecsneeeeeeeereeenees 79 Figura 5 16 Executavel da aplica o compilada ecceesceeseeeseeesseceteeceneeceaeensaeeneeenes 80 Figura 5 17 Gera o autom tica de um arquivo desordenado cccceesceeeeseeeeeeeeeneees 80 Figura 5 18 Execu o do gerador de sequencia de n meros desordenados gerafile 80 Figura 5 19 Visualiza o de um arquivo desordenado no editor emacs 81 Figura 5 20 Comando para a execu o da aplica o Integersort ee eeeeeeseeeeeeereeenees 81 Figura 5 21 Visualiza o do arquivo saida gerado pela aplica o Integersort 82 Figura 6 1 Exemplo de c digo em PVM iiss sscsssssscansssicvasssncansacecsasssccaasenivassersaasananseisseraieaie 83 Figur
107. plex ponto a ponto que conectam hosts e switches Os switches com m ltiplas portas podem ser conectados por liga es para outros switches e para outros hosts em topologias variadas A Myrinet uma tecnologia de chaveamento e comunica o de pacotes de alto desempenho ela permite uma lat ncia de cerca de 5 microssegundos e um custo relativamente baixo que est sendo amplamente utilizada para interconectar m quinas baseadas em clusters e SCI Scalable Coherent Interface SCI um padr o recente que especifica um hardware e protocolo para conex o de at 64K n s em uma rede de alta velocidade com caracter sticas de comunica o de alto desempenho EIC95 GEI94a O SCI define servi os de barramento oferecendo solu es distribu das para a sua realiza o O mais not vel destes servi os um espa o de endere amento f sico de 64 bits entre os n s SCI que permite opera es de escrita leitura e a cria o de reas de mem ria compartilhada entre os n s Dos 64 bits de endere amento para a DSM Distributed Shared Memory 16 bits s o utilizados para endere ar os 64 n s poss veis e os restantes 48 bits para endere amento em cada nodo A placa SCI permite construir m quinas com caracter sticas NUMA Non Uniform Memory Access uma vez que estas placas permitem acessos mem ria remota DSM realizados pelo hardware mas que s o mais lentos que os acessos locais o que caracteriza acessos n o uniformes m
108. pons vel pelas informa es dos arquivos constituintes da aplica o e das m quinas do ambiente distribu do O conte do do arquivo integersort apl pode ser visualizado na Figura 5 11 Note que tudo o que vier ap s o s mbolo coment rio do c digo pertencente linha n o deve ser inclu do no arquivo pois o compilador ir acusar um erro em tempo de compila o start integersort cc Inome do arquivo principal da aplica o in verissimo fmaquina onde ir rodar a aplica o principal with verissimo quintana dionelio m quinas integrantes do ambiente lldistribu do dclass DSORT Inome da classe distribu da at dsort dc Ilarquivo onde se encontra a classe distribu da Figura 5 11 Conte do do arquivo integersort apl da aplica o Integersort O segundo arquivo editado o arquivo tipos h Esse arquivo tem a finalidade de definir alguns tipos abstratos de dados que s o usados pelo programa A linha inicial desse arquivo para o caso de que existem dois arquivos dsort dc e integersort cc que possu m o tipos h em seu cabe alho Como esses arquivos incluem o mesmo arquivo tipos h as linhas iniciais t m a finalidade de garantir que o compilador n o redefina os tipos uma segunda vez o que geraria um erro de compila o A estrutura que definida nesse arquivo a estrutura tarray que composta por uma vari vel vetor e uma vari vel cont A vari vel vetor um array de inteiros cujo comprimento
109. quiteturas compostas por um conjunto de processadores iguais que se comunicam geralmente atrav s de uma mesma mem ria O termo sim trico significa que todos os processadores s o id nticos em termos de arquitetura interna e poder de processamento Exemplos dessa arquitetura s o os processadores Dual Pentium e Redes de esta es NOW s o arquiteturas que correspondem a um conjunto de esta es de trabalho interligadas atrav s de uma rede local LAN e que servem como plataforma de execu o de aplica es distribu das Nesse tipo de arquitetura a comunica o feita por troca de mensagens entre as diversas aplica es que executam na rede Esse tipo de arquitetura largamente utilizado tanto comercialmente como academicamente Como exemplo podemos citar Esta es Sun interligadas por rede Ethernet RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 12 Nesse contexto um cluster pode ser caracterizado como uma plataforma alternativa aliando o poder e a velocidade de processamento das arquiteturas dedicadas MPPs com a disponibilidade de recursos hardware e software baratos das redes de esta es cada vez mais comum o uso de clusters compostos por multiprocessadores sim tricos como por exemplo PCs com processadores Dual Pentium PRO ou Pentium II como o caso do cluster existente na UFRGS Quando comparados com arquiteturas dedicadas o
110. r F PULC ParaStation user level comunication design and overview In IPPS SPDP 98 WORKSHOPS 10 1998 Proceedings Springer 1998 P 498 509 Lecture Notes in Computer Scinece v 1388 WIL93 WILLEBEEK LEMAIR Marc H REEVES Anthony P Strategies for Dynamic Load Balancing on Highly Parallel Computers IEEE Transactions on Parallel and Distributed Systems Vol 4 No 9 Set 93 Pp 979 992 WYA92 WYATT B B KAVI K HUFNAGEL S The Essence of Objects Concepts and Terms IEEE Software v 9 n 6 p 56 66 Nov New York IEEE 1992 YAU92 YAU S S JIA X BAE D H Software Design Methods for Distributed Computing Systems Computer Communications v 15 n 4 p 213 224 May London 1992 RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS
111. r emacs RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O A PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO es Tools Edit Search Mule MAREEN Eina ll Figura 5 z 19 9 Visualiza o EEE um arquivo desordenado 1 no editor emacs Para executar a aplica o resultante basta digitar a out O programa ir procurar no diret rio corrente do arquivo execut vel por um arquivo chamado teste que o nome do arquivo que se deseja ordenar Caso o programa for executado sem o arquivo teste ocorrer uma exce o de execu o O comando para executar a aplica o Integersort pode ser visto na Figura 5 20 root casa dclassif a out Figura 5 20 Comando para a execu o da aplica o Integersort O conte do do arquivo ordenado s o os n meros inicialmente desordenados no arquivo teste s que agora ordenados em ordem crescente Um peda o do arquivo gerado pelo programa Integersort pode ser visto na Figura 5 21 Note que essa figura a visualiza o do arquivo utilizando o editor emacs RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 81 Fundamental Li To Figura 5 21 Visualiza o do arquivo saida gerado pela aplica o Integersort 5 5 Conclus es Nesse cap tulo foram mostrados programas escritos na linguagem DPC a fim de exemplificar os conceitos discutidos no cap tulo 4 Os exemplos apresentados foram vali
112. rama o em C essencial uma vez que DPC uma extens o do C sendo que a grande maioria dos comandos em C s o id nticos em DPC Algumas poucas modifica es foram feitas em DPC a fim de tornar poss vel a introdu o do paralelismo e distribui o sendo que essas mudan as est o relacionadas com restri es mem ria e passagem de dados Maiores informa es a respeito das diretivas comandos do DPC e restri es quanto ao C ser o abordadas nos pr ximos cap tulos RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Capitulo 4 O M45odelo DPC 45 4 O Modelo DPC DPC Distributed Processing in C uma linguagem orientada a objetos para a programa o de sistemas distribu dos em redes locais de esta es de trabalho O objetivo de DPC unir as facilidades da programa o orientada a objetos com os benef cios do processamento distribu do oferecendo uma linguagem para o projeto de sistemas distribu dos DPC implementada utilizando como base a linguagem C ELL90 sendo introduzidas uma quantidade m nima de altera es utilizada a mesma defini o de sistema distribu do apresentada por BAL89 consistindo de um conjunto de processadores aut nomos sem compartilhamento de mem ria cooperando entre si atrav s de uma rede de comunica o O modelo que insere caracter sticas de distribui o em DPC apresentado em CAV92 CAV93a permite que objetos instanci
113. relativamente mais baixo que as m quinas de arquitetura maci amente paralelas al m de serem mais flex veis que essas Um cluster uma m quina de alto desempenho que possui uma arquitetura baseada na reuni o de um conjunto de esta es de trabalhos independentes interconectadas por uma rede de comunica o r pida formando uma plataforma de execu o de aplica es paralelas de alto desempenho A motiva o pelo uso dessa arquitetura adv m de diversos fatores entre os quais o estado atual de desenvolvimento dos microprocessadores permitindo a cria o de processadores cada vez mais velozes com um custo relativamente baixo e a exist ncia de redes de comunica o de dados de alto desempenho compar veis s redes propriet rias utilizadas em arquiteturas espec ficas Outro fator a disponibilidade de uma m quina desse tipo pelo grupo de Processamento Paralelo e Distribu do da UFRGS Atualmente existem diferentes tipos de arquiteturas dedicadas execu o de aplica es paralelas sendo que essas podem ser classificadas em tr s tipos e Arquiteturas maci amente paralelas MPP s o arquiteturas que possuem processadores altamente poderosos e links de comunica o dedicados Este tipo de arquitetura chamada de supercomputadores ou arquiteturas dedicadas apresentam um alto custo devido aos recursos que oferecem Como exemplo pode se citar o Intel Paragon e o IBM SP2 e Multiprocessadores sim tricos SMP s o ar
114. respons veis por esse fato Por causa disso alguns melhoramentos est o sendo desenvolvidos para melhor adaptar essas camadas de comunica o para esse novo hardware MPI FM LAU97 PULC WAR98 BIP PRY98 Esses trabalhos t m por objetivo evitar o protocolo TCP IP e interagir diretamente com a interface da rede fornecendo melhores taxas de tempos de lat ncia e largura de banda RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 3 O Ambiente do DPC 27 3 T picos Relacionados ao Ambiente DPC Nesse cap tulo ser tratado sobre v rios t picos relacionados com o ambiente Distributed Processing in C DPC Ser feita um introdu o ao sistema operacional Linux que atualmente o sistema operacional na qual a atual vers o do DPC executada Tamb m ser feita um introdu o linguagem C pois a linguagem DPC derivada do C e tamb m ser o mostradas as caracter sticas de linguagens baseadas no paradigma de orienta o a objetos uma vez que a linguagem DPC foi desenvolvida sob esse paradigma 3 1 O sistema operacional Linux O Linux um sistema operacional UNIX multitarefa multiusu rio e multiprocessado desenvolvido h poucos anos gra as aos esfor os coletivos da comunidade tecnol gica e em especial de seu idealizador Linus Torvalds O Linux foi primeiramente desenvolvido para PCs baseados em 386 486 Pentium mas atualmente tamb m roda em computadores Alpha da Compaq
115. ribuicao at dist dc Figura 4 11 Arquivo descritor lt arquivo gt apl Os pr ximos par metros especificam as classes distribu das O par metro dclass distributed class especifica o nome de uma classe distribu da que se encontra no arquivo especificado pelo par metro at 4 3 2 2 Arquivos de classes distribu das Os arquivos de classes distribu das lt arquivo gt dc t m o mesmo formato dos arquivos de classes utilizados em C A nica diferen a que as classes distribu das devem ser definidas utilizando se a palavra reservada dclass conforme exemplificado na Figura 4 12 Dados e m todos assim como heran a encapsulamento e chamadas a m todos s o especificados normalmente como em C dclass Calculo RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 4 O MSTodelo DPC 57 int i float f Calculo Calculo Monta_Area int x Figura 4 12 Defini o de Classes Distribu das Cada classe distribu da deve ser especificada em um arquivo pr prio e o nome da classe juntamente com seu arquivo correspondente devem constar no arquivo descritor da aplica o conforme j citado Existe uma restri o na atual vers o do ambiente de compila o DPC que obriga que a defini o da classe e dos m todos desta classe estejam em um mesmo arquivo Desta forma qualquer outro arquivo que deva ser usado por um classe distribu da deve conter apenas defini es de tipo
116. s dando se nfase ferramenta DPC Nesse cap tulo feita uma introdu o ao sistema operacional Linux s linguagens orientadas a objetos e linguagem C Esses assuntos s o abordados por estarem diretamente ligados ao modelo DPC No quarto cap tulo feita uma abordagem do ambiente de compila o DPC como uma ferramenta que possibilita a constru o de programas paralelos que podem ser executados no cluster da UFRGS Nesse cap tulo discutido o modelo de distribui o adotado pelo DPC uma apresenta o da linguagem DPC que inclui diretivas comandos do DPC e restri es quanto ao C Tamb m feita uma descri o do ambiente de compila o m dulos constituintes instala o do DPC configura o do ambiente e como definir aplica es utilizando se o DPC No quinto cap tulo s o apresentados alguns programas escritos em DPC a fim de exemplificar ao iniciando no ambiente como s o definidos os programas na pr tica RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 2 Bibliotecas e Ferramentas de Comunica o 21 2 Ferramentas de Programa o em Clusters Um ambiente de programa o de alto desempenho constitu do de v rios processadores Esses processadores podem estar em uma nica m quina ou distribu dos em v rias m quinas O processamento nessas m quinas s o ditos paralelo e distribu do respectivamente Em ambos os tipos de processamento h a
117. s o configurados para os identificadores de propriet rio e de grupo do usu rio efetivo respectivamente Algumas op es interessantes do comando mkdir m essa op o mode permite aos usu rios especificar o modo a ser usado para os novos diret rios p com essa op o mkdir cria o nome do diret rio atrav s da cria o de todos os diret rios pai n o existentes primeiro Exemplo mkdir p diret rio 1 diret rio 2 diret rio 3 cria a estrutura de subdiret rios diret rio 1 diret rio 2 diret rio 3 more Exibe o conte do de arquivos nomeados fazendo pausas a cada tela cheia Ao teclar se Enter more ir exibir uma linha a mais ele exibe outra tela cheia ao teclar se o caracter espa o O caracter b faz com que more exiba a tela anterior O caracter q quit provoca a parada de execu o do comando more Sintaxe more lt arquivo 1 gt lt arquivo 2 gt lt arquivo n gt onde lt arquivo 1 gt at lt arquivo n gt s o os arquivos a serem exibidos Pode se procurar por uma palavra ou uma cadeia de caracteres em um arquivo Para isso pressione o caracter digite a palavra ou a cadeia de caracteres e tecle Enter mv Move arquivos para um outro arquivo ou diret rio Este comando faz o equivalente a uma c pia seguida pela dele o do arquivo original Pode ser usado para renomear arquivos RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM C
118. s clusters de multiprocessadores sim tricos apresentam um grande n mero de vantagens Eles s o relativamente baratos seus custos s o menores que o custo de um supercomputador paralelo eles oferecem uma boa rela o custo desempenho porque todo o hardware e o software necess rios est o disposi o e da mesma forma suas volumosas vendas atraem investimentos diretos para o seu r pido melhoramento Eles tamb m permitem um desenvolvimento progressivo de aplica es come ando com apenas um processador passando para multiprocessadores e finalmente usando um conjunto de esta es de trabalho multiprocessadoras interconectadas por alguma rede de comunica o de dados local Pode se caracterizar basicamente duas classes de arquiteturas baseadas em clusters e Arquiteturas homog neas onde os nodos que comp em o cluster possuem a mesma arquitetura e sistema operacional logo entendem as mesmas instru es sem a necessidade de convers o de dados a fim de possibilitar o processamento dos mesmos em diferentes processadores As arquiteturas homog neas est o se tornando um padr o na rea de clusters de alto desempenho por serem mais simples de operar e por n o apresentarem problemas ligados convers o de dados entre diferentes sistemas operacionais e ou arquiteturas e Arquiteturas heterog neas onde os nodos que formam o cluster possuem processadores diferentes e possivelmente diferentes sistemas operacionais Exigem a c
119. s da emula o de uma conex o ponto a ponto entre todas as m quinas feito um chamamento em hardware ligando os n s da rede a cada comunica o Placas convencionais de interconex o Fast Ethernet possuem uma vaz o nominal de 100 Mb s O fato de ser uma placa convencional implica na implementa o das camadas de rede em software o que compromete a lat ncia de forma significativa Nas outras tecnologias de interconex o essas camadas s o implementadas em hardware o que melhora a lat ncia da comunica o e ParaStation A interface de programa o apresentada pela ParaStation consiste de uma emula o de sockets UNIX e de ambientes amplamente utilizados para programa o paralela como PVM GEI94a Isto permite portar uma grande quantidade de aplica es paralelas e cliente servidor para a ParaStation Algumas implementa es inicias da ParaStation RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 14 atingiram uma lat ncia em torno de 2 microssegundos e uma largura de banda de 15 Mbyte s por canal de comunica o Uma rede ParaStation utiliza uma topologia baseada em uma malha toroidal de duas dimens es mas para sistemas pequenos uma topologia em anel suficiente O objetivo da ParaStation prover uma padronizada e eficiente interface de programa o no topo da rede A rede dedicada a aplica es paralelas e n o pretende substituir L
120. s duas metades classificadas obtendo se como resultado um vetor completamente classificado Uma observa o importante que nesse exemplo s o utilizados apenas 2 objetos para se realizar a classifica o propriamente dita Isso se deve apenas ao car ter dit tico desse material podendo o programador instanciar quantos objetos desejar Cabe ressaltar que esse exemplo foi pensado exclusivamente para dois objetos al m de que para uma quantidade muito pequena de n meros a solu o sequencial mais eficiente do que a solu o distribu da Esse fato se deve ao tempo de cria o dos objetos no ambiente distribu do sendo seu uso justificado para quantias grandes de dados RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 1 Para a implementa o desse programa preceisa se editar 4 arquivos sendo eles integersort apl tipos h dsort dc e integersort cc Como j foi visto nos exemplos anteriores pode se usar qualquer programa de edi o de arquivos vi pico emacs mcedit Um exemplo da edi o desses arquivos no editor emacs seria digitar na tela de prompt emacs seguido da tecla enter Os comandos do editor e seu modo de opera o n o ser o tratados nesse trabalho Sob determinado ponto de vista normalmente os iniciandos no ambiente Linux preferem utilizar o mcedit ou emacs O primeiro arquivo editado o arquivo integersort apl que res
121. s e vari veis necess rias execu o dos m todos da classe 4 3 2 3 Arquivo principal da aplica o Como citado anteriormente a introdu o da distribui o na aplica o feita automaticamente e de forma transparente ao programador pelo ambiente de compila o Desta forma o arquivo principal da aplica o deve ser definido da mesma forma como definido em aplica es sequenciais O que o ambiente de compila o adiciona a este arquivo uma chamada para executar o objeto Diret rio j que a partir deste objetos que os demais objetos s o criados 4 3 3 Compilando e Executando Aplica es Uma vez definidas as classes distribu das da aplica o cada uma em seu respectivo arquivo bem como o arquivo principal da aplica o e o arquivo descritor a compila o da aplica o realizada chamando se o primeiro pr processador do ambiente APL tendo como par metro o arquivo descritor da aplica o O pr processador APL executa sobre a aplica o disparando os demais pr processadores Uma vez executados estes pr processadores e criados os objetos distribu dos o pr processador APL dispara a compila o C OoOd OoOd Classes Locais OoOoOd OoOd DO 9 0 OOd Arquivos de Clusters uig CO 90 Descritor Compilado r Diret rio CIC Clusters CIC LILI de CIT soe sad DE PESQUISA Jnst5 DI DJ Inicializa o DI E Inicializa o Compilado
122. stribu da sem compartilhamento de mem ria muitas implementa es baseadas em ou orientadas a objetos suportam mensagens sincronas assincronas e ou ainda estruturas do tipo RPC Em execu o objetos encapsulam dados sendo a comunica o efetuada por envio de requisi es de servi os entre objetos Desta forma poss vel um mapeamento praticamente direto do paradigma de orienta o a objetos ao modelo de execu o distribu da Uma analogia entre ambiente distribu do e orientado a objetos apresentado na Tabela 3 1 Tabela 3 1 Analogia entre orienta o a objetos e processamento distribu do RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 40 Orienta o a Objetos Processamento Distribu do Objeto Processo M todos Servi os prestados Estado interno Mem ria interna Requisi es a m todos Mensagens entre processos Ver um objeto como um processo n o fere o paradigma de orienta o a objetos TAK 88 Esta id ia permite que este execute de forma independente aos demais objetos conservando seu pr prio fluxo de execu o e sua pr pria rea de dados A rea de mem ria interna aos m dulos de sistemas distribu dos tem como correspondente o estado interno dos objetos ambos n o permitindo acesso externo Os m todos implementam uma interface aos servi os prestados pelo objeto Muitas vezes m todos s o implemen
123. swd Changing password for nome do usu rio Old password New password Retype new password Figura 3 2 Sequ ncia de execu o do comando passwd Quando o sistema pedir Old Password digite sua senha atual Se nenhuma senha estiver associada a sua conta o sistema ir omitir este prompt Note que o sistema n o mostra a senha que voc digita na tela Isto previne que outros usu rios descubram sua senha Quando o sistema pedir New Password digite sua nova senha O ltimo prompt Retype new password pede que voc digite a nova senha novamente Se voc n o digitar a senha da mesma maneira em que digitou da primeira vez o sistema se recusa a modificar a senha e exibe a mensagem Sorry pwd Esse comando utilizado para exibir o seu diret rio corrente no sistema de arquivos rm Este comando utilizado para apagar arquivos E importante lembrar que quando os arquivos s o apagados no sistema Unix imposs vel recuper los Sintaxe rm lt arquivo 1 gt lt arquivo 2 gt lt arquivo n gt onde lt arquivo 1 gt at lt arquivo n gt s o os arquivos a serem apagados RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 3 O Ambiente do DPC 37 rmdir Se um arquivo n o possuir permiss o de escrita e a sa da padr o for um terminal todo o conjunto de permiss es do arquivo ser exibido seguido por um ponto de interroga o um pedido de confirma o Se a resposta
124. tados de modo a possibilitar concorr ncia interna ao objeto em outras apenas um m todo est ativo em um determinado instante de tempo Em ambientes distribu dos os servi os prestados s o acionados por chamadas do tipo RPC ou por sele o atrav s do conte do de mensagens recebidas s ncrona ou assincronamente As requisi es aos m todos ou seja invoca es a objetos requisitando servi os pode ser comparada com o envio de mensagens entre processos ou chamadas RPC 3 2 3 Heran a em ambientes distribu dos A heran a o mecanismo utilizado para realizar implementa es de objetos de forma incremental baseando a implementa o de um objeto na implementa o de outro SNY93 O efeito do uso da heran a em linguagens orientadas a objetos c pia com possibilidade de edi o de uma defini o de objeto classe produzindo uma nova defini o de objeto Esta edi o permite realizar altera es na classe original introduzindo novas caracter sticas espec ficas a nova classe Tanto em ambientes centralizados como distribu dos o uso da heran a realizada da mesma forma O que varia o seu tratamento no momento da execu o do programa Em ambientes sequenciais encontra se normalmente uma c pia de classe cujo c digo compartilhado por todas suas inst ncias sem nus algum para o processamento uma vez que apenas um objeto encontra se ativo a cada vez A exce o feita aos atributos representando o esta
125. tar incluso na aplica o Verifica se que iniciar processos dinamicamente ou seja de dentro de outro processo gera um overhead muito grande al m de confundir um pouco a l gica de programa o As trocas de dados s o feitas por trocas de mensagens sendo que a comunica o entre nodos no PVM realizada pelos processos do daemon que s o respons veis por receberem as mensagens e entreg las para as tarefas locais Um exemplo de c digo em PVM pode ser visto no ap ndice deste trabalho As vers es mais novas do PVM suportam threads que permite explorar m quinas com mais de um processador RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 2 Bibliotecas e Ferramentas de Comunica o 23 2 2 MPI Message Passing Interface MPI MPI94 normalmente referida como MPI standard padr o um esfor o para melhorar a disponibilidade de efici ncia e portabilidade do software por garantir as necessidades de aplica es paralelas e distribu das O MPI standard define um padr o de troca de mensagens onde cada fabricante livre para implementar as rotinas j com sintaxe definida utilizando caracter sticas exclusivas de sua arquitetura Atualmente existem muitas implementa es de MPI como por exemplo MPICH GRO96 LAM OHI96 de diferentes institui es e fabricantes Todas as implementa es mant m a mesma API para o usu rio contudo elas apresentam algumas diferen as nas op es de utiliza o
126. taxe chown fhR lt propriet rio gt lt nome do arquivo gt O argumento lt propriet rio gt especifica o novo propriet rio do arquivo Este argumento deve ser ou um n mero decimal especificando o userid n mero de identifica o do usu rio ou um login name encontrado no arquivo etc passwd Somente o propriet rio do arquivo ou o root super usu rio podem modificar o propriet rio deste arquivo Algumas op es f Esta op o n o reporta erros h se o arquivo for um link simb lico esta op o modifica o propriet rio do link simb lico Sem esta op o o propriet rio do arquivo referenciado pelo link simb lico modificado R Essa op o recursiva chown percorre o diret rio e os subdiret rios modificando as propriedades medida em que prossegue Copia arquivos para um outro arquivo ou diret rio Sintaxe cp lt arquivol gt lt arquivo2 gt lt arquivo n gt lt destino gt onde lt arquivol gt at lt arquivo n gt s o os arquivos a serem copiados e lt destino gt o arquivo ou o diret rio para onde os arquivos ser o copiados O s arquivo s fonte s e o lt destino gt n o podem ter o mesmo nome Se o arquivo destino n o existe cp criar um arquivo com o nome especificado em lt destino gt Se o arquivo destino j existia antes e n o for um diret rio cp escrever o novo conte do por cima do antigo Exemplo cp r temp templ Este comando copia todos os arquivos e su
127. te do do mesmo que ser exibido da seguinte forma bacshre fvwmrc emacs xinitre bash history exrc Aqui o ponto simples refere se ao diret rio corrente e o ponto duplo refere se ao diret rio imediatamente acima dele Os arquivos que come am com um ponto s o chamados arquivos escondidos A coloca o do ponto na frente de seus nomes os impede de serem mostrados durante um comando Is normal Outra op o bastante utilizada l long Ela mostra informa o extra sobre os arquivos Assim o comando Is 1 mostra al m do conte do do diret rio todas os detalhes sobre cada arquivo pertencente a ele Por exemplo suponha que voc tenha executado este comando e na tela apareceu algo assim rw r r 1 xyz users 2321 Mar 15 1994 Fontmap rw r r 1 xyz users 14567 Feb 31995 file003 drwxr xr x 2 xyz users 1024 Apr 23 1995 Programs drwxr xr x 3 xyz users 1024 Apr 30 1995 bitmaps Lendo da esquerda para direita este primeiro caracter indica se o arquivo um diret rio d ou um arquivo comum Em seguida temos as permiss es de acesso ao arquivo read write execute sendo as tr s primeiras referentes ao propriet rio as seguintes ao grupo e por ltimo aos demais usu rios A segunda coluna desta listagem mostra o n mero de links que o arquivo possui A terceira coluna mostra o propriet rio do referido arquivo neste caso o usu rio cujo user name xyz Na quarta coluna mostrado o grupo ao qual
128. tica da UFRGS Cap tulo 3 O Ambiente do DPC 31 a para todas as categorias acima 2 Indica se se as permiss es ser o adicionadas ou removidas 3 Usa se uma ou mais letras indicando as permiss es envolvidas rT para read ler w para write escrever X para execute executar Exemplo No exemplo a seguir a permiss o de escrita write adicionada ao diret rio dirl para usu rios pertencentes ao mesmo grupo Portanto o argumento lt permiss es gt g w e o argumento lt nome do arquivo gt dirl Is I dirt drwxr xr x 3 dir1 1024 Feb 10 11 15 dir1 chmod g w dir Is I dirt drwxrwxr x 3 dirt 1024 Feb 10 11 17 dir1 Figura 3 1 Exemplo de utilizagao do comando chmod Como pode se verificar o hifen no conjunto de caracteres para grupo foi modificado para w como resultado deste comando Quando se cria um novo arquivo ou diret rio o sistema associa permiss es automaticamente Geralmente a configura o default assumida para os novos arquivos r1W r r Assumindo como ordem de leitura da esquerda para a direita o primeiro atributo 1 o atributo que diferencia um arquivo de um diret rio No caso de ser um arquivo esse atributo n o possui nenhum valor Os tr s atributos seguintes 2 3 e 4 s o relativos s permiss es do usu rio os atributos das posi es 5 6 7 s o de propriedade do grupo ao qual o usu rio faz parte e os tr s ltimos 8 9 10 s
129. tor da aplica o lt arquivo gt ap nico para cada aplica o e n arquivos de classes distribu das lt arquivo gt dc onde cada arquivo especifica uma classe distribu da da aplica o com seus dados e m todos RELATS5055RIO DE PESQUISA Inst5Situto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 56 4 3 2 1 Arquivo descritor da aplica o O arquivo descritor lt arquivo gt ap especifica para o ambiente de compila o os arquivos que fazem parte da aplica o bem como os nodos da rede onde a aplica o deve ser distribu da e executada e quais s o as classes distribu das Esta especifica o feita utilizando se um conjunto de palavras reservadas ao ambiente de compila o conforme consta na Figura 4 11 As duas primeiras linhas indicam que a execu o da aplica o deve come ar pelo arquivo Mandeld cc pois este o arquivo que cont m a fun o principal da aplica o Esta execu o ser iniciada no nodo da rede especificado pelo par metro in neste caso o nodo mate O par metro with especifica quais os nodos da rede que devem fazer parte da execu o distribu da da aplica o e obviamente deve conter o nodo especificado no par metro in pois este poder receber outra parte da aplica o durante a distribui o start Mandeld cc in mate with mate pala pingo bolicho dclass Calculo at calc dc dclass Saida at saida dc dclass Dist
130. tos Alguns editores de texto do ambiente Linux s o Vi pico emacs joe Deve se observar que ao se escrever uma aplica o DPC todos arquivos devem ser colocados dentro de um mesmo diret rio a fim de que o compilador DPC possa encontr los Al m disso parte se da premissa que o ambiente j foi corretamente instalado e portanto j se encontra em condi es de uso Caso o ambiente n o esteja ainda instalado recomenda se ler o cap tulo 4 desse relat rio Ap s essa breve descri o dos arquivos constituintes de uma aplica o escrita para o ambiente DPC e de algumas recomenda es b sicas ser mostrado alguns exemplos de programas escritos na linguagem DPC RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 5 Exemplos de Programas 67 5 1 Ping Pong O programa PingPong cl ssico em ambientes distribu dos e tem como objetivo medir o tempo de resposta entre m quinas pertencentes a uma mesma rede Inicialmente esse programa apenas mandaria uma mensagem para um determinado n da rede e esse responderia com outra mensagem feita a medi o do tempo gasto desde o envio da mensagem at o tempo da chegada do sinal de retorno Como o DPC trabalha no paradigma de objetos distribu dos esse programa foi adaptado para o respectivo paradigma Sendo que no exemplo o resultado da execu o da aplica o apenas impress o do string ok na tela Nessa vers o do programa Pin
131. tulo 3 O Ambiente do DPC 29 Praticamente todos os softwares para Linux s o completos e de livre distribui o registrados nos termos da Licen a Geral Publica A GNU representa uma nova tend ncia no setor da inform tica popularizando a utiliza o de programas cooperando para o desenvolvimento de empresas e reunindo o trabalho conjunto dos profissionais de inform tica para tomar o desenvolvimento tecnol gico nesse ramo muito mais democr tico acess vel e universal 3 1 2 Comandos B sicos do Linux Comandos em UNIX possuem algumas caracter sticas particulares Eles podem ser controlados por op es e devem ser digitados em letras min sculas A seguir mostrada uma lista dos principais comandos do sistema operacional Linux Para obter informa es mais detalhadas sobre o uso dos comando veja o comando man cat Oficialmente usado para concatenar arquivos Tamb m usado para exibir todo o cd conte do de um arquivo de uma s vez sem pausa Sintaxe cat lt arquivol gt lt arquivo2 gt lt arquivo n gt onde lt arquivol gt at lt arquivo n gt s o os arquivos a serem mostrados cat l cada arquivo em sequ ncia e exibe o na sa da padr o tela do v deo Deste modo a linha de comando cat lt arquivo gt exibir o arquivo em seu terminal e a linha de comando cat lt arquivol gt lt arquivo2 gt gt lt destino gt concatenar lt arquivol gt e lt arquivo2 gt
132. uando desta forma os objetos procuradores implementam os servi os de caixa postal e do canal de invoca o O acesso a objetos procuradores poss vel somente a objetos do mesmo cluster Caso objetos em clusters diferentes necessitem acessar o mesmo objeto distribu do devem existir dois objetos procuradores um em cada cluster referenciando o mesmo objeto remoto Um objeto procurador criado no momento em que deseja se instanciar um objeto distribu do Cabe ao objeto procurador requisitar ao diret rio a cria o de um cluster para servir o novo objeto distribu do A partir deste momento todas requisi es ao objeto distribu do s o enviadas ao seu objeto procurador que conhece a identifica o do objeto a que representa Um RELATSI SIRIO DE PESQUISA Inst5lituto de Inform tica da UFRGS INTRODU O PROGRAMA O EM CLUSTERS DE ALTO DESEMPENHO 52 objeto procurador tratado como um objeto local ao cluster do objeto requisitante da cria o A Figura 4 5 exemplifica o processo de comunica o entre objetos de diferentes clusters cluster A cluster B Figura 4 5 Comunica o entre objetos de diferentes clusters O objeto distribu do do cluster A deseja enviar uma mensagem ao objeto distribu do do cluster B A mensagem enviada para o objeto procurador local ao cluster A que a transfere para o objeto que representa ativando a execu o do m todo solicitado Mensagens de respostas s o tamb m enviadas
133. ue essas m quinas recebem tem que ser considerada o que dificultaria uma poss vel an lise de desempenho Na Tabela 1 3 est o os dados referentes as m quinas que fazem parte do cluster propriamente dito Tabela 1 2 Endere os IPs das m quinas consoles M quina IP NFS Fast Ethernet IP NFS Myrinet Meyer 143 54 7 130 meyer n o est conectada Scliar 143 54 7 131 scliar 192 168 1 1 mscliar ou scliar m Ostermann 143 54 7 137 ostermann 192 168 1 7 mostermann ou ostermann m Tabela 1 3 Endere os IPs das m quinas pertencentes ao cluster M quina IP NFS Fast Ethernet IP NFS Myrinet Verissimo 143 54 7 132 verissimo 192 168 1 2 mverissimo ou verissimo m Quintana 143 54 7 133 quintana 192 168 1 3 mquintana ou quintana m Dionelio 143 54 7 134 dionelio 192 168 1 4 mdionelio ou dionelio m Euclides 143 54 7 135 euclides Meuclides ou euclides m RELAT RIO DE PESQUISA Instituto de Inform tica da UFRGS Cap tulo 1 Introdu o aos Clusters 19 A Figura 1 1 apresenta o esquema de conex o dos nodos das m quinas nas redes Fast Ethernet e Myrinet Como cada m quina ficou com duas interfaces de rede foram configurados endere os IP diferentes em cada uma delas Desse modo pode se alternadamente executar programas de teste em uma ou outra rede bastando escolher os endere os IP de origem e destino das conex es Com esta configura o a rede Myri
134. uir s o apresentadas algumas m tricas relacionadas transfer ncia de dados por redes de interconex o e Packing time Tempo de Empacotamento o tempo gasto para tornar os dados dispon veis para o envio incluem codifica o no caso de comunica o heterog nea e armazenamento c pia dos dados para um buffer apropriado quando necess rio e Lat ncia o tempo que decorre desde que a mensagem enviada at que ela se torne dispon vel no lado do receptor incluindo o tempo que leva para executar as opera es de envio e recebimento e o tempo gasto em protocolos de comunica o drivers de rede e a trasfer ncia dos dados atrav s do meio e Bandwidth Largura de Banda calculado baseado na lat ncia e no tamanho das mensagens indicando a m xima taxa de transfer ncia da rede normalmente medida em Mbytes second As m tricas lat ncia e bandwidth variam de acordo com o tamanho das mensagens Quanto maior o tamanho da mensagem maior ser o tempo de lat ncia e maior ser a largura de banda sendo que essa ltima para um tamanho de mensagem muito grande tende a saturar A fim de garantir um melhor desempenho na comunica o v rios padr es de interconex o est o sendo desenvolvidos para conectar os n s dessas m quinas A seguir ser o caracterizados os padr es mais citados na literatura e Fast Ethernet A Switch Fast Ethernet garante uma lat ncia muito menor na comunica o entre m quinas atrav
135. um arquivo ou diret rio Sintaxe chgrp f h R gid lt nome do arquivo gt chgrp modifica o identificador de grupo group ID gid dos arquivos passados como argumentos gid pode ser um n mero decimal especificando o group id ou um nome de grupo encontrado no arquivo etc group Voc deve ser o propriet rio do arquivo ou O root super usu rio para que possa utilizar esse comando Algumas op es f Essa op o n o reporta erros h Se o arquivo for um link simb lico essa op o modifica o grupo do link simb lico Sem essa op o o grupo do arquivo referenciado pelo link simb lico modificado R Essa op o recursiva chgrp percorre o diret rio e os subdiret rios modifi cando o gid medida em que prossegue chmod Modifica as permiss es de um arquivo ou diret rio Voc deve ser o propriet rio de um arquivo ou diret rio ou ter acesso ao root para modificar as suas permiss es Sintaxe chmod lt permiss es gt lt nome gt onde lt permiss es gt indica as permiss es a serem modificadas lt nome gt indica o nome do arquivo ou diret rio cujas permiss es ser o afetadas As permiss es podem ser especificadas de v rias maneiras Aqui est uma das formas mais simples de se realizar essa opera o 1 Usa se uma ou mais letras indicando os usu rios envolvidos u para o usu rio g para o grupo O para outros RELAT RIO DE PESQUISA Instituto de Inform
Download Pdf Manuals
Related Search
Related Contents
User Manual - MMD-P Fujifilm Pro 160NS BGM User Manual - Newport Corporation Boston Acoustics MSurround 取扱説明書 - エムシーアイエンジニアリング ベビコンローラ® BR-1M Intel(R) Matrix Storage Manager User's Manual Copyright © All rights reserved.
Failed to retrieve file