Você está na página 1de 10

Programacao Paralela com cluster de microcomputadores e software livre: : Explorando oportunidades para otimizar tarefas de alto custo computacional.

. Parallel Programming with cluster of microcomputers and free software: exploring opportunities to optimize tasks of high computational cost.
Paulo Roberto Silla1; Maria Ang lica de Oliveira Camargo-Brunetto2 e
1 2

Graduado e Mestrando em Ci ncia da Computacao, Universidade Estadual de Londrina; paulo.silla@gmail.com e Docente do Departamento de Computacao, Universidade Estadual de Londrina - DC-UEL; angelica@uel.br

Resumo
Tarefas Computacionais que demandam elevados tempos de processamento podem ser abordadas pela computacao pa ralela usando um cluster de computadores. Este artigo tem como objetivo mostrar os benefcios que podem ser obtidos atrav s da programacao paralela, analisando desde problemas mais simples como paralelizar algoritmos num ricos e e classicos, at uma aplicacao mais complexa, testada numa etapa de validacao de uma Rede Neural. Os algoritmos e num ricos analisados incluem multiplicacao de matrizes, c lculo do valor de atrav s de integracao num rica, m todo e a e e e de Jacobi para resolucao de sistemas lineares em vers es paralelas. Mediante a necessidade de otimizar o processamento o de uma rede neural articial para identicacao de doenca pulmonar obstrutiva cronica, foi realizado a paralelizacao do teste da precis o dos resultados fornecidos pela rede. Os algoritmos paralelos foram implementados com o auxlio da a biblioteca Parallel Virtual Machine (PVM) de modo a serem executados em um cluster de computadores. Os algoritmos implementados foram testados com diferentes conguracoes de aglomerados de computadores e os resultados foram analisados atrav s do speed-up obtido em relacao a vers o sequencial de cada algoritmo.Os resultados alcancados s o e a a promissores e mostram que e possvel otimizar a execucao de algoritmos que demandam grande tempo de processa mento, mesmo explorar paralelismo mesmo com um cluster de microcomputadores tipo PC. Palavras-chave: Computacao Paralela. Algoritmos Num ricos. Rede Neural Articial. e

Abstract
Computational tasks that require high runtime can be approached by parallel computing by using cluster of computers. The aim of this article is to show the benets that can be achieved using parallel programming, showing since simple problems as more complex ones, including one task to validate an Articial Neural Network. This paper presents, at rst, the numerical algorithms of matrix multiplication, calculating the value of by numerical integration, Jacobi method for solving linear systems in parallel versions. Then shows the changes made in order to parallel the test of accuracy of results of an algorithm used to train an Articial Neural Network. The parallel algorithms were implemented with the help of the library Parallel Virtual Machine (PVM) to run on a cluster of computers. The tests were performed comparing the gain obtained by the algorithm in parallel to its sequential version. Key words: Parallel Computing. Numerical Algorithms. Articial Neural Network.

Introducao

2001). A computacao paralela e utilizada em situacoes em que um grande esforco computacional e exigido. Tal caracterstica se aplica a problemas como previs es mete o reol gicas, simulacoes de engenharia, c lculos num ricos o a e como resolucao de sistemas lineares de grande porte, entre outros. Por m, e senso comum atualmente que a evolucao e dos computadores, at mesmo dos mais simples e baratos, e passar por um caminho onde cada vez mais ser explorado o a a paralelismo (PASIN; KREUTZ, 2003). 1
Semina: Ci ncias Exatas e Tecnol gicas, Londrina, v. , n. , p. 1-10, e o

O processamento paralelo e uma forma eciente de processar informacao a qual enfatiza a exploracao de eventos con correntes na computacao do processo (DIVERIO; TOSCANI; VE LOSO, 2002). Um sistema de computacao paralela e distribuda consiste de uma colecao de elementos de computacao (processadores), geralmente do mesmo tipo, interconectados de acordo com uma determinada topologia para permitir a coordenacao de suas atividades e troca de dados (CACERES; MONGELLI; SONG,

S ILLA , P. R.; & C AMARGO -B RUNETTO , M. A. DE O.;

Dado um problema, considerando T1 o tempo de execucao do melhor algoritmo para sua resolucao em modo sequencial e Tn o tempo de execucao em uma m quina paralela com n a processadores, o speed up S e denido pela Equacao 1. Speed ups superiores a 1 indicam ganho de performance por parte do algoritmo paralelo. S= T1 Tn (1)

uma Rede Neural Articial juntamente com uma discuss o a sobre os resultados obtidos atrav s dos testes em ambientes e paralelos com diferentes n meros de processadores. u

metodologia

Um algoritmo, ao ser paralelizado, n o obt m ganho linear a e em relacao a sua vers o sequencial (CARRIJO, 2001), ou seja, a Tn sempre e maior que T1 /n, devido a fatores como trechos do algoritmo que n o permitem paralelizacao, sobrecarga do a sistema operacional com a preparacao da execucao em para lelo, lat ncia da rede de intercomunicacao dos processadores e e pela necessidade de sincronizacao dos processos. Em um cluster de computadores, estacoes de trabalho co muns podem ser interconectadas atrav s de uma rede Ethere net, possivelmente j existente e, assim, prover computacao a paralela de baixo custo. A Figura 1 exemplica este tipo de organizacao, apresentando uma m quina com n processado a res (P n), cada qual com sua mem ria (M n). o

Figura 1: Arquitetura paralela no modelo multicomputador.

Para a criacao de algoritmos que executem neste modelo de m quina, e necess rio utilizar construcoes adicionais do a a tipo send e receive que possibilitam a comunicacao entre os processadores. Tal caracterstica faz este modelo tamb m e ser conhecido como sistemas de troca de mensagens (message passing systems) (ROSE; NAVAUX, 2002). A utilizacao de comunicacao por passagem de mensagem e um dos principais mecanismos empregados para permitir processamento distribudo em multicomputadores conectados via rede (SOUSA, 2001). Dentre as bibliotecas para troca de mensagens, as mais conhecidas sao PVM (Parallel Virtual Machine e MPI (Message Passing Interface). 2.1 Multiplicacao de Matrizes O presente trabalho est organizado do seguinte modo: a a secao ?? descreve os algoritmos num ricos implementados, Sejam A, B e C matrizes de ordem m n. A operacao C = e A B, e denida pela Equacao 2: os conjuntos de testes elaborados e executados, e uma discuss o sobre os resultados obtidos. A secao 3 mostra as a n alteracoes realizadas durante a paralelizacao do teste de pre Cij = aik bkj (2) cis o dos resultados em um algoritmo para treinamento de a k=1 2

No presente trabalho, cada algoritmo foi implementado em vers es sequencial e paralela, a m de realizar a comparacao o de desempenho atrav s do conceito de speed up, que indica e quanto o algoritmo paralelo e mais r pido que o algoritmo a sequencial correspondente (CARNEIRO; GUERVICH, 2006). A m quina paralela utilizada para a execucao dos algorita mos implementados neste trabalho foi desenvolvida no modelo de cluster de computadores e sua construcao est des a crita em (SILLA, 2008). A vers o sequencial de cada algoa ritmo foi executada em uma m quina pertencente ao cluster, a por m isolada dos recursos de paralelismo. e Todos os algoritmos paralelos apresentados neste trabalho foram desenvolvidos no modelo mestre-escravo (COSTA; STRINGHINI; CAVALHEIRO, 2002), onde existem dois tipos de processos: o mestre que coordena e distribui o trabalho e os escravos que executam tal trabalho. O mestre e respons vel a por criar os processos escravos que geralmente executam as mesmas instrucoes sobre conjuntos distintos de dados. To dos os processos escravos podem ser criados de maneira xa, quando o processo mestre e iniciado ou sob demanda, quando houver trabalho a ser realizado. Foram selecionados os seguintes algoritmos num ricos e para que fossem implementados em paralelo (Multiplicacao de Matrizes, c lculo do valor do n mero atrav s de a u e integracao num rica e m todo de Jacobi para resolucao de e e sistemas lineares). Os dois primeiros algoritmos foram im plementados em linguagem C e o ultimo foi implementado no ambiente de programacao matem tica Scilab. O Scilab e a uma plataforma de c digo aberto para computacao num rica, o e disponvel para download no endereco www.scilab.org. A vers o utilizada aqui foi a 4.1. a Tanto a linguagem C quanto o ambiente Scilab possuem extens o para a biblioteca de troca de mensagens Parallel a Virtual Machine (PVM). Tal biblioteca possibilita a troca de mensagens entre os processos em um ambiente paralelo e sua vers o 3.4.5 est disponvel para download em a a http://www.netlib.org/pvm3/index.html. Para cada algoritmo apresentamos os conceitos basicos, o pseudoc digo desenvolvido no modelo mestre-escravo e uma o analise com diferentes conguracoes de clusters.

P ROGRAMAC AO PARALELA COM CLUSTER DE MICROCOMPUTADORES E SOFTWARE LIVRE : : E XPLORANDO . . .

Em outras palavras, cada elemento da matriz C e obtido atrav s do somat rio dos produtos entre os elementos da linha e o i de A pelos elementos da coluna j de B, com i variando de 1 at a quantidade de linhas da matriz A e j de 1 at o n mero e e u de colunas de B. Por exemplo, para calcular o valor de c12 , sendo 3 3 a ordem das matrizes A, B e C, devem ocorrer as operacoes contidas na Equacao 3:

cravo. Logo, cada processo escravo computar o valor dos a elementos de uma area da matriz resultante C. Como pode ser notado no algoritmo, os escravos realizam as operacoes de multiplicacao de matrizes e enviam os resul tados ao processo mestre que, por sua vez, ter ao nal de a todos os processos escravos, a matriz C = A B calculada. Os testes foram elaborados com matrizes quadradas de ordem 50 50, 100 100, 150 150, 200 200, 250 250, c12 = a11 b12 + a12 b22 + a13 b32 (3) 300 300, 350 350, 400 400 e executados em ambientes paralelos com 2, 4, 6, 8 e 10 processadores. As matriConforme pode ser notado, a multiplicacao de matrizes s zes A e B foram construdas com n meros inteiros de modo o u e possvel de ser realizada quando o n mero de linhas da ma- aleat rio. A pr xima secao detalha cada teste e apresenta uma u o o triz A e igual ao n mero de colunas da matriz B. Uma outra discuss o sobre seus resultados. u a caracterstica importante e que esta operacao e n o comuta a tiva, ou seja, A B = B A. Na sequ ncia apresentamos em pseudoc digo o algoritmo 2.1.1 Resultados e o desenvolvido no modelo mestre-escravo para a multiplicacao Os speedups do algoritmo de multiplicacao de matrizes em de matrizes em vers o paralela. a vers o paralela para n meros diferentes de processadores em a u matrizes de ordens diferentes s o apresentados na Tabela 1. a Algoritmo: Mult. de matrizes paralelo-mestre Os valores em negrito indicam o maior speed up, caso seja Entradas: Matrizes A, B e o n mero de processos p u superior a 1, do conjunto de testes realizados para matrizes Sada: Matriz C de mesma ordem. A Figura 2 exibe o gr co dos speed ups a incio obtidos pela quantidade de processadores, para os testes rea1. Cria os processos escravos; lizados com matrizes de diferentes ordens. 2. Divide a matriz A em blocos conforme p; Envia a matriz B para todos os processos; Para i = 1 at p faca: e Envia o bloco i de A para o processo i; m para; Para i = 1 at p faca: e Recebe do processo i o bloco calculado e insere em C; 9. m para; m 3. 4. 5. 6. 7. 8. Tabela 1: Speed ups obtidos com o uso da biblioteca PVM (Multiplicacao de Matrizes) Ordem das Matrizes 50x50 100x100 150x150 200x200 250x250 300x300 350x350 400x400 2 0,333 0,717 0,975 1,155 1,724 1,486 1,633 1,459 Numero de Processadores 4 6 8 10 0,320 0,267 0,258 0,195 0,729 0,489 0,398 0,291 1,256 0,913 0,625 0,486 1,522 1,023 0,754 0,567 2,332 1,907 1,315 1,014 2,356 2,233 1,736 1,399 2,679 2,501 1,997 1,592 2,561 2,592 1,877 1,591

O fato de alguns testes n o resultarem speed up superior a a 1, ou seja, n o obterem ganho de performance com o uso a do algoritmo paralelo deve-se, inicialmente, por apresentarem matrizes relativamente pequenas, tornando o tempo gasto com a preparacao e posterior execucao em paralelo maior que o tempo de execucao do algoritmo sequencial. Outro fator a ser considerado e a lat ncia oferecida pela rede de intercoe nex o dos processadores utilizados, que trabalha a 100 Mbps. a Os testes com o uso da biblioteca PVM mostraram que a O processo mestre cria os processos escravos e, em se- m quina com 4 processadores apresentou speed up superior a guida, envia uma parte da matriz A (a quantidade de linhas de em relacao a outras conguracoes (2, 6, 8 e 10 processadores) ` cada parte de A enviada e calculada dividindo-se o n mero de para a maioria dos testes, exceto o ultimo onde a ordem das u linhas total de A pela quantidade de processadores existentes matrizes era de 400 400, sendo superada pela m quina com a no ambiente paralelo) e uma c pia da matriz B para cada es- 6 processadores que obteve speed up igual a 2, 592. o 3

Algoritmo: Mult. de matrizes paralelo-escravo Entradas: Matriz B, bloco de A Sada: Bloco de C incio 1. Para i = 1 at n mero linhas do bloco de A faca: e u 2. Para j = 1 at ordem de B faca: e 3. Para k = 1 at ordem de B faca: e 4. Cij = Cij + Aik Bkj ; 5. m para; 6. m para; 7. m para; 8. Envia para o processo mestre o bloco de C calculado; m

S ILLA , P. R.; & C AMARGO -B RUNETTO , M. A. DE O.;

Figura 2: Speed up por n mero de processadores obtidos pelo u algoritmo de Multiplicacao de Matrizes em paralelo.

2.2

C lculo do Valor de por Integracao a Num rica e

Neste m todo, o valor de e calculado atrav s da integracao e e num rica da funcao mostrada na Equacao 4 no intervalo de 0 e a 1. 4 (4) f (x) = 1 + x2 O c lculo da integral divide o intervalo em r subintervaa los, formando ret ngulos entre o eixo x e a curva da funcao, a conforme pode ser observado na Figura 3. A area de cada ret ngulo e calculada e seu valor e somado a m de obter o a valor da area total do intervalo.

Algoritmo: Valor de paralelo-mestre Entradas: N mero de processos p, u n mero de ret ngulos r u a Sada: Valor de incio 1. Cria os processos escravos; 2. Calcula r que cada processo escravo ir processar; a 3. Para i = 1 at p faca: e 4. Envia r para o processo i; 5. m para; 6. Para i = 1 at p faca: e 8. Recebe o valor calculado pelo processo i; 9. Soma o valor recebido de i em ; 10. m para; m

Figura 3: C lculo da integral usando 20 ret ngulos (r = 20). a a

Algoritmo: Valor de paralelo-escravo Entradas: N mero de ret ngulos r u a Sada: Valor parcial de incio 1. w = 1.0/r; 2. Para i = 1 at r + 1 faca: e 3. x = w (i 0.5); 4. pi = pi + (4.0/1.0 + (x x))); 5. m para; 6. pi = pi w; 7. Envia o valor calculado para o processo mestre; m

A seguir mostramos em pseudoc digo o algoritmo para o c lculo do valor de atrav s de integracao num rica em a e e vers o paralela no modelo mestre-escravo. a O algoritmo paralelo cria um processo escravo para cada processador existente no ambiente. O processo mestre, conhecendo o n mero de processos e a quantidade de ret ngulos u a 4

P ROGRAMAC AO PARALELA COM CLUSTER DE MICROCOMPUTADORES E SOFTWARE LIVRE : : E XPLORANDO . . .

desejada, obt m a quantidade de ret ngulos que cada proe a cesso escravo dever calcular e envia essa informacao a cada a um deles. Em seguida, os processos escravos realizam os c lculos e retornam os resultados para o processo mestre. a Este soma as respostas recebidas dos escravos a m de obter o valor nal de . Foram elaborados testes dividindo o intervalo [0, 1] em 10.000, 10.000.000, 1.000.000.000 e todos foram executados em ambientes paralelos com 2, 4, 6, 8 e 10 processadores. A pr xima secao apresenta os resultados e uma discuss o sobre o a eles. 2.2.1 Resultados

Os speed ups obtidos com a realizacao dos testes utilizando o algoritmo paralelo para o c lculo do valor de em arquitetua ras com n meros diferentes de processadores s o apresentau a dos na Tabela 2. Assim como nos resultados do algoritmo de Multiplicacao de Matrizes, os melhores speed ups para cada n mero de ret ngulos, caso maiores que 1, est o destacados u a a em negrito. A Figura 4 apresenta um gr co dos speed ups a obtidos pela quantidade de processadores utilizados, para diferentes quantidades de ret ngulos. a Tabela 2: SpeedUps obtidos com o uso da biblioteca PVM (c lculo PI) a

piorou em relacao aos ambientes com 2, 4, 6 e 8 processado res. Ao fazer o n mero de ret ngulos igual a 10.000.000, houve u a ganho para todos os conjuntos de processadores. Por m, a e diferenca entre os speed ups de 10 e 8 processadores foi me nor que a diferenca entre 4 e 2 processadores, o que pode indicar um limite m ximo de ganho pr ximo a 10 processaa o dores. Utilizando 1.000.000.000 ret ngulos, os ganhos de cada a conjunto de processadores s o superiores em relacao aos tesa tes anteriores (10.000.000 e 10.000 ret ngulos) e a diferenca a entre os speed ups obtidos entre 4 e 2 processadores compa` rada a diferenca entre 10 e 8 processadores e muito parecida, o que pode mostrar que o n mero m ximo de processadores u a onde obt m-se ganho est distante de 10. e a

2.3

M todo de Jacobi para Resolucao de Sistee mas Lineares

Dado um sistema de equacoes lineares na forma da Equacao 5, sendo o determinante de A diferente de zero, os elementos da diagonal principal n o nulos e denindo uma estimativa a inicial para o vetor solucao, o m todo iterativo de Jacobi pode e ser utilizado para obter a solucao. Ax = B (5)

A Equacao 6 descreve o modo de obtencao das inc gnitas o xi a cada iteracao k do algoritmo: Quantidade de Numero de Processadores Ret ngulos a 2 4 6 8 10 1 10.000 0,813 0,813 0,813 0,813 0,765 bi aij xk (6) xk+1 = j i aii 10.000.000 1,899 3,486 4,648 6,177 6,971 j=i 1.000.000.000 2,542 5,007 7,490 9,920 12,530 Os crit rios de parada utilizados nesse m todo s o o erro e e a calculado entre os valores de xi da iteracao corrente e anterior e a quantidade m xima de iteracoes. a A implementacao deste algoritmo deixa claro tamb m o e conceito de fases paralelas, na qual a resolucao do problema e realizada em fases, sendo necess rio que todos os procesa ` sos terminem uma fase para passar a fase seguinte (COSTA; STRINGHINI; CAVALHEIRO, 2002). No m todo de Jacobi, isto e pode ser observado no momento em que um processo escravo envia sua resposta ao processo mestre e aguarda at que o e mestre lhe envie um sinal, que s ocorre ap s todos os proo o cessos escravos terem enviado sua resposta ao mestre e este realizado uma parte do processamento (de modo sequencial), como ser visto em detalhes a seguir. A Figura 5 mostra cinco a processos em um programa paralelo nos instantes T 1, T 2 e Figura 4: Speed up por n mero de processadores obtidos pelo T 3, apresentando um avanco de fase entre T 2 e T 3. u Em nossa implementacao do m todo de Jacobi para e algoritmo de C lculo do Valor de em paralelo. a resolucao de sistemas lineares no modelo mestre-escravo, o processo mestre cria os processos escravos de acordo com a Nota-se que para o n mero de ret ngulos igual a 10.000, quantidade de processadores existentes no ambiente paralelo, u a n o houve ganho de performance em relacao ao algoritmo a m de alocar a mesma quantidade de processos por procesa sequencial, sendo que com 10 processadores o desempenho sador. O sistema e gerado de modo aleat rio e a matriz A e o 5

S ILLA , P. R.; & C AMARGO -B RUNETTO , M. A. DE O.;

Figura 5: Mudanca de fase dos processos em um programa paralelo. Algoritmo: M todo de Jacobi paralelo-escravo e Entradas: Matriz A, n mero m ximo de iteracoes u a itM ax, vetor dos termos independentes b indicacao da parte do vetor solucao que dever calcular ini A e f im A a Sada: Parte do vetor solucao x incio 01. Para it = 1 at itM ax faca: e 02. Recebe solucao anterior; 03. Para i = ini A at f im A faca: e 04. soma = 0; 05. Para j = 1 at n mero de colunas e u de A faca: 06. Se i = j ent o: a 07. soma = soma + aij solucao anteriorj ; 08. Fim se; 09. Fim para; 10. solucao atuali = 1/aij (soma bi ); 11. Fim para; 12. Envia a parte da solucao calculada para o processo mestre; 13. Fim para; m

Algoritmo: M todo de Jacobi paralelo-mestre e Entradas: Matriz A, n mero m ximo de iteracoes u a itM ax, erro aceit vel erro, vetor dos a termos independentes b Sada: Vetor solucao x incio 01. Cria os processos escravos; 02. Envia a matriz A aos processos escravos; 03. Envia o vetor b aos processos escravos; 04. Envia o itM ax aos processos escravos; 05. Para i = 1 at n mero de processos e u escravos faca: 06. envia ao processo pi indicacao da parte do vetor solucao que este dever calcular; a 07. Fim para; 08. solucao ant = b; 09. Para it = 1 at itM ax faca: e 10. Envia solucao ant aos escravos; 11. Para i = 1 at n mero de processos e u escravos faca: 12. Recebe de pi parte do vetor solucao atual; 13. Fim para; 14. Calcula erro relativo entre solucao ant e solucao atual; 15. Se erro relativo erro ent o: a 16. Encerra todos os processos escravos; 17. Fim das iteracoes; 18. Sen o: a 19. solucao ant = solucao atual; 20. Fim se; 21. Fim para; m

o vetor dos termos independentes b s o enviados a todos os a processos escravos, juntamente com a quantidade m xima de a iteracoes e a indicacao da parte do vetor solucao que cada es cravo dever processar. Tal parte e dividida de modo que cada a escravo realize a mesma quantidade de processamento a cada iteracao do algoritmo. Os escravos retornam para o processo mestre as partes do vetor solucao calculadas na iteracao corrente e, se o li mite de iteracoes for atingido, encerram sua execucao. Caso contr rio, aguardam uma acao do processo mestre. O proa cesso mestre, por sua vez, ap s receber todas as partes do o vetor solucao, calcula o erro relativo e, se este for menor que um erro pr estabelecido (aqui foi utilizado 105 ), ele consie dera que o m todo convergiu para a solucao obtida na iteracao e atual, encerra os processos escravos e encerra sua execucao. Caso o n mero de iteracoes exceda seu limite, o processo u mestre considera que o m todo n o convergiu, ou seja, n o e a a atingiu uma solucao aceit vel, e encerra sua execucao. Se ne a nhuma condicao acima for satisfeita, o processo mestre inicia uma nova iteracao, enviando a solucao obtida para todos os

P ROGRAMAC AO PARALELA COM CLUSTER DE MICROCOMPUTADORES E SOFTWARE LIVRE : : E XPLORANDO . . .

processos escravos, que ir o consider -la como solucao antea a rior em uma nova iteracao. Durante os testes, foram gerados sistemas lineares de forma aleat ria, com 50, 100, 150, 200 inc gnitas os quais o o foram testados em ambientes paralelos com 2, 4, 6, 8 e 10 processadores. Os detalhes dos testes ser o discutidos na a pr xima secao. o 2.3.1 Resultados

dores apresentou speed up igual a 7, 897, o maior do conjunto de testes realizados. Um outro aspecto que pode ser observado e que conforme o sistema linear torna-se grande, o ganho com o processamento paralelo torna-se maior com o acr scimo de processadores na e m quina paralela. a

A Tabela 3 exibe os speed ups obtidos com a paralelizacao do algoritmo que implementa o m todo de Jacobi para a e resolucao de sistemas lineares, com base nos testes realiza dos utilizando a biblioteca PVM no ambiente de programacao Scilab. A Figura 6 exibe o gr co dos speed ups obtidos pela a quantidade de processadores existentes na m quina paralela, a para cada sistema linear testado. Tabela 3: SpeedUps obtidos (M todo de Jacobi) e Quantidade de Inc gnitas o 50 100 150 200 Numero de Processadores 4 6 8 10 2,460 2,926 4,964 4,793 3,286 4,281 5,005 6,614 3,302 4,338 5,562 7,373 3,529 5,363 6,853 7,987

Paralelizacao do Teste de Precis o a dos Resultados de uma Rede Neural Articial

2 1,635 1,760 1,756 1,491

O algoritmo paralelizado nesta secao e apresentado em (CAMARGO-BRUNETTO; OLIVEIRA; GONCALVES, 2008) em modo sequencial, no qual uma Rede Neural Articial multi camada e utilizada para identicar doencas pulmonares obs trutivas cr nicas. O treinamento da rede e baseado no algoo ritmo Back-Propagation. O Back-Propagation possui aprendizado supervisionado e utiliza pares (entrada, sada desejada) para, por meio de um mecanismo de correcao de erros, ajustar os pesos da rede (BRAGA; CARVALHO; LUDERMIR, 2000). Nele, existem duas fases de treinamento: forward, em que a sada e denida de acordo com um padr o de entrada e, backward, na qual os pea sos das conex es s o ajustados com base nas sadas desejadas o a e obtidas pela rede. Os passos realizados pelo algoritmo Back-Propagation (BRAGA; CARVALHO; LUDERMIR, 2000) s o mostrados a seguir. a Algoritmo: Back-Propagation Entradas: Erro mnimo, m ximo de iteracoes, a vetor de padr es X o incio 1. Inicializa pesos e par metros; a 2. Repete at o erro ser mnimo ou at a e e realizacao de um determinado n mero de ciclos: u 3. Para cada padr o de treinamento X faca: a 4. Dene a sada da rede atrav s e da fase forward; 5. Compara as sadas produzidas com as sadas desejadas; 6. Atualiza os pesos dos nodos atrav s e da fase backward; 7. m para; m Em (CAMARGO-BRUNETTO; OLIVEIRA; GONCALVES, 2008) foi utilizado o m todo de validacao cruzada k-fold (HAYKIN, e 1999), com k = 10, no processo de aprendizagem da rede neural. Nesse m todo, os dados de entrada da rede s o die a vididos em k conjuntos. Destes, 9 s o utilizados para o treia namento da rede e 1 para estimar a precis o dos resultados a obtidos. Tal m todo e iterativo e encerra-se ap s todos os k e o 7

Figura 6: Speed up por n mero de processadores obtidos pelo u algoritmo de resolucao de sistemas lineares pelo m todo de e Jacobi. Inicialmente podemos notar que todos os testes apresentaram ganho de desempenho. Analisando individualmente, os testes que resolveram o sistema linear com 50 inc gnitas, o mostraram que a m quina paralela com 8 processadores oba teve o maior speed up. Para os outros sistemas lineares testados (100, 150 e 200 inc gnitas) a m quina paralela com 10 o a processadores apresentou maior speed up, sendo que o teste realizado com 200 inc gnitas na m quina com 10 processao a

S ILLA , P. R.; & C AMARGO -B RUNETTO , M. A. DE O.;

conjuntos terem sido utilizados para o teste de precis o dos a resultados da rede. A etapa do algoritmo escolhida para a paralelizacao foi a validacao cruzada, pois nela existe um laco com 10 repeticoes no qual cada iteracao apresenta-se de maneira independente, possibilitando sua execucao simult nea. Logo, o algoritmo a foi modicado a m de alocar cada iteracao a um processo e distribuir tais processos nos processadores existentes na m quina paralela. a A Figura 7 apresenta o uxo de execucao do algoritmo de treinamento da Rede Neural Articial em modo sequencial, ou seja, na forma em que foi desenvolvido originalmente. Por outro lado, a Figura 8 exibe o uxo de execucao do algoritmo modicado para executar de forma paralela em um ambiente otimo, considerando que cada processo e alocado para execucao em um processador diferente e n o existe a lat ncia causada pela rede ou qualquer outra inu ncia nee e gativa em seu tempo de processamento. Como pode ser observado pela comparacao entre as duas guras, o algoritmo paralelo mostra-se 10 vezes mais r pido que o sequencial. a

Algoritmo: Teste precis o resultados RNA - mestre a incio 1. Inicializa os par metros da rede; a 2. Cria 10 processos escravos; 3. Para p = 1 at 10 faca: e 4. Envia os par metros de treinamento ao processo p a 5. Fim para; 6. Para p = 1 at 10 faca: e 7. Recebe os resultados do processo p; 8. Fim para; m Algoritmo: Teste precis o resultados RNA - escravo a incio 1. Recebe os par metros da rede; a 2. Treina a rede; 3. Testa a precis o dos resultados; a 4. Envia os resultados obtidos ao processo mestre; m

3.1

Resultados e discuss o a

Figura 7: Fluxo de execucao do algoritmo sequencial.

A Tabela 4 apresenta os speed ups e a eci ncia, obtidos com e o algoritmo modicado nos ambientes paralelos construdos com 2, 4, 6, 8 e 10 processadores. Nesta tabela, eciencia foi calculada como a raz o entre entre speed up e n mero de a u processadores. A Figura 9 mostra o gr co dos speed ups a obtidos pelo n mero de processadores utilizados no ambiente u paralelo.

Tabela 4: Speed ups obtidos - Rede Neural Articial 2 1,851 92,55 Numero de Processadores 4 6 8 10 3,098 4,648 4,631 9,33 77,45 77,46 57,88 93,3

Speed up Eci ncia (%) e

Figura 8: Fluxo de execucao do algoritmo paralelo em um Pode-se notar que todos os testes realizados apresentaram ambiente otimo. ganho de performance, sendo que o n mero de processos rou dando em um processador determinou o ganho em cada um. Por exemplo, os ambientes paralelos com 6 e 8 processado O algoritmo paralelizado e mostrado a seguir, na vers o res tinham pelo menos um processador executando 2 procesa mestre-escravo. sos (Figura 10) e obtiveram speed ups parecidos (a pequena Os testes foram realizados em ambientes paralelos com 2, diferenca em favor do ambiente com 6 processadores se deve ao n mero menor de mensagens trocadas). u 4, 6, 8 e 10 processadores. A quantidade de neur nios na cao mada oculta, a taxa de aprendizado e a constante momentum Enm, ao executar o teste com 1 processo escravo em foram 3, 0, 5 e 0, 5 respectivamente. Estes valores foram es- cada processador, nota-se que o algoritmo paralelo executa tabelecidos como os melhores para o conjunto de dados testa- 9, 33 vezes mais rapidamente que o sequencial, cando muito dos (CAMARGO-BRUNETTO; OLIVEIRA; GONCALVES, 2008). Na pr ximo a 10, valor apresentado no modelo te rico e limite o o pr xima secao os testes realizados s o detalhados e e reali- superior para o ganho obtido pelo algoritmo paralelo, consio a zada a an lise dos resultados obtidos. a derando as modicacoes realizadas. 8

P ROGRAMAC AO PARALELA COM CLUSTER DE MICROCOMPUTADORES E SOFTWARE LIVRE : : E XPLORANDO . . .

Figura 9: Speed up por n mero de processadores do algou ritmo de teste de precis o dos resultados do treinamento de a uma Rede Neural Articial modicado para executar em paralelo. Figura 10: Representacao dos ambientes paralelos criados para os testes e a quantidade de processos executando em cada processador: (A) ambiente com 2 processadores, (B) De modo geral, pode-se concluir que a necessidade por po- ambiente com 4 processadores, (C) ambiente com 6 procesder de processamento estimula a pesquisa por m quinas mais sadores, (D) ambiente com 8 processadores e (E) ambiente a velozes e, por sua vez, a construcao de uma m quina paralela com 10 processadores. A letra Xindica que o processador a no modelo multicomputador (cluster de computadores) e uma n o foi utilizado no teste. a alternativa barata e acessvel para prover computacao de alto desempenho. Observa-se que a maioria dos testes analisados nesse trabalho apresentaram ganho de desempenho. Por m, durante o desenvolvimento deste trabalho, notou- T. B. Redes Neurais Articiais: Teoria e Aplicacoes. 1. ed. Rio de e Janeiro, RJ: LTC Editora, 2000. se que alguns fatores inuenciam de modo negativo a computacao paralela, como o gargalo introduzido pela rede CACERES, E. N.; MONGELLI, H.; SONG, S. W. Algoritmos pa ralelos usando cgm/pvm/mpi: Uma introducao. Anais do XXI Con de interconex o e a carga extra submetida ao Sistema Operaa gresso da Sociedade Brasileira de Computacao, v. 2, p. 219278, cional, para realizar a criacao de todos os processos envolvi 2001. dos. A principal contribuicao deste trabalho foram as CAMARGO-BRUNETTO, M. A. de O.; OLIVEIRA, C.; modicacoes realizadas a m de paralelizar o algoritmo GONCALVES, A. R. Articial neural networks to identify chronic obstructive pulmonary disease. 2008. para o teste de precis o dos resultados obtidos pelo treia namento de uma Rede Neural Articial j que, na maioria CARNEIRO, A. R.; GUERVICH, C. H. do V. Computacao paralela a com cluster beowulf: Aplicativos e benchmarks. 2006. dos casos, o treinamento da rede e um processo demorado. a a Tal algoritmo apresentou ganho de 9,33 em relacao a sua CARRIJO, E. C. Processamento Paralelo Aplicado em An lise n o ` a vers o sequencial, quando executado numa m quina com Linear de Cascas. Tese (Tese de doutorado) Universidade de S o a a Paulo, 2001. 10 processadores e, em trabalhos futuros, ele poder ser a utilizado com novos conjuntos de dados, de modo que o COSTA, C. M. da; STRINGHINI, D.; CAVALHEIRO, G. G. H. a tempo gasto com o treinamento da rede neural seja menor, Programacao concorrente: Threads, mpi e pvm. 2 Escola Regio obtendo resultados de maneira mais agil, caracterizando uma nal de Alto Desempenho ERAD 2002, v. 1, p. 3165, 2002. DIVERIO, T. A.; TOSCANI, L. V.; VELOSO, P. A. S. An lise da a vantagem competitiva.

Conclus es o

Agradecimentos

complexidade de algoritmos paralelos. 2a Escola Regional de Alto Desempenho ERAD 2002, v. 1, p. 67106, 2002. HAYKIN, S. Neural Network: A Comprehensive Foundation. 4. ed. New York: Prentice-Hall, 1999.

Ao Conselho Nacional de Desenvolvimento Cientco e Tec PASIN, M.; KREUTZ, D. L. Arquitetura e administracao de aglo nol gico (CNPq) pelo suporte nanceiro. o merados. 3a Escola Regional de Alto Desempenho ERAD 2003, p.
334, 2003.

Refer ncias e
BRAGA, A. de P.; CARVALHO, A. C. P. de L. F.; LUDERMIR,

ROSE, C. A. F. de; NAVAUX, P. O. A. Fundamentos de processamento de alto desempenho. 2a Escola Regional de Alto Desempenho ERAD 2002, S o Leopoldo, RS, v. 1, p. 329, 2002. a

S ILLA , P. R.; & C AMARGO -B RUNETTO , M. A. DE O.;

SILLA, P. R. Computacao Paralela: Construcao e Utilizacao de um Cluster. Dissertacao (Relat rio de Pesquisa) Universidade Esta o dual de Londrina, 2008. SOUSA, P. B. M. de. WVM: Uma Ferramenta para Processamento Distribudo de Alto Desempenho na Web. Dissertacao (Mestrado) Universidade Federal do Cear , 2001. a

10

Você também pode gostar