pontifícia universidade católica do rio grande do sul ... · a solução dos algoritmos diretos...

34
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Pós-Graduação em Ciência da Computação Uma Comparação de Solvers Paralelos Verificados para Resolução de SELAS Intervalares em Clusters: Desempenho, Exatidão e Consumo de Energia Viviane Linck Lara Orientador: Luiz Gustavo Fernandes Plano de Estudo e Pesquisa Porto Alegre, fevereiro de 2012

Upload: vuongnhi

Post on 04-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Pontifícia Universidade Católica do RioGrande do Sul

Faculdade de InformáticaPós-Graduação em Ciência da Computação

Uma Comparação de Solvers Paralelos Verificadospara Resolução de SELAS Intervalares em Clusters:

Desempenho, Exatidão e Consumo de Energia

Viviane Linck Lara

Orientador: Luiz Gustavo Fernandes

Plano de Estudo e Pesquisa

Porto Alegre, fevereiro de 2012

Page 2: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Lista de Figuras

3.1 Arquitetura típica de um cluster com múltiplos computadores.Adaptado de [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Quantidade de arquiteturas do TOP500 relacionados à data . . . . 16

1

Page 3: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Lista de Tabelas

2.1 Tipos de Dados do C-XSC . . . . . . . . . . . . . . . . . . . . . 102.2 Relação entre operadores especiais e os tipos de dados do C-XSC.

Adaptado de [2] . . . . . . . . . . . . . . . . . . . . . . . . . . 11

6.1 Cronograma de Atividades . . . . . . . . . . . . . . . . . . . . . 28

2

Page 4: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Lista de Símbolos e Abreviaturas

SELAs Sistemas de Equações Lineares Algébricas 6BLAS Basic Linear Algebra Subprograms 6LAPACK Linear Algebra PACKage 6ScaLAPACK Scalable Linear Algebra PACKage 6MIMD Multiple Instruction Streams Multiple Data Streams 13MPP Massively Parallel Processors 13SMP Symmetric Multiprocessors 13PVP Parallel Vector Processing 14NOW Network of Workstations 14COW Cluster of Workstations 14SSI Single System Image 14OS Sistema Operacional 14BLAS Basic Linear Algebra Subprograms 17BLACS Basic Linear Algebra Communication Subprograms 17PBLAS Parallel Basic Linear Algebra Subprograms 17LAPACK Linear Algebra PACKage 18ScaLAPACK Scalable Linear Algebra PACKage 18PLASMA Parallel Linear Algebra for Scalable Multi-core Architec-

tures18

API Application Programming Interface 21FastPILLS Fast parallel verified linear (interval) system solvers 22GMAP Grupo de Modelagem de Aplicações Paralelas 26

3

Page 5: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Sumário

LISTA DE FIGURAS 1

LISTA DE TABELAS 2

LISTA DE SÍMBOLOS E ABREVIATURAS 3

Capítulo 1: Introdução 6

Capítulo 2: Fundamentação Matemática 82.1 Sistemas de Equações Lineares Algébricas . . . . . . . . . . . . . 82.2 Computação Verificada . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.1 C-XSC . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Capítulo 3: Arquiteturas de memória distribuída 133.1 Classificação das arquiteturas de paralelas . . . . . . . . . . . . . 133.2 Clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.1 Troca de mensagens . . . . . . . . . . . . . . . . . . . . 163.3 Programação Numérica de Alto Desempenho . . . . . . . . . . . 17

3.3.1 BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.3.2 LINPACK, LAPACK e ScaLAPACK . . . . . . . . . . . 183.3.3 PLASMA . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Capítulo 4: Computação Verde 194.1 Consumo de Energia . . . . . . . . . . . . . . . . . . . . . . . . 20

4

Page 6: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Capítulo 5: Solvers 225.1 FastPILSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.2 Parallel Self-Verified Solver for Dense Linear Systems . . . . . . 24

Capítulo 6: Proposta para a Dissertação de Mestrado 266.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276.4 Cronograma de Atividades . . . . . . . . . . . . . . . . . . . . . 28

5

Page 7: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

1 Introdução

A resolução de SELAs (Sistemas de Equações Lineares Algébricas) é importanteem diversas áreas, como por exemplo, na Engenharia e Física [3]. Evidentemente,só se torna viável a resolução de SELAs de grande porte quando ferramentas com-putacionais são utilizadas e, em alguns casos, a Computação de Alto Desempenhoé necessária dada a complexidade e o grande custo computacional destes sistemas[4]. Os clusters, devido às suas características e vantagens, são os sistemas maisutilizados para prover a Computação de Alto Desempenho. Em função disso,existem bibliotecas voltadas à programação numérica de Alto Desempenho, es-pecíficas para clusters por exemplo, BLAS (Basic Linear Algebra Subprograms)[5], LAPACK (Linear Algebra PACKage) [6], ScaLAPACK (Scalable LinearAlgebra PACKage) [7], entre outras.

Porém, de acordo com Hammer [2], resultados de certas computações emponto flutuante não são representados corretamente devido a erros de arredon-damentos causados pelas operações realizadas nestas ferramentas que não podemrepresentar certos números em ponto flutuante. Para contornar o erro, a Computa-ção Verificada é importante, pois ela garante o rigor matemático de um resultadode uma computação, fornecendo um intervalo que, certamente, contém o resultadoexato [8].

Diversos trabalhos abordam a resolução verificada de Sistemas Lineares. Háestudos voltados para arquiteturas de memória compartilhada, como o trabalho deMilani [4] que apresenta uma ferramenta para resolução verificada de SistemasLineares Densos Intervalares de Grande Porte voltado para máquinas multicore.Também há trabalhos voltados para arquiteturas de memória não compartilhada,tais como o trabalho de Zimmer [9], que apresenta um solver verificado para aresolução de SELAs utilizando os tipos de variáveis da biblioteca C-XSC [10] e otrabalho de Kolberg [11], que expõe um outro tipo de solver auto-verificado paraSistemas Lineares Densos.

No trabalho de Milani [4], além de prover verificação automática dos resulta-dos, a ferramenta é otimizada para execução em arquiteturas multicore. O solverproposto foi construído com base no Método de Newton. A implementação detal método se baseia na Aritmética Intervalar de Ponto-Médio e Raio. Como re-

6

Page 8: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

sultado, o algoritmo gera um vetor em que cada elemento é um intervalo o qualcontém o resultado correto. Tais intervalos são de máxima exatidão.

A proposta de Zimmer [9] tem o objetivo de calcular o resultado verificado deum Sistema Linear. Desta forma, foram utilizados os tipos de variáveis da bibli-oteca C-XSC, possibilitando assim, resultados com exatidão. O solver é baseadono algoritmo descrito por Rump [12]. O trabalho desenvolvido por Kolberg [11]tem como o objetivo a resolução de sistemas lineares densos pontuais e interva-lares. Esta ferramenta é baseada em um método de resolução de sistemas densosverificado usando arredondamentos direcionados e Aritmética Intervalar. O algo-ritmo utilizado para a resolução é baseado no método de Rump [13] com algumasmodificações relativas a mudança do modo de arredondamento e nas otimizaçõesdo resíduo.

A proposta deste trabalho consiste em comparar estes dois solvers analisandoprincipalmente o desempenho, exatidão, pois, quanto mais exato for o resultadode uma solução mais confiável é este solver. O consumo de energia dos solverstambém será analisado devido a preocupação atual em sustentabilidade energéticao que torna a eficiência energética de uma implementação relevante para questõesatuais e para o Meio Ambiente. Para medir o consumo de energia dos solvers seránecessário avaliar modelos de consumo de energia e desenvolver um modelo parao cálculo de consumo de energia e eficiência energética em clusters, analisandotodos os nós da máquina.

Além desta introdução, este trabalho está estruturado em seis capítulos: oCapítulo 2 apresenta um breve levantamento da Fundamentação Matemática, en-globando Sistemas de Equações Lineares e Computação Verificada que serão re-levantes para o introdução desta proposta; no Capítulo 3 discute-se brevemente asclassificações das arquiteturas de computador e suas características, em seguida,aborda a programação para Arquiteturas de Alto Desempenho introduzindo clus-ters que devido aos seus benefícios são populares mundialmente e foram escolhi-dos para a realização dos testes; o Capítulo 4 introduz Computação Verde e fatoresque permitem a avaliação do consumo energético de um Sistema computacional;o Capítulo 5 apresenta os solvers verificados para Sistemas Lineares de Zimmer[9] e de Kolberg [11] que serão analisados; por fim, o Capítulo 6 expõe a propostade pesquisa deste trabalho, bem como a motivação, o desafio, os objetivos e ocronograma de atividades.

7

Page 9: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

2 Fundamentação Matemática

Este capítulo apresenta a fundamentação matemática necessária para a realizaçãoe compreensão do projeto de pesquisa abordando Sistemas de Equações LinearesAlgébricas e Computação Verificada.

2.1 Sistemas de Equações Lineares AlgébricasEquações Lineares podem ser encontradas em inúmeras aplicações, tais como, de-senho da asa de um avião, radar de estudos transversais, difusão de corpos sólidosem líquidos, redução de ruído, difusão da luz através de pequenas partículas, entreoutras [14].

Sistemas lineares podem ser representados pela fórmula:

Ax = b

Onde A é a matriz dos coeficientes, x é o vetor das incógnitas e b o vetor dostermos independentes. Quando os componentes da matriz dos coeficientes sãoem maioria não nulos, ou seja, a maioria dos valores da matriz não é zero, esteSistema Linear é considerado um Sistema Linear Denso.

Existem dois tipos de métodos usados no cálculo numérico de SELAs: os mé-todos (algoritmos) diretos e os métodos (algoritmos) iterativos. Um método diretoobtém a solução exata x realizando um número finito de operações aritméticas emprecisão infinita. O método de Gauss e o método de Cramer são exemplos demétodos diretos. Um método iterativo obtém uma solução x como limite de umasequência de aproximações sucessivas com a finalidade de aproximar a solução. Ométodo de Jacobi e o método de Gauss-Seidel são exemplos de métodos iterativos[3][4].

Quando esse sistema é resolvido usando computadores, muitos erros de arre-dondamento podem ocorrer durante a computação. Tanto na resolução de sistemasutilizando os métodos diretos ou iterativos mesmo que bem condicionados podemlevar a resultados completamente errados, e esse efeito pode ser pior para matri-zes mal condicionadas [11]. Quanto maior o número de condição de uma matriz,

8

Page 10: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

mais mal-condicionada ela será. Sendo uma matriz A, o seu número de condiçãoé obtido através do cálculo do produto da norma de A pela norma de sua inversa.

A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela soma do erro de entrada com o erro de arit-mética. O erro de entrada consiste no erro resultante da representação do SELAem sistema de ponto flutuante da máquina. Já a solução dos algoritmos iterativosalém de manter os dois erros dos métodos diretos há ainda o erro da discretiza-ção somado. Este erro de discretização é causado pelo truncamento da sequênciainfinita de repetições após um número finito de iterações [3].

2.2 Computação VerificadaResultados de certas computações em ponto flutuante, em alguns casos, não sãorepresentados corretamente devido a arredondamentos causados pela impossibi-lidade do hardware de gerar certos números em sistema de ponto flutuante. Nosúltimos anos, técnicas de análise numérica têm sido desenvolvidas para tornarpossível o computador por conta própria verificar a corretude dos resultados com-putados em inúmeros problemas e aplicações [2].

A Computação Verificada garante o rigor matemático de um resultado de umacomputação fornecendo um intervalo que, certamente, contém o resultado exato,que é chamado de enclosure [8][11]. Para garantir essa verificação, existem al-guns métodos chamados de métodos auto-validados. De acordo com Rump [12],o objetivo destes métodos são: produzir resultados rigorosos, resolver o problemasem que o custo computacional seja maior do que o dos algoritmos puramentenuméricos e incluir a prova da existência (possivelmente singularidade) de umasolução. Uma maneira de produzir resultados rigorosos é a utilização da Aritmé-tica Intervalar para representar estes resultados.

A Aritmética Intervalar é uma aritmética definida para intervalos, ao invés denúmeros reais. O propósito da Aritmética Intervalar é controlar o erro de arre-dondamento, apesar de não o eliminar. Se a Aritmética Intervalar for utilizada emconjunto com os arredondamentos diretos limita ainda mais estes erros [4].

A técnica de Computação Verificada substitui qualquer operação real pela in-tervalar equivalente e efetua a computação utilizando a Aritmética Intervalar. Estatécnica produz resultados verificados confiáveis. Entretanto, em alguns casos odiâmetro do enclosure pode ser tão grande a ponto de ser praticamente inútil.Portanto, métodos mais sofisticados que combinam os benefícios da AritméticaIntervalar com mecanismos de refinamento já computados são necessários. Alémdisso, o algoritmo em geral conseguirá encontrar o enclosure da solução, mas sea solução não for encontrada, o algoritmo deve permitir que o usuário saiba [15].

A abordagem básica de muitos métodos auto-validados é o cálculo de uma

9

Page 11: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

solução aproximada, linearização local e estimativa de linearização e erros nu-méricos por meio de teoremas adequados às hipóteses que são verificadas pelocomputador [12]. Um mecanismo simples para esta abordagem é o princípio dorefinamento iterativo. Depois de calcular a primeira aproximação, o erro é limi-tado utilizando Aritmética Intervalar. Se o diâmetro do erro intervalar é menor quea precisão desejada, então o enclosure verificado da solução é dado pela soma daaproximação com o enclosure do seu erro. Caso contrário, a aproximação deve serrefinada adicionando o ponto médio do erro intervalar e, então, repetir o processo[2].

Uma operação em ponto flutuante é dita de máxima exatidão quando o resul-tado arredondado difere do resultado exato em no máximo uma unidade na últimacasa decimal. Essa diferença entre o resultado exato e o arredondado é dita errode arredondamento [16].

2.2.1 C-XSCA biblioteca C-XSC (do inglês C for eXtended Scientific Computation) [10] foielaborada em C++ e é direcionada ao desenvolvimento de algoritmos que neces-sitam de resultados em alta exatidão, pois possibilita trabalhar com tipos de dadosde alta precisão e com verificação de resultados [2].

Esta biblioteca trabalha com classes que implementam vários tipos de dadosnuméricos que foram desenvolvidos para o trabalho com valores em alta exatidãoe com intervalos de dados, pois os tipos de dados convencionais não suportamestes tipos de dados como, por exemplo, o tipo de dado interval (intervalo dereais), complex (número complexo) e cinterval (intervalos complexos) [16]. Combase nestes tipos de dados o C-XSC possui tipos de dados especiais para matrizese vetores apresentados na Tabela 2.1 com sua descrição.

Tabela 2.1: Tipos de Dados do C-XSC

Tipo de Dado Descriçãorvector vetor de números reaisivector vetor de números reais em intervaloscvector vetor de números complexoscivector vetor de números reais em intervalos complexosrmatrix matriz de números reaisimatrix matriz de números intervaloscmatrix matriz de números complexoscimatrix matriz de números reais em intervalos complexos

10

Page 12: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Para estes tipos de dados também foram desenvolvidos operadores especiais.O C-XSC utiliza a sobrecarga de operadores para implementar métodos especí-ficos e, desta forma, possibilita que as operações matemáticas entre as matrizese vetores sejam realizadas de forma simplificada quando possível. Por exemplo,o Algoritmo 1 apresenta multiplicação convencional de duas matrizes A e B detamanho N em linguagem C++.

Algoritmo 1: Algoritmo básico de multiplicação de matrizespara i=0 ate N faça

para j=0 ate N façapara k=0 ate N faça

C[i, j] += A[i, k] * B[k, j];fim para

fim parafim para

A sobrecarga de operadores torna possível multiplicar duas matrizes sendo A,B e C variáveis do tipo rmatrix utilizando o operador de multiplicação conformea expressão abaixo:

C = A ∗ B

A Tabela 2.2 apresenta os operadores especiais disponíveis para as operaçõesmatemáticas entre os tipos de dados do C-XSC.

Tabela 2.2: Relação entre operadores especiais e os tipos de dados do C-XSC.Adaptado de [2]

integerrealcomplex

intervalcinterval

rvectorcvector

ivectorcivector

rmatrixcmatrix

imatrixcimatrix

integerrealcomplex

+,-,*,/,| +,-,*,/,| * * * *

intervalcinterval

+,-,*,/,| +,-,*,/,|,&

* * * *

rvectorcvector

*,/ *,/ +,-,*,/,| +,-,*,/,|

ivectorcivector

*,/ *,/ +,-,*,/,| +,-,*,/,|,&

rmatrixcmatrix

*,/ *,/ * * +,-,*,/,| +,-,*,/,|

imatrixcimatrix

*,/ *,/ * * +,-,*,/,| +,-,*,/,|,&

|: Envoltório Convexo &: Intersecção

11

Page 13: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Por exemplo, com base na Tabela 2.2 pode-se analisar que as operações espe-ciais de soma, subtração, multiplicação, divisão e envoltório convexo (do inglêsconvex hull) estão disponíveis para uma operação entre duas variáveis do tiporvector.

Além dos tipos de dados descritos na Tabela 2.1, o C-XSC possui variáveisde alta precisão, tais como: dotprecision, cdotprecision, idotprecision e cidotpre-cision. Estes acumuladores de alta precisão podem armazenar resultados de umaexpressão sem erro de arredondamento.

12

Page 14: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

3 Arquiteturas de memóriadistribuída

Conhecer as características da arquitetura no momento de desenvolver um algo-ritmo paralelo é extremamente importante para melhorar a eficiência deste al-goritmo, pois assim o programa paralelo pode aproveitar melhor os recursos dehardware disponibilizados pela máquina paralela. Este capítulo apresenta a clas-sificação das arquiteturas paralelas, explica clusters e introduz bibliotecas quepermitem a programação numérica de Alto Desempenho.

3.1 Classificação das arquiteturas de paralelasAs arquiteturas de memória distribuída são uma subdivisão da categoria MIMD(Multiple Instruction Streams Multiple Data Streams) que abriga a maioria das

máquinas paralelas da classificação de máquinas criada por Michael Flynn [17].Esta categoria pode ser dividida em duas subcategorias de acordo com o acesso àmemória. Enquanto nos multiprocessadores os processadores acessam a memóriade maneira compartilhada, nos multicomputadores cada processador possui a suamemória que não é compartilhada, ou seja, a memória é privada e, desta forma, atroca informações é realizada através de troca de mensagens [18], que será abor-dada na Subseção 3.2.1.

Entre outras classificações há a classificação utilizada comercialmente. Estaclassificação possui seis categorias:

• MPP - Massively Parallel Processors: constitui multicomputadores conec-tados por uma rede proprietária de alta velocidade. A proposta é: alcançaro alto desempenho utilizando um grande número de processadores [18].

• SMP - Symmetric Multiprocessors: constitui sistemas de processadorescomerciais conectados a uma memória compartilhada e, geralmente pos-suem um barramento de alta velocidade [18]. Como o nome indica é cons-tituído de muitos processadores.

13

Page 15: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

• PVP - Parallel Vector Processing: como o nome indica é constituído deprocessadores vetoriais poderosos, porém pouca quantidade. Outra caracte-rística dos processadores vetoriais paralelos é a rede de interconexão que éde alta vazão [18].

• NOW - Network of Workstations: possui várias estações de trabalho inter-ligadas por uma rede tradicional [18].

• COW - Cluster of Workstations: Também conhecido apenas como cluster,podem ser vistos como uma evolução dos sistemas NOW, pois também éconstituído de várias estações de trabalho. A diferença é que os clusters sãoprojetados com o objetivo de executar aplicações paralelas [18].

• Constellations: De acordo com [19] constellations distinguem-se de clusterpela quantidade de processadores em um nó e é definido como constellati-ons quando esta quantidade é maior do que o número de nós.

As arquiteturas consideradas nesta proposta pertencem a categoria MIMD ea subcategoria dos multicomputadores, onde, de acordo com a classificação co-mercial o foco está voltado aos clusters que serão melhor apresentados na Seção3.2.

3.2 ClustersEvolução dos sistemas NOW. A diferença é que os clusters são projetados como objetivo de executar aplicações paralelas. E em consequência a máquina podeser aperfeiçoada para esta finalidade [18]. De acordo com [1], cluster é numa co-leção de computadores completos (nodos), que estão fisicamente interconectadospor uma rede de alto desempenho ou uma rede local. Tipicamente, cada nodoé um servidor SMP, ou uma estação de trabalho, ou um computador pessoal. Orelevante é que todos os nodos devem estar habilitados a trabalhar coletivamentecomo uma única máquina.

A Figura 3.1 apresenta a arquitetura típica de um cluster com múltiplos com-putadores. Onde há a camada do ambiente de programação e aplicações, a camadado SSI (Single System Image) que no conceito de imagem única refere-se à formacomo o usuário percebe a máquina paralela como um todo [18]. Cada nodo docluster é um computador completo. Ou seja, cada nodo tem o(s) seu(s) processa-dor(es), cache, memória, disco, e adaptadores de entrada e saída. Além do mais,possuem um completo SO (Sistema Operacional) padrão.

Os conceitos de cluster trazem muitos benefícios, bem como desafios. Entreestes os mais importantes são usabilidade, disponibilidade, escalabilidade, dis-ponibilidade de utilização e bom custo/benefício [1]. Graças aos benefícios dos

14

Page 16: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Figura 3.1: Arquitetura típica de um cluster com múltiplos computadores. Adap-tado de [1]

clusters eles se popularizaram. Pode-se observar a popularização dos clustersanalisando a lista do TOP500 [20]. Esta lista surgiu em 1993 com o objetivo declassificar os supercomputadores e uma vez a cada semestre divulga uma listados 500 supercomputadores de melhor desempenho do mundo. Analisando a listapode-se ter um histórico das arquiteturas que estavam em voga de 1993 até os diasde hoje. A Figura 3.2 apresenta um gráfico da quantidade de arquiteturas por datade divulgação do TOP500.

No decorrer destes dezoito anos de TOP500 ocorreram grandes transforma-ções nos tipos de supercomputadores que pertenceram a lista. Observando aFigura 3.2 que contém um gráfico modelado com base em dados retirados doTOP500 [20] foi possível analisar em um contexto histórico estas transformações.

A primeira lista de junho de 1993 continha supercomputadores com apenas umprocessador, SMP, SIMD e MPP. Estes permaneceram dominando até que, no finalde 1995, surgiram as primeiras máquinas do tipo constellations. O aparecimentofoi alterando o foco de construção de máquinas de alto desempenho. Logo depois,no final de 1996, surgiram os clusters na lista e, em decorrência, no início do anode 1997 as máquinas de um processador (Single Processor) foram extinguidas dalista. No final do mesmo ano os supercomputadores do tipo SIMD também saíramda lista. Com a percepção das características vantajosas dos supercomputares dotipo cluster, a quantidade destas máquinas foi crescendo gradativamente até queatualmente dominam a lista em quantidade e atingem a porcentagem de máquinasde aproximadamente 82%.

Para aproveitar melhor os recursos do cluster na hora desenvolver um pro-grama paralelo é necessário observar as suas características para escolher qualparadigma deverá ser utilizado. Atualmente existem dois paradigmas utilizadospara implementar programas em paralelos: troca de mensagens e multithreading.O paradigma multithreading é muito utilizado com variáveis compartilhadas, e o

15

Page 17: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Figura 3.2: Quantidade de arquiteturas do TOP500 relacionados à data

paradigma de troca de mensagens com memória distribuída. Como visto nestaseção o cluster possui memória distribuída e não compartilha memória entre osnodos. Consequentemente o paradigma de programação paralela que se ajustaé o paradigma de troca de mensagens que será melhor abordado na Seção 3.2.1seguinte.

3.2.1 Troca de mensagensEste modelo é baseado na abstração da computação paralela com espaço de acessoà memória distribuída, onde cada processador tem sua memória local com acessoexclusivo. Não há memória global. A troca de dados deve ser realizada por trocade mensagens [21]. O paradigma de troca de mensagens requer que o parale-

16

Page 18: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

lismo seja codificado explicitamente pelo programador. Ou seja, o programadoré responsável por analisar o algoritmo serial e identificar formas que ele podedecompor a computação e extrair a concorrência. Consequentemente, programarutilizando este paradigma tende a ser difícil. Entretanto, programas bem escritosmuitas vezes podem atingir um alto desempenho e ser possível escalar para umgrande número de processos [22].

Existem algumas bibliotecas para a comunicação paralela por trocas de men-sagens, entre elas a mais conhecida e utilizada é a MPI (Message Passing Inter-face)[23] que é um padrão para a troca de mensagens em computação paralela.Este padrão foi elaborado para se obter máximo desempenho em máquinas mas-sivamente paralelas e em clusters. Suporta implementação em C, C++ e Fortran,além de ser portável, pois pode ser utilizado em vários tipos de arquiteturas. Abiblioteca MPI utiliza a comunicação ponto a ponto para a troca de dados onde,dois processos participam dessa operação de comunicação. Um processo executauma operação de envio e outro processo de recebimento [21].

3.3 Programação Numérica de Alto DesempenhoDiversos algoritmos e softwares para resolução de problemas da Álgebra Linearforam desenvolvidos focando o alto desempenho. Esta seção apresenta breve-mente alguns destes algoritmos e softwares, tais como, a biblioteca BLAS, ospacotes LAPACK, LINPACK, ScaLAPACK e PLASMA.

3.3.1 BLASA biblioteca BLAS (Basic Linear Algebra Subprograms) [5] contém rotinas queauxiliam nas realizações de operações básicas de matrizes e vetores. O nível 1da BLAS trabalha com operações de escalares e vetores, o nível 2 opera comoperações entre matrizes e vetores e o nível 3 trabalha com operações entre ma-trizes. A biblioteca BLAS é disponibilizada livremente e pode ser incorporadaem softwares comerciais. Além da BLAS, há a BLACS (Basic Linear AlgebraCommunication Subprograms) [24] uma interface de Álgebra Linear orientadaao paradigma de troca de mensagens com intuito de ser implementada de formaeficiente e uniformemente em uma ampla gama de plataformas de memória distri-buída. O pacote BLACS existe para fazer aplicações de Álgebra Linear tanto maisfácil de programar como mais portátil. É por esta razão que ele foi utilizado comoa camada de comunicação da ScaLAPACK. Também existe uma versão paralelapara multicomputadores, a PBLAS (Parallel Basic Linear Algebra Subprograms)[25], ela foi desenvolvidada com base na versão sequencial da BLAS e a bibliotecaBLACS [4].

17

Page 19: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

3.3.2 LINPACK, LAPACK e ScaLAPACKCom o desenvolvimento e popularização da BLAS novos pacotes como a LIN-PACK [26], LAPACK (Linear Algebra PACKage) [6] e ScaLAPACK (ScalableLinear Algebra PACKage) [7] foram implementados com base nas rotinas destabiblioteca. LINPACK é uma coleção de subrotinas em Fortran que exploram onível 1 da BLAS para analisar e resolver equações lineares. LINPACK usa algo-ritmos orientados a coluna para aumentar a eficiência, preservando localidade dereferência. Já o pacote LAPACK pode ser considerado o sucessor da LINPACK.Ele tem praticamente todas as capacidades da LINPACK e outras novas. LAPACKé melhor que a LINPACK em quatro aspectos principais: velocidade, precisão,robustez e funcionalidade. Foi projetada para explorar o nível 3 da BLAS. Porcausa da granularidade grossa das operações deste nível, seu uso tende a promo-ver a eficiência elevada em muitos computadores de alto desempenho [14]. Aocontrário da LINPACK que utiliza algoritmos orientados a coluna a LAPACK usaalgoritmos que executam as operações de matrizes nos blocos mais internos. LA-PACK foi projetado para ter alta eficiência em processadores vetoriais, estaçõesde trabalho super escalares de alto desempenho e multiprocessadores de memóriacompartilhada. Por conseguinte surgiu o pacote ScaLAPACK destinado a adap-tar a LAPACK para outras arquiteturas como as máquinas massivamente parale-las SIMD ou máquinas de memória distribuída MIMD [14]. Conforme o pacoteLAPACK, as rotinas do ScaLAPACK são baseadas nos algoritmos de particio-namento em blocos. Esta distribuição cíclica em blocos provê um mecanismosimples para distribuição de dados com algoritmos particionados em blocos paraarquiteturas de memória distribuída. Os níveis 1, 2, 3 da PBLAS são utilizados noScaLAPACK junto com a BLACS [4].

3.3.3 PLASMAA PLASMA (Parallel Linear Algebra for Scalable Multi-core Architectures) [27]é um pacote de Álgebra Linear que foi projetado para oferecer o melhor desem-penho possível a partir de um sistema com múltiplos sockets de processadoresmulticore. A PLASMA também utiliza os pacotes da BLAS, porém são utilizadosapenas na implementação otimizada das operações com fluxo único de execução,também conhecidas como núcleos (kernels). Com isso, as otimizações em nívelde instrução, ou seja, aquelas dependentes de máquina, são exploradas pela BLASao passo que o paralelismo é explorado em um nível algorítmico acima do nívelda BLAS [4].

18

Page 20: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

4 Computação Verde

Voltada para a computação sustentável, a Computação Verde está acompanhandoa preocupação atual da sociedade sobre as questões ambientais buscando consci-entização e sustentabilidade ambiental. Desta forma, de acordo com Murugesan[28], a Computação Verde beneficia o meio ambiente, melhorando a eficiênciaenergética, redução das emissões de gases de efeito estufa, uso de materiais me-nos nocivos e incentivando a reutilização e a reciclagem. Assim, a ComputaçãoVerde impulsiona o intuito de pesquisar formas de manter o constante desenvol-vimento tecnológico aliado a métodos de preservação ambiental.

Aumentar a eficiência energética é importante, independente do hardwareadotado, em todo contexto computacional. Ou seja, para todas arquiteturas e im-plementações físicas de máquinas paralelas, as quais podem apresentar diferentesconsumos de potência, a eficiência energética é um fator crucial a ser analisado[29]. Então, de acordo com Mór [29], levada em consideração a eficiência ener-gética, a programação paralela tem papel crucial na melhoria desta, utilizandomelhor os recursos computacionais e aumentando o desempenho das aplicações.

Quando se trata de execução de um programa paralelo em uma plataforma dememória distribuída (cluster), o consumo energético é basicamente multiplicadopelo número de clusters. Portanto, a execução paralela energeticamente valerá apena somente se a aceleração é linear em função do número de clusters, a fimde compensar a sobrecarga de energia. Para a maioria das aplicações, isso seráverdade apenas até um certo número de máquinas, que irá fornecer o limite su-perior do paralelismo que pode ser usado enquanto manter uma boa relação entrespeedup e energia [30].

Porém, quanto mais máquinas se utiliza para a solução de um problema, maioro consumo de energia. E se não há preocupação com este consumo na hora deparalelizar um problema, pode-se ter desperdício, diminuindo assim a eficiênciaenergética deste programa. De acordo com Wang [31], Computação Verde e oconsumo baixo de energia estão ligados, sendo assim, a indústria e a pesquisada área de TI precisam focar no desenvolvimento de soluções onde diminuir oconsumo de energia é prioridade.

A organização e arquitetura do processador paralelo também podem ajudar

19

Page 21: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

ainda mais na redução do consumo de energia, com dispositivos mais eficientes enovas técnicas de aumento de desempenho. Da mesma forma, a arquitetura aindapode atuar reduzindo o consumo de potência, seja através de componentes maissofisticados, ou seja pelo desligamento de unidades que não estão sendo utilizadasem uma certa porção de tempo [29].

4.1 Consumo de EnergiaCalcular o consumo de energia de uma aplicação paralela não é trivial. Por ser umassunto recente, não existem muitas ferramentas voltadas à análise do consumode aplicações. Desta forma, algumas pesquisas consideram um cenário levandoem consideração que todos os processadores estão ativos e consumindo a mesmaquantidade de energia continuamente e simulam este consumo, como o trabalhode Mór [29].

O trabalho de Mämmelä [32] através de modelos de consumo de energia, ba-seados no trabalho de Fan [33], desenvolve um modelo genérico para calcular oconsumo de um servidor. Fan [33] aponta os principais contribuidores para con-sumo de energia de uma máquina: o Processador com 37% de contribuição; Placade Interface de Rede com porcentagem 23%; a Memória com 17%; a Placa-Mãecom 12%; o Disco Rígido com 6%; por fim, os Coolers com a menor porcentagemde 5%. Para cada contribuidor citado há um modelo relacionado e em cada modelode consumo são considerados na fórmula vários fatores para cada componente.

• No modelo do Processador considera-se a utilização do núcleo do Proces-sador, a potência máxima do Processador.

• Na equação da Memória é considerada a quantidade de Memórias insta-ladas, o tamanho de cada Memória individual e o valor da frequência daMemória disponibilizado pelo fornecedor.

• A fórmula do Disco Rígido emprega o consumo do Disco Rígido em es-tado ocioso e valores baseados na frequência das operações "ler"e "escre-ver"realizadas pelo Disco Rígido.

• Já para o modelo da Placa de Interface de Rede, são considerados o consumode energia da placa em estado ocioso, o consumo máximo de energia e ovalor de pacotes por segundo da placa.

• Para o modelo da Placa-Mãe são considerados os resultados dos modelosdo Processador, Memória, Placa de Interface de Rede e Disco Rígido, bemcomo, a quantidade destes.

20

Page 22: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

• É considerado no modelo do Cooler: a largura(em mm) do Cooler; profun-didade(em mm); e o valor das rotações por minuto.

• A Fonte de Alimentação também é considerada, pois fornece energia aoscomponentes do servidor e, em função disto, consome energia. Na fórmulasão considerados o resultado do consumo de energia de todos os componen-tes da Placa-Mãe e os Coolers, assim como, a eficiência da fonte (disponi-bilizada pelo fornecedor) e a quantidade de fontes.

O modelo genérico de Mämmelä [32] calcula o consumo total do servidorsomando o consumo de energia de todos os modelos anteriores multiplicando pelotempo.

A maioria das ferramentas que são utilizadas para calcular o consumo de ener-gia utilizam um hardware que é acoplado à maquina. Com base no valor geradoé feito o calculo de eficiência energética da aplicação. Por exemplo, o frameworkPowerPack [34] contém um conjunto de ferramentas composto de componentesde hardware e software. Os componentes de hardware incluem sensores, medi-dores, circuitos, e dispositivos de aquisição de dados que permitem medição depotência direta e instrumentação. Os componentes de software incluem driverspara vários medidores e sensores, e em nível de usuário APIs (Application Pro-gramming Interface) para criação de perfis de controle de energia e sincronizaçãode código [35]. Este framework foi utilizado no trabalho de Latief [36] para criarperfis de desempenho e eficiência energética em algoritmos de Álgebra LinearDensa em arquiteturas multicore.

Outro framework relacionado ao consumo de energia é o Wattch [37] que éum simulador de arquitetura para estimativas de consumo de energia da CPU. Asestimativas de energia são baseados em um conjunto de modelos de potência pa-rametrizável para diferentes estruturas de hardware e para cada ciclo de contagemde uso de recursos gerados mediante simulação de nível de ciclo

21

Page 23: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

5 Solvers

Solver é uma ferramenta computacional com o objetivo de resolver um problemamatemático. Este capítulo apresentará dois solvers voltados para a resolução deSELAs com Computação Verificada e Alto Desempenho. Primeiro será apresen-tado o solver de Zimmer [9] e, em seguida, o solver de Kolberg [11].

5.1 FastPILSSOs primeiros solvers que utilizavam a biblioteca C-XSC obtinham alta exatidão,porém, eram bastante lentos [9]. O solver FastPILLS (Fast parallel verified linear(interval) system solvers) [38] surgiu para melhorar o desempenho e foi desenvol-vido com o objetivo de calcular o resultado verificado de um Sistema Linear. Deacordo com [9], este solver foi desenvolvido para suportar todos os tipos básicosde variáveis do C-XSC. Desta forma, foram utilizados os tipos de variáveis dabiblioteca C-XSC que fornece a maioria das ferramentas necessárias (AritméticaIntervalar, acumuladores de alta precisão etc.) ,possibilitando assim, resultadoscom exatidão. O solver é baseado no algoritmo descrito por Rump [13] que é ba-seado método Krawczyk [39]. Também foi desenvolvido com o objetivo do solverser utilizado em sistemas indeterminados.

O Algoritmo 2 apresenta o modelo básico de um algoritmo autoverificado uti-lizado neste solver para resolver Sistemas Lineares. A paralelização de memóriadistribuída realizada pelo solver permite o cálculo de uma solução verificada paraSistemas Lineares de grande porte (de dimensão 100000 ou até mais), com os da-dos distribuídos em conformidade. O que torna a dimensão do sistema limitadaapenas pelo tamanho da memória do cluster utilizado [38]. Os pacotes e bibliote-cas LAPACK, BLAS, BLACS e a ScaLAPACK são utilizados para proporcionarresultados em tempo otimizado. A biblioteca MPI também foi utilizada para pos-sibilitar a troca de mensagens entre os processos.

22

Page 24: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Algoritmo 2: Algoritmo básico autoverificado para resolução de sistemaslineares. Adaptado de [9]

Entrada: Matriz quadrada de A e Um vetor bSaída: Solução em intervalo para Ax = bCalcula o inverso aproximado R de ACalcula solução aproximada de x̃ := Rb// Iteraçãorepita

x̃ := x̃ + R(b − Ax̃)até que x̃ alcance máxima precisão ou alcance o número máximo deiterações;Z := R � (b − Ax̃)C := �(I − RA)// VerificaçãoY := Zrepita

YA := blow(Y, ε) // ε−inflaçãoY := Z + C · YA

até Y ⊂ interior(YA) ou até alcançar o máximo de iterações);// Checar Resultadosse Y ⊂ interior(YA) então

Solução única em x ∈ x̃ + Ysenão

se Inversa aproximada de comprimento duplo ainda não utilizadosentão// Segundo estágioR1 := RS := R1 · ACalcular o inverso S 1 de SS := S 1 · R1

R2 := S 1 · R1 − SR1 :=SReiniciar o algoritmo com a nova inversa aproximada de R =

R1 + R2 (A soma não deve ser computada)fim seAlgoritmo falha. A é singular ou mal condicionado.

fim se

23

Page 25: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

5.2 Parallel Self-Verified Solver for Dense Linear Sys-tems

A ferramenta foi apresentada em [11] e o objetivo é a resolução de Sistemas Li-neares Densos Pontuais e Intervalares. Esta ferramenta é baseada em um métodode resolução de Sistemas Densos Verificados usando arredondamentos direciona-dos e Aritmética Intervalar. O algoritmo utilizado para a resolução é baseado nométodo Rump [13] com algumas modificações relativas a mudança do modo dearredondamento e nas otimizações do resíduo.

Inicialmente foi desenvolvida uma abordagem sequencial, onde era utilizadaa representação ínfimo e supremo e outra abordagem utilizando a representaçãoponto médio e raio. Testes experimentais foram executados para avaliar a abor-dagem a ser utilizada na versão paralela. O Algoritmo 3 apresenta a abordagemsequencial.

De acordo com [11], o tempo de execução para dados intervalares utilizandoa representação ínfimo-supremo é mais demorado em relação ao tempo de exe-cução da representação em ponto médio de raio. Porém, o resultado em ínfimoe supremo era mais preciso em relação a representação em ponto médio e raio.Com o objetivo de melhorar o desempenho e resolver grandes sistemas [11] optoupela representação em ponto médio e raio para a versão paralela.

Juntos os passos 1 e 4 consomem mais de 90% do total do tempo de proces-samento. O cálculo do inverso da matriz A demora mais de 50% do tempo totalde execução e o passo 4 que possui o cálculo da matriz intervalar demora mais de40% do tempo total de execução da resolução do Sistema Linear do Algoritmo 3.

Visando melhor desempenho as bibliotecas PBLAS e ScaLAPACK foram uti-lizadas em pontos cruciais do algoritmo. A ideia de combinar estas bibliotecascom Aritmética Intervalar e arredondamentos diretos é para garantir a verificaçãoe, em consequência, tornar o solver mais rápido. MPI também foi utilizada parahabilitar a troca de mensagens.

24

Page 26: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Algoritmo 3: Enclosure de um Sistema Linear. Adaptado de [11]Entrada: Matriz quadrada de A e Um vetor bSaída: Solução em intervalo para Ax = b{PASSO 1}R ≈ A−1 {Calcula o inverso aproximado R de A}{PASSO 2}x̃ ≈ R · b { Calcula solução aproximada}res =0;enquanto cont < 15 ou norm < 10−1 · oldnorm faça

cont ++;oldnorm = norm;para i = 0; i < S IZE; i + + faça

norm = norm + abs(res);fim parares = R · (A · x + b);se norm < oldnorm então

x = x − resfim se

fim enqto{PASSO 3}[z] ⊇ R(b − Ax̃) {Inclusão do resíduo}{PASSO 4}[C] ⊇ (I − RA) { Inclusão da matriz de iteração}{PASSO 5}[w] := [z], k := 0enquanto não [w] ⊆ int[y] ou k >10 faça

[y] := [w][w] := [z] +[C][y]k++

fim enqtose [w] ⊆ int[y] então∑

(A, b) ⊆ x̃ + [w]senão

Sem verificaçãofim se

25

Page 27: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

6 Proposta para a Dissertação deMestrado

Neste capítulo será descrita a proposta para a Dissertação de Mestrado apresen-tando a motivação para tal. Em seguida, os objetivos serão descritos juntamentecom a metodologia de pesquisa e o cronograma de atividades.

6.1 MotivaçãoVista a importância dos SELAs em diversas áreas, o grupo de pesquisa GMAP(Grupo de Modelagem de Aplicações Paralelas)1 da Pontifícia Universidade Cató-lica do Rio Grande do Sul focou no estudo de SELAs e em sua resolução. Milani[4] apresentou uma ferramenta para resolução verificada de Sistemas LinearesDensos Intervalares de Grande Porte voltado para máquinas multicore, enquantoKolberg [11] desenvolveu um solver paralelo auto-verificado para Sistemas Line-ares Densos. Estas pesquisas e outras pesquisas relacionadas a resolução autove-rificada de SELAs resultaram inúmeros artigos, tais como: [40], [41], [42], [43],[44], [45], entre outros.

Por conseguinte, a principal motivação deste trabalho é dar continuidade aoestudo de SELAs do grupo e comparar o solver do GMAP desenvolvido por Kol-berg [11] com o solver desenvolvido por Zimmer [9] da Universität Wuppertal.Com o intuito de analisar características relevantes, como o consumo de energiados solvers, que é uma característica que está se popularizando e, naturalmente,a eficiência energética de uma aplicação se tornou uma qualidade relevante. Asanálises de desempenho e exatidão serão também essenciais, pois quando um re-sultado exato é alcançado em um menor tempo comparado a outro, melhor é aqualidade deste solver. Com base no resultado das comparações será possívelelencar os pontos fortes e fracos do solver do grupo GMAP, possibilitando futu-ros aperfeiçoamentos na aplicação.

1GMAP. Disponível em <http://www.inf.pucrs.br/ gmap/>

26

Page 28: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

6.2 ObjetivosO objetivo geral do trabalho é comparar dois solvers paralelos verificados paraa resolução de SELAs intevalares em clusters, avaliando, principalmente, odesempenho, a exatidão e o consumo de energia. A comparação será realizadacom base na realização de testes e avaliação dos resultados. Para a validaçãodos testes serão realizadas pesquisas de estatística com finalidade tornar os testesconfiáveis. Os objetivos específicos aparecem como consequência do cronogramaapresentado na Seção 6.4 e da metodologia adotada descrita na Seção 6.3, taiscomo: revisão dos algoritmos para a resolução de SELAs, estudo aprofundadodos solvers, estudo de ferramentas que calculam o consumo de energia, estudode validação de testes e estatística, testes e análise das ferramentas, avaliaçãodos resultados. Outro objetivo desta proposta é o desenvolvimento de artigoscientíficos referentes ao estudo e aos testes realizados, enriquecendo, desta forma,a qualidade do trabalho realizado.

6.3 MetodologiaCom intuito de ampliar conhecimentos sobre algoritmos para a resolução de SE-LAs, inicialmente será realizada uma revisão matemática e um estudo aprofun-dado sobre os algoritmos para a resolução de SELAs. Com base no conhecimentoadquirido será possível estudar em maiores detalhes o solver de Zimmer [9] e osolver de Kolberg [11].

Como um dos objetivos é a análise do consumo de energia destes solvers, énecessário estudar ferramentas e maneiras de calcular o consumo de energia deimplementações. Para medir o consumo de energia em clusters será necessáriodesenvolver um modelo de consumo de energia voltado para clusters baseado nostrabalhos de Mämmelä [32] e Fan [33].

Do mesmo modo, é necessário estudar estatística com o objetivo de validar edar confiabilidade aos testes que serão realizados, avaliando e identificando quaismétodos serão adequados. Como resultado deste estudo será decidida a organiza-ção da realização e avaliação dos testes.

Para testar o desempenho e o consumo de energia dos solvers serão utilizadasmatrizes reais do site Matrix Market [46]. Este site contém um repositório de da-dos de teste para uso em estudos comparativos de algoritmos para Álgebra LinearNumérica, com cerca de 500 matrizes esparsas de uma variedade de aplicações,bem como ferramentas de geração de matrizes e serviços. Serão escolhidas matri-zes bem e mal condicionadas para obter resultados que abrangem estes dois tiposde matrizes. Com o emprego destas matrizes será possível avaliar o desempenhodos solvers em uma aplicação real, garantindo assim, a integridade dos testes.

27

Page 29: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Para verificar a exatidão dos resultados dos solvers, será necessária a execução detestes com matrizes das quais o resultado exato é conhecido, possibilitando assim,comparar a exatidão dos resultados.

6.4 Cronograma de AtividadesO cronograma de atividades foi elaborado com o objetivo de auxiliar na realizaçãodo trabalho de pesquisa no decorrer do Mestrado. Este cronograma refere-se aoano de 2012, sendo este apresentado na Tabela 6.1. As atividades estão apresen-tadas na primeira coluna e cada uma das próximas colunas referem-se a um mês.De modo que, quando um quadro está assinalado com um "X"a atividade daquelalinha está prevista para ser realizada no mês da coluna onde o "X"foi sinalizado.

Tabela 6.1: Cronograma de Atividades

Atividades Jan. Fev. Mar. Abr. Mai. Jun. Jul. Ago. Set. Out. Nov. Dez.Revisão dos algoritmos para a resolução de SELAs X X

Estudo aprofundado dos solvers X X XEstudo de ferramentas que calculam o consumo de energia X X X

Estudo de validação de testes e estatística X X XTestes e análise das ferramentas X X X X X

Avaliação dos resultados X X XEscrita do Seminário de Andamento X XEntrega do Seminário de Andamento X

Apresentação do Seminário de Andamento XRedação de artigos X X X

Desenvolvimento da Redação da Dissertação X X X XEntrega da Dissertação de Mestrado X

Preparação e apresentação da Dissertação X

28

Page 30: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

Referências Bibliográficas

[1] HWANG K. and XU Z. Scalable Parallel Computing: Technology, Archi-tecture, Programming. WCB McGraw-Hill, New York, 1998.

[2] HAMMER R. and HOCKS M. and KULISH U. and RATZ D. C++ Toolboxfor Verified Computing. Springer, Heidelberg, 1995.

[3] CLAUDIO D. and MARINS J. Cálculo Numérico Computacional: Teoria ePrática. Editora Atlas S. A., São Paulo, 2000.

[4] MILANI C. R. . Computação Verificada Aplicada à Resolução de SistemasLineares Intervalares Densos em Arquiteturas Multicore. Dissertação deMestrado.

[5] National Science Foundation. Blas (Basic Linear Algebra Subprograms),Extraído de <http://netlib.org/blas/>. Acessado em Setembro, 2011.

[6] National Science Foundation. Lapack, Extraído de<http://www.netlib.org/lapack/>. Acessado em Setembro, 2011.

[7] National Science Foundation. Scalapack, Extraído de<http://www.netlib.org/scalapack/>. Acessado em Janeiro, 2012.

[8] KULISCH U. and MIRANKER L. Computer Arithmetic in Theory andPractice. Academic, New York, 1981.

[9] KRÄMER W. and ZIMMER M. Fast (Parallel) Dense Linear System Solversin C-XSC Using Error Free Transformations and BLAS. Springer-Verlag,Berlin, Heidelberg, 2009.

[10] Werner Hofschuster. Universitaet wuppertal: Wissenschaftlichesrechnen / softwaretechnologie, Extraído de <http://www2.math.uni-wuppertal.de/ xsc/xsc/cxsc.html>. Acessado em Dezembro, 2011.

[11] KOLBERG M. Parallel Self-Verified Solver for Dense Linear Systems. Tesede PhD, 2009.

29

Page 31: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

[12] RUMP S. Self-validating methods. Linear Algebra and Its Applications,324(1-3):3–13, 2001.

[13] RUMP S. Kleine fehlerschranken bei matrixproblemen. 1980.

[14] J.J. DONGARRA, I. FOSTER, G. FOX, W. GROPP, K. KENNEDY,L. TORCZON, and A. WHITE. Sourcebook of Parallel Computing. TheMorgan Kaufmann Series in Computer Architecture and Design. MorganKaufmann Publishers, 2003.

[15] KOLBERG M., DORN M., FERNANDES L. G., and BOHLENDER G. Pa-rallel Verified Linear System Solver for Uncertain Input Data. In ComputerArchitecture and High Performance Computing, 2008. SBAC-PAD ’08. 20thInternational Symposium on, pages 89 –96, 29 2008-nov. 1 2008.

[16] HOFSCHUSTER W., KRÄMER W., WEDNER S., and WIETHOFF A.C–xsc 2.0 a c++ class library for extended scientific computing. Preprint2001/1, pages 1–25, 2001.

[17] FLYNN M. J. Some computer organizations and their effectiveness. EEETransactions on Computers, C-21(9):948–960, September 1972.

[18] DE ROSE C. and NAVAUX P. Arquiteturas paralelas. Livros Didáticos.Sagra Luzzatto, Porto Alegre, 2003.

[19] DONGARRA J., STERLING T., SIMON H., and STROHMAIER E. High-performance computing: Clusters, constellations, mpps, and future directi-ons. Computing in Science and Engg., 7(2):51–59, 2005.

[20] TOP500. Introduction and objectives - top500 supercomputing sites,Extraído de <http://top500.org/project/introduction>. Acessado em Julho,2011.

[21] RAUBER T. and RÜNGER G.. Parallel Programming. Springer, New York,2010.

[22] A GRAMA, A. GUPTA, G. KARYOPIS, V. KUMAR, and K. KENNEDY.Introduction to Parallel Computing. Addison Wesley, 2003.

[23] Argonne National Laboraroty Mathematics and Computer Science Di-vision. The message passing interface (mpi) standard, Extraídode <http://www.mcs.anl.gov/research/projects/mpi/>. Acessado em Julho,2011.

30

Page 32: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

[24] National Science Foundation. Blacs, Extraído de<http://www.netlib.org/blacs/>. Acessado em Janeiro, 2012.

[25] National Science Foundation. Pblas home page, Extraído de<http://netlib.org/scalapack/pblas_ qref.html>. Acessado em Janeiro,2012.

[26] National Science Foundation. Linpack, Extraído de<http://www.netlib.org/linpack/>. Acessado em Janeiro, 2012.

[27] University of Tennessee Knoxville. Plasma, Extraído de<http://icl.cs.utk.edu/plasma/software/index.html>. Acessado em De-zembro, 2011.

[28] MURUGESAN S. Harnessing green it: Principles and practices. it professi-onal. IT Professional, 10:24–33, 2008.

[29] MÓR S. D. K. and ALVES M. A. Z. and LIMA, J. V. F. and MAILLARD N.B. and NAVAUX P. O. A. Eficiência energética em computação de alto de-sempenho: Uma abordagem em arquitetura e programação para green com-puting. XXXVII Seminário Integrado de Software e Hardware - SEMISH,pages 346 – 360, 2010.

[30] CARISSIMI A., GEYER C. F. R., MAILLARD N., NAVAUX P. O. A.,CAVALHEIRO G. G. H., PILLA M. L., YAMIN A., CHARÃO A. S.,B. STEIN, C. A. F. De ROSE, FERNANDES L. G. L., FERRETO T. C.,and ZORZO A. Energy-aware scheduling of parallel programs. ConferenciaLatino Americana de Computación de Alto Rendimiento - CLCAR, page 7p,2010.

[31] WANG D. Meeting green computing challenges. High Density packagingand Microsystem Integration, pages 1–4, 2007.

[32] MÄMMELÄ O., MAJANEN M., BASMADJIAN R., MEER H., GIESLERA., and HOMBERG W. Energy-aware job scheduler for high-performancecomputing. ScienceResearch and, 2011.

[33] FAN X., WEBER W., and BARROSO L. Power Provisioning for aWarehouse-sized Computer. In Proceedings of the 34th annual internati-onal symposium on Computer architecture, ISCA ’07, pages 13–23, NewYork, NY, USA, 2007. ACM.

[34] Scalable Performance Lab. Powerpack 3.0 � scape lab, Extraído de<http://scape.cs.vt.edu/software/powerpack-3-0/>. Acessado em Janeiro,2012.

31

Page 33: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

[35] GE R., FENG X., SONG S., CHANG H., LI D., and CAMERON K.W.Powerpack: Energy Profiling and Analysis of High-Performance Systemsand Applications. Parallel and Distributed Systems, IEEE Transactions on,21(5):658 –671, may 2010.

[36] LATIEF H., LUSZCZEK P., and DONGARRA J. Profiling high perfor-mance dense linear algebra algorithms on multicore architectures for powerand energy efficiency. Computer Science - Research and Development, pa-ges 1–11, 2011. 10.1007/s00450-011-0191-z.

[37] BROOKS D., TIWARI V., and MARTONOSI M. Wattch: a Framework forArchitectural-Level Power Analysis and Optimizations. In Proceedings ofthe 27th annual international symposium on Computer architecture, ISCA’00, pages 83–94, New York, NY, USA, 2000. ACM.

[38] Werner Hofschuster. Universitaet wuppertal: Wissenschaftlichesrechnen / softwaretechnologie, Extraído de <http://www2.math.uni-wuppertal.de/x̃sc/xsc/cxsc_ software.html# fastpilss>. Acessado em Agosto,2011.

[39] KRAWCZYK R. Newton-algorithmen zur bestimmung von nullstellen mitfehlerschranken. Computing, 4:187–201, 1969.

[40] KOLBERG M., BALDO L., VELHO P., FERNANDES L. F., and CLAU-DIO D. Optimizing a Parallel Self-verified Method for Solving Linear Sys-tems. In Lecture Notes in Computer Science: Applied Parallel Computing.State of the Art in Scientific Computing 8th International Workshop, PARA2006, volume 3, page 949–955, Junho 2007.

[41] KOLBERG M., BALDO L., VELHO P., WEBBER T., FERNANDES L. F.,and CLAUDIO D. Parallel Selfverified Method for Solving Linear Systems.In 7th VECPAR - International Meeting on High Performance Computingfor Computational Science, Rio de Janeiro, Brazil.

[42] MILANI C. R., KOLBERG M., and FERNANDES L. G. Solving Dense In-terval Linear Systems with Verified Computing on Multicore Architectures.In 9th VECPAR - International Meeting on High Performance Computingfor Computational Science, VECPAR 2010, 2010.

[43] KOLBERG M., CORDEIRO D., BOHLENDER G., FERNANDES L.G., and A. GOLDMAN. A Multithreaded Verified Method for SolvingLinear Systems in Dual-Core Processors. In 9th PARA - InternationalWorkshop on State-of-the-Art in Scientific and Parallel Computing, PARA2008, Trondheim, Noruega.

32

Page 34: Pontifícia Universidade Católica do Rio Grande do Sul ... · A solução dos algoritmos diretos apresenta erros devido ao erro de arredonda-mento. O erro total é composto pela

[44] KOLBERG M., BOHLENDER G., and CLAUDIO D. Improving the Per-formance of a Verified Linear System Solver Using Optimized Libraries andParallel Computing. In VECPAR’08 8th International Meeting High Per-formance Computing for Computational Science, VECPAR 2008, Toulouse,France, 2008.

[45] KOLBERG M., BOHLENDER G., and CLAUDIO D. Dense Linear Sys-tem: a Parallel Self-verified Solver. International Journal of Parallel Pro-gramming, IJPP 2008, 2008.

[46] Mathematical and Computational Sciences Division. Matrix market,Extraído de <http://math.nist.gov/MatrixMarket/>. Acessado em Janeiro,2012.

33