PARALELIZAÇÃO DO MÉTODO DE HOUSEHOLDER PARA RESOLUÇÃO DE SISTEMAS LINEARES



Documentos relacionados
Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Balanceamento de Carga

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Sistemas Operacionais

Análise de Desempenho de um SGBD para Aglomerado de Computadores

Dadas a base e a altura de um triangulo, determinar sua área.

a 1 x a n x n = b,

Organização e Arquitetura de Computadores I. de Computadores

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Cálculo Aproximado do número PI utilizando Programação Paralela

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

ARQUITETURA DE COMPUTADORES

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Arquitetura de Rede de Computadores

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Unidade 13: Paralelismo:

Desenvolvimento de um Simulador de Gerenciamento de Memória

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Tabela de roteamento

Arquiteturas RISC. (Reduced Instructions Set Computers)

CAPÍTULO 2. Grafos e Redes

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Processamento de Dados

SISTEMAS DISTRIBUÍDOS

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

Exemplos práticos do uso de RMI em sistemas distribuídos

Álgebra Linear. Mauri C. Nascimento Departamento de Matemática UNESP/Bauru. 19 de fevereiro de 2013

Fundamentos de Sistemas Operacionais

ALGORÍTMOS PARALELOS LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Um Driver NDIS Para Interceptação de Datagramas IP

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Sistemas Operacionais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

ULA Sinais de Controle enviados pela UC

Sistemas Computacionais II Professor Frederico Sauer

5 Estudo de caso: utilizando o sistema para requisição de material

1

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Exemplo de Arquitetura: Cliente/Servidor com Mestre e Escravos. Interface em IDL. Dynamic Invocation Interface. Exemplo invocação DII em Java

Sistemas Operacionais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Análise e Projeto Orientados por Objetos

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Resolução de sistemas lineares

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

SISTEMAS COM AMORTECIMENTO NÃO-PROPORCIONAL NO DOMÍNIO DA FREQÜÊNCIA

IW10. Rev.: 02. Especificações Técnicas

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS Os Programas de Avaliação

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

CASE STUDY FOR RUNNING HPC APPLICATIONS IN PUBLIC CLOUDS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

MODELO CLIENTE SERVIDOR

PARANÁ GOVERNO DO ESTADO

Sistema Operacional Correção - Exercício de Revisão

Instituto Politécnico de Beja. Escola Superior de Tecnologia e Gestão

GT-ATER: Aceleração do Transporte de Dados com o Emprego de Redes de Circuitos Dinâmicos. RP1 - Relatório de detalhamento das atividades

DIFERENÇAS ENTRE HUB, SWITCH E ROOTER

Introdução ao Modelos de Duas Camadas Cliente Servidor

Everson Scherrer Borges João Paulo de Brito Gonçalves

Pesquisa Operacional

ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1

Introdução às arquiteturas paralelas e taxonomia de Flynn

PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 *

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO

Árvores Binárias de Busca

Noções de. Microsoft SQL Server. Microsoft SQL Server

Orientação a Objetos

CAP. I ERROS EM CÁLCULO NUMÉRICO

Escalonamento no Linux e no Windows NT/2000/XP

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR

Algoritmos e Estrutura de Dados III. Árvores

Sistemas Operacionais. Prof. André Y. Kusumoto

Capítulo 8 Arquitetura de Computadores Paralelos

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Fórmula versus Algoritmo

Capítulo 2 - Problemas de Valores Fronteira para Equações Diferenciais Ordinárias

Organização de Computadores

Manual do e-dimed 4.0

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Máquinas Multiníveis

7.Conclusão e Trabalhos Futuros

Transcrição:

PARALELIZAÇÃO DO MÉTODO DE HOUSEHOLDER PARA RESOLUÇÃO DE SISTEMAS LINEARES A. Copetti 1, C. Possani 1, E. Padoin 1, M. Binelo 1, O. Khatchatourian 2 1 UNICRUZ - Departamento de Informática Rua Andrade Neves, 308 98025-810 Cruz Alta, RS 2 UNIJUI - Departamento de Física, Estatística e Matemática Rua São Francisco, Cx. P. 560 98700-000 Ijuí, RS {copetti,manoelb,possani,padoin}@unicruz.edu.br olegkha@unijui.tche.br Abstract This paper presents a analysis of acting of transformations of Householder for solution of systems of algebraic lineal equations with application of parallel algorithms in cluster of PC. Using householder method shown that the accelerations of the parallel algorithms have maximum points in function of the number of processors. These points depend on the system order to be solved. Being that the developed parallel algorithm privileges the execution of matrices of great order, therefore each node of the virtual machine only this of ownership of part of the matrix. Developed a parallel algorithm with performance efficient and of low cost. Resumo Este artigo apresenta uma análise de desempenho de transformações de Householder para solução de sistemas de equações lineares algébricas com aplicação de algoritmos paralelos em cluster de PC. Utilizando o método de Householder mostra-se que as acelerações dos algoritmos paralelos têm pontos de máximo em função do número de processadores. Estes pontos dependem da ordem de sistema a ser resolvido, sendo que o algoritmo paralelo desenvolvido privilegia a execução de matrizes de grande porte, pois cada nodo da máquina virtual somente esta de posse de parte da matriz. Desenvolveu-se um algoritmo paralelo com desempenho eficiente e de baixo custo. 1. Introdução Este artigo descreve o trabalho de paralelização do método de householder, uma aplicação de alto custo computacional utilizada na resolução de sistemas lineares. Desenvolve-se este trabalho com o intuito de explorar as características particulares dos recursos disponibilizados pela crescente evolução das arquiteturas multiprocessadas e das tecnologias de comunicação de alto desempenho. Mais especificamente, foi desenvolvido

uma solução paralela do método de householder a fim de minimizar o tempo de resolução dos sistemas. Os algoritmos seqüenciais para os métodos de Householder e de Givens são muito utilizados nas área de matemática aplicada conforme sua descrição detalhada nas obras de [Horn, 1986], [Khatchatourian, 1995], [Ortega, 1988]. Houveram tentativas de utilizar o processamento paralelo para avaliação de melhores desempenho destes métodos, porém utilizam-se supercomputadores e um número bem limitado de colunas da matriz, cerca de 50 [Egecioglu, 1995]. Desta forma, procura-se desenvolver uma solução de baixo custo e explorar os recursos da computação paralela e distribuída no objetivo de melhores desempenhos para resolução de SELA 1 com matriz densa e de grande porte. Entre os métodos diretos de solução de SELA, os métodos de reflexões e rotações apresentam a maior estabilidade numérica (em comparação com métodos com mesma ordem de operações aritméticas). Apesar disso, os métodos de Householder e Givens são utilizados principalmente para QR decomposição de matrizes, ortogonalização dos vetores, resolução de problemas de autovalores, etc., e não para solução de SELA, pois são considerados mais lentos em comparação com outros métodos diretos, por exemplo, com LU decomposição. Ao mesmo tempo, o desenvolvimento dos computadores paralelos e vetoriais exige que alguns princípios e métodos já estabelecidos para computação seqüencial sejam repensados em função da arquitetura computacional usada. Neste trabalho, foram implementadas as transformações ortogonais de Householder em cluster de PC para resolução de SELA com matriz quadrada não singular: onde A ( R) Ax=b M n, x R n, b R n. Atualmente pesquisas na área do processamento paralelo já disponibilizam compiladores que paralelizam automaticamente alguns códigos seqüenciais, entretanto, outras aplicações necessitam de formas diferentes de paralelização, como comunicação com passagem explícita de mensagens entre os processadores, tornando-se mais viável a manutenção do código seqüencial, anexando-se ao mesmo bibliotecas que propiciem tal comunicação[padoin, 2001]. A paralelização eficiente de algoritmos seqüenciais que não podem ser paralelizados com as ferramentas atualmente utilizadas, motivam cada vez mais pesquisas no desenvolvimento de estratégias completamente novas para resolver tais problemas e tirar proveito do paralelismo. Um mecanismo ideal seria aquele que transformasse um programa seqüencial em paralelo, requerendo um mínimo de esforço [Pasin, 2000]. Na grande maioria dos estudos, apresenta-se a programação paralela como solução para aumentos de desempenho sem altos custos. Porém, sabe-se que a efetiva utilização das máquinas de processamento paralelo apresentam uma dificuldade de programação maior que a encontrada nas máquinas seqüenciais [Padoin, 2001]. Tais equipamentos paralelos possuem uma complexidade superior e obrigam o programador tratar de algumas características não existentes na programação seqüencial. Dentre elas, destacam-se a análise 1 sistemas de equações lineares algébricos

de granularidade de tarefas, que está relacionada com paralelismo e distribuição da carga computacional e do controle e manipulação de dados. A seguir são mostrados o algoritmo sequencial e a versão paralela, o ambiente de execução utilizado e a análise dos resultados obtidos. 2. Descrição do Algoritmo Seqüencial A aplicação, transformações de Householder (método de reflexão), utilizada na paralelização apresentada neste artigo, pode ser definida da seguinte forma: Considere um vetor-coluna unitário w R n e uma matriz U=I-2ww T chama-se transformação de Householder a matriz de reflexão. É fácil de demonstrar que U é ortogonal, simétrica e que w é um autovetor desta matriz associado com autovalor λ= 1. Denotando as colunas de matriz A por a i, aplicando a transformação de Householder para a matriz aumentada B: UB=U[A b]=(ua 1 Ua 2...Ua i... Ua n Ub). Pode escolher um vetor w em subespaço V R n com dim(v)=2 formado pelos a 1 e o vetor unitário e 1 =(1, 0, 0,..., 0,..., 0) T de modo para que a vetor-coluna Ua 1 tenha somente um componente não nulo, isto é: Ua 1 = a 1. e 1 = ( a 1, 0, 0,..., 0,..., 0) T. O vetor w que apresenta a direção de uma reta-bissetriz entre os vetores a 1 e e 1 caso a 11 à esta direção caso a 11 <0) foi calculado pela fórmula: w=(a1+sign(a11) a1.e1)/ a1+sign(a11) a1.e1 ; Então, a matriz B 1 : B 1 = UB=U[A b]=(ua 1 Ua 2...Ua i... Ua n Ub) =( a 1. e 1 Ua 2...Ua i... Ua n Ub ) possui a primeira coluna com todos os elementos sub-diagonais nulos. Aplicando o mesmo procedimento para sub-matrizes B k =(b ij ), k!#"$ (k=2, 3,..., n-1) a matriz B seria transformada na forma triangular superior. Caso realizarmos QR decomposição, a matriz ortogonal Q pode ser obtida multiplicando as matrizes ortogonais intermediárias: T I n 1 0 I 2 0 I1 0 Q U n U U n U =... 0 1 0 2 0 n 1 onde U n =U, I é matriz-identidade. O índice inferior corresponde à ordem de matriz. Neste trabalho as transformações de Householder foram usadas somente para resolução de SELA. Para ampliar a capacidade do aplicativo de resolver os sistemas de ordem maior utilizando somente memória operacional, o algoritmo de multiplicação da matriz U pela matriz aumentada B foi transformado da seguinte forma: UB=(I-2w. w T )B=B-2w(w T B)

Isto permitiu operar somente com uma matriz, calculando inicialmente o vetor-linha w T B e subtraindo os elementos do produto dos vetores w e w T B dos elementos da matriz B diretamente sem formação de matriz intermediária. Em resumo, o algoritmo seqüêncial pode ser definido da seguinte maneira: para ( i =1 até ordem 1) faça w=(ai- Ai *e)/( Ai- Ai *e ) wtb = wt * B B = B-2 * w wtb calcula vetor X Figura 1 : Algoritmo seqüencial Para avaliar o método de Householder seqüencial, foram escolhidas 3 matrizes de ordem 512, 1024 e 2048. Utilizando a arquitetura descrita na seção 4, obteve-se os respectivos tempos: 8,74, 66.70 e 589.56 segundos. O algoritmo consiste em um grande conjunto de tarefas de integração numérica significativamente independentes. Sua paralelização é um problema de seqüenciamento, que consiste em alocar n tarefas a m processadores paralelos idênticos, que será efetuado baseado na utilização de bibliotecas para troca de mensagens no sentido de aumentar a eficiência dos algoritmos[padoin, 2001]. 3. Algoritmo Paralelo Durante o processo de paralelização foram exploradas diferentes formas para se alcançar a melhor performance sendo apresentado neste trabalho a melhor solução encontrada até então. A Transformação de Householder pode ser perfeitamente utilizada como objeto de estudo por apresentar um grande volume de processamento com elevado tempo de computação, ou seja, a aplicação é de alto custo computacional, além de apresentar uma forte iteração durante o processamento. Na implementação paralela do algoritmo utilizou-se uma programação do tipo mestreescravo, pretendendo escalonar o trabalhos entre os diversos nodos da máquina virtual. A seguir são descritas as tarefas desempenhadas pelo nodo mestre e pelos nodos escravos. Nodo-mestre O mestre divide as linhas da matriz B e as envia para os nodos-escravos iniciarem o processamento em paralelo. O programa entra num laço que começa com i=1 e termina em (ordem inicial do sistema-1). Neste laço, o mestre espera que cada trabalhador envie a sua parte da coluna i. Após receber de todos, calcula o vetor w (w=(ai- Ai *e)/( Ai- Ai *e )) e envia o vetor w para todos os trabalhadores. O próximo passo é aguardar que todos os trabalhadores enviem o resultado parcial do vetor wtb. Cada vetor que chega é somado com o anterior até que o resultado final de wtb seja encontrado. Esse vetor é então transmitido para todos os trabalhadores. Após o término do laço o mestre recebe do primeiro trabalhador o vetor x contendo a resposta.

Nodos escravos O trabalhador recebe as linhas da matriz B com as quais vai trabalhar e entra no laço que começa com i=1 e termina em (ordem inicial do sistema-1). O escravo manda para o mestre a sua parte da coluna i e espera o vetor w do mestre. O próximo passo é calcular o resultado parcial do vetor wtb (wtb=wt*b) e enviar esse resultado para o mestre. O trabalhador recebe o resultado final de wtb e aplica a transformação em B, B=B-2*w*wtB. Após cada iteração do laço a coluna i e a linha i são desconsideradas para próxima iteração e a ordem do sistema diminui até que na última iteração a ordem do sistema é igual a 2. Se durante o laço todas as linhas de um determinado trabalhador são desconsideradas este trabalhador é desativado deixando o cálculo para os trabalhadores restantes. Isto torna o algoritmo dinâmico pois para um grande sistema é interessante um grande número de trabalhadores mas a medida que o sistema diminui, muitos trabalhadores degradam a performance devido a intensa troca de mensagens na rede. Pelo fato do algoritmo ir desativando os trabalhadores durante o processo enquanto a ordem do sistema diminui, esse problema é minimizado. Ao fim do laço, se o trabalhador não é aquele que recebeu as últimas linhas do sistema ele espera o resultado do vetor x referente aos próximos trabalhadores. Cada trabalhador então calcula a sua parte do vetor. O algoritmo automaticamente diminui a quantidade de processos na medida que o sistema vai diminuindo, já que a cada iteração a ordem da matriz B diminui. Ao final, apenas os resultados são passados de processo para processo, num modelo em pipeline [AndrewsG, 2000], sem que haja necessidade de que um único, conheça toda a matriz. 4. Ambiente de Execução Paralela e Resultados Obtidos Para a execução da aplicação foi criada uma máquina virtual paralela com os computadores do Laboratório de Ciência da Computação da UNICRUZ Universidade de Cruz Alta. Este composto de 20 PCs que encontravam-se integralmente dedicados a execução da aplicação no momento dos testes. Cada nodo possui processador Athlon de 1.6 Ghz e 128 MB de RAM rodando Sistema Operacional GNU/Linux-Red Hat Linux 6.2, versão kernel 2.2.14-5.0, com a linguagem de programação C compilador GCC, e conectados através de uma rede Fast Ethernet (100 base T). Também foi necessária a utilização de uma biblioteca que fornecesse suporte ao paralelismo no sistema operacional, com o intuito de realizar a comunicação entre os nós do aglomerado e criação da máquina virtual, para tanto utilizou-se a biblioteca PVM 2 [Beguelin, 1991]. O gráfico 1 apresenta o tempo de execução do algoritmo paralelo para as matrizes de ordem 512, 1024 e 2048. 2 Parallel Virtual Machine

tempo(segundos) 700 600 500 400 300 200 100 2048x2048 1024x1024 512x512-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 nº de processadores Gráfico 1 : Tempos de Execução Paralela Analisando tais resultados, pode-se observar que na execução seqüencial do método para uma matriz de ordem 2048 transcorre 589 segundos. Com o método paralelo desenvolvido, rodando em 6 nodos (onde se alcançou o melhor desempenho), reduziu-se o tempo para 111 segundos, menos da metade do tempo seqüencial. Com base em tais resultados conseguiu-se um speed-up de 5,30, o que representa uma eficiência de 53%. 5. Conclusões e perspectivas Apresentou-se neste trabalho os resultados da paralelização das transformações de Householder para solução de sistemas de equações lineares algébricas usando PVM em cluster de PC. Foi mostrado que as acelerações dos algoritmos paralelos têm pontos de máximo em função do número de processadores, estes que dependem da ordem do sistema a ser resolvido. Implementou-se um modelo paralelo das transformações de Householder que reduz o número de troca de mensagens alcançando-se assim um bom equilíbrio de cargas entre os processos. Nesse modelo, os resultados parciais são mantidos em cada processador, ao passo que, no final, são repassados até chegarem no primeiro processador. Com este novo método paralelo pode-se utilizar um número variável de nodos da máquina virtual paralela e também explorar matrizes de grande porte, devido ao fato que apenas uma parte da matriz é alocada na memória de cada nodo. Outra vantagem do código paralelo, é que quando um nodo conclui o seu processamento, ele permanece inativo, isto é, nâo se envolvendo nas trocas de mensagens, o que diminui o overhead de comunicações. Os resultados da paralelização das transformações de Householder apresentados neste trabalho mostram a boa eficiência já alcançada neste método. Porém, para resolução de sistemas de equações lineares algébricos são utilizados principalmente os métodos de Householder e Givens. O método de Givens já foi estudo e atualmente está sendo trabalhado na sua versão paralela.

Referências [Andrews, 2000] Andrews, G., Foundations of Multithread, Parallel, and Distributed Programming. Adisson Wesley, 2000. [Beguelin, 1991] Beguelin, A., Dongarra, J.J., Geist, G.A., Manchek, R., Sunderam, V.S., A Users Guide to PVM parallel virtual machine, ORNL/TM11826, 1991. [Egecioglu, 1995] Egecioglu Ö., Srinivasan, A., Givens and Householder Reductions for Linear Least Squares on a Cluster of Workstation, Proc. Int. Conf. on High Performance Computing (HiPC), New Delhi, pp. 734-739, 1995 [Horn, 1986] Horn R.A., Johnson, C. R. Matrix Analysis, Cambridge University Press, 1986 [Khatchatourian, 1995] Khatchatourian, O., Borges P.A., Métodos Numéricos da Álgebra. Ed. UNIJUÍ, 1995. [Ortega, 1988] Ortega, J. M., Introduction to Parallel and Vector Solution of Linear Systems, Plenum Press, New York, 1988. [Padoin, 2001] PADOIN, Edson Luiz. Estudo da paralelização de aplicações com alto custo computacional utilizando sistemas distribuídos Dissertação(Mestrado em PPGEP) - UFSM - Universidade Federal de Santa Maria, Santa Maria, 2001. [Pasin, 2000] PASIN, Marcelo. Processamanto paralelo com clusters. In VIII ESCOLA INFORMÁTICA DA SBC-SUL; Anais ERI 2000, Ijuí, Foz do Iguaçu,Tubarão, 2000.