![Page 1: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/1.jpg)
Instituto de Física de São Carlos - IFSCUniversidade de São Paulo - USP
Francisco Aparecido RodriguesOrientador: Gonzalo Travieso
Técnicas de orientação ao objeto para computação
científica paralela
![Page 2: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/2.jpg)
Introdução
![Page 3: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/3.jpg)
MOTIVAÇÃO
A construção de programas paralelos que ofereçam alto desempenho é complexa
A interface de uso que muitas bibliotecas numéricas paralelas oferecem é pouco amigável
OBJETIVOS
Desenvolver uma biblioteca paralela que ofereça alto desempenho e que possua uma interface amigável
IntroduçãoIN
TR
OD
UÇ
ÃO
![Page 4: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/4.jpg)
Os computadores paralelos são usados para suprir as necessidades que os computadores seqüenciais não conseguem.
“Um computador paralelo é uma coleção de elementos de processamento que se comunicam e cooperam na resolução de grandes problemas de forma rápida”
(Almasi)
Computação paralelaIN
TR
OD
UÇ
ÃO
![Page 5: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/5.jpg)
Grupo de computadores completos interconectados com sistema operacional distribuído
Oferecem
Escalabilidade absoluta
Escalabilidade incremental
Alta disponibilidade
Melhor relação custo desempenho
ClustersIN
TR
OD
UÇ
ÃO
![Page 6: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/6.jpg)
Maneira mais comum:
Utilizando uma linguagem seqüencial conjuntamente com uma biblioteca paralela que permita a troca de mensagens.
PVM – Paralell Virtual Machine
MPI – Message Passing Interface
Desenvolvimento de softwares paralelosIN
TR
OD
UÇ
ÃO
![Page 7: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/7.jpg)
Bibliotecas Paralelas
![Page 8: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/8.jpg)
Padrão de biblioteca de passagem de mensagem para sistemas paralelos.
Baseado na troca de mensagem entre processadores através das diretivas send/receive
O MPI é baseado em 4 conceitos:1. Processos2. Comunicadores3. Mensagens4. Tipos de dados
O programador deve especificar: Instante em que uma comunicação deve ocorrer
Quais tipos de dados devem ser enviados A comunicação é bloqueante ou não?
MPI – Message Passing InterfaceM
PI
![Page 9: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/9.jpg)
Bibliotecas numéricasB
IBLIO
TEC
AS
NU
MÉR
ICA
S BLAS (Basic Linear Algebra Subprogram)
LAPACK (Linear Algebra Package)
Biblioteca de Álgebra Linear para cálculo de problemas de autovalores, sistemas lineares e problemas de mínimos quadrados paraworkstations e sistemas SPMD,
SCALAPACK (Scalabe LAPACK)
Biblioteca de Álgebra Linear análoga ao LAPACK para computadores de memória distribuída.
![Page 10: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/10.jpg)
Bibliotecas de rotinas similares às do LAPACK
Escrito em FORTRAN
Utiliza passagem de mensagem via MPI ou PVM
Oferece alta perfomance em rotinas de álgebra linear em computadores MIMD Necessita de duas blibliotecas adicionais:
PBLAS (Parallel BLAS)Contém rotinas básicas de álgebra linear para processamento paralelo
BLACS (Basic Linear Algebra Communication Subprogram)Biblioteca de rotinas sícronas de send/receive que usam passagem de mensagem
CaracterísticasS
caLA
PA
CK
![Page 11: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/11.jpg)
EstruturaS
caLA
PA
CK
ScaLAPACK
PBLAS
LAPACK
BLACS
MPI/PVM
BLAS
LOCAL
GLOBAL
![Page 12: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/12.jpg)
Grade de processadoresS
caLA
PA
CK
![Page 13: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/13.jpg)
Exemplo
Distribuição em blocos 1 x 1Exemplo: N = 16 e P = 4Grade: 2 X 2
Distribuição da MatrizS
caLA
PA
CK
P0 P1
P2 P3
MATRIZ GRADE
A11 A12 A13 A14
A21 A22 A23 A24
A31 A32 A33 A34
A41 A42 A43 A44
A11 A13 A12 A14
A31 A33 A32 A34
A21 A23 A22 A24
A41 A43 A42 A44
![Page 14: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/14.jpg)
UtilizaçãoS
caLA
PA
CK
Passos para chamar as rotinas
1 - Inicializar a grade de processadores CALL SLINIT( ... ) CALL BLACS_GRIDINFO( ...)
2 - Distribuir a matriz na grade de processadores
e inicializar os descritores de array CALL DESCINIT( ... )
3 - Chamar a rotina do ScaLAPACK CALL PDSYEVX( ... )
4 - Liberar a grade de processos CALL BLACS_EXIT( ... )
![Page 15: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/15.jpg)
Divididas em três grupos
1. Driver Routines
Resolvem um problema completamente.
Equações lineares, problemas de mínimos quadrados, problemas de autovalores, etc.
2. Computational Routines
Realizam uma computação distinta
Equações lineares, fatorização ortogonal e problemas de mínimos quadrados (fatorização QR, LQ, QR com pivotamento, fatorização ortogonal completa), etc.
3. Auxiliary routines
Rotinas usadas nas subtarefas e algoritimos de particionamento
RotinasS
caLA
PA
CK
![Page 16: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/16.jpg)
PXYYZZZ
P: A primeira letra é para diferenciar das rotinas do LAPACK
X: A segunda letra indica o tipo de dado S : Real D : Double C : Complex Z : Double Complex
YY: As duas próximas indicam o tipo da matriz : Ex: SY – simétrica HE – hermitiana TR – triangular
ZZZ: As três últimas indicam a computação
Exemplos:
PDTRSVX – rotina para resolver sistemas de equações lineares com matrizes triangulares
PDSYEVX – rotina para calcular autovalores e autovetores de uma matriz simétrica double
PSGEBRD – rotina que realiza uma redução bidiagonal de uma matriz geral single
Nomenclatura das rotinasS
caLA
PA
CK
![Page 17: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/17.jpg)
Orientação ao Objeto
![Page 18: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/18.jpg)
O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados.
Todas as linguagens orientadas a objetos possuem três características básicas:
1. Encapsulação
2. Herança
3. Polimorfismo
ConceitosO
rien
tação a
o O
bje
to
![Page 19: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/19.jpg)
É um tipo de dado, como os já conhecidos, para declarar variáveis
Uma variável de uma classe é chamada de Objeto.
Definir uma classe não cria um objeto, assim como um tipo de variável NÃO é uma variável
ClassesO
rien
tação a
o o
bje
to
![Page 20: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/20.jpg)
É uma entidade lógica que contém dados e código para manipular esses dados
ObjetosO
rien
tação a
o O
bje
to
Class Carros {Cambio, acelerador, voltante, ...
public:Acelerar ( );Frear ( );Trocar_marcha ( );Virar_esquerda ( );...
};Class Carros BMW;
![Page 21: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/21.jpg)
HerançaO
rien
tação a
o O
bje
to É o processo em que um objeto pode adquirir as características de outro objeto
VEÍCULOS (SUPERCLASSE)
CLASSE CARROS CLASSE MOTOS
AcelerarFrear
Virar para esq....
![Page 22: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/22.jpg)
Matrizes podem ser representadas como uma abstração de problemas de álgebra linear
Uma matriz específica seria um objeto da classe e as operações sobre elas os métodos da classe
Matrizes e objetosO
rien
tação a
o O
bje
to
![Page 23: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/23.jpg)
Biblioteca desenvolvida
![Page 24: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/24.jpg)
Oferece rotinas para matrizes:
Simétricas com simples precisão
Simétricas com dupla precisão
Hermitianas com simples precisão
Hermitianas com dupla precisão
Parallel Object Oriented Linear AlgebraP
OO
LA
Li
![Page 25: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/25.jpg)
Métodos oferecidos
Acesso por índice global / local
Cálculo de autovalores e/ou autovetores
Atribuição e redistribuição de matrizes
Adição de matrizes
Subtração de matrizes
Multiplicação de matrizes
Facilidades oferecidas
Interface amigável
Encapsulação dos dados, ou seja, interface independente da implementação
Simplificação de uso
CaracterísticasP
OO
LA
Li
![Page 26: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/26.jpg)
Interface e métodosP
OO
LA
Li
template<typename elem_type, typename precision_type>class DistMat{ public: DistMat ( const int M, const int N, const Grid &g,
const int MB = 1, const int NB = 1 ); DistMat ( const DistMat<elem_type,precision_type> &A ); elem_type *local_matrix(); int rows(); int cols(); int block_rows(); int block_cols(); int local_rows(); int local_cols(); elem_type &operator()( const int I, const int J ); elem_type &local( const int i, const int j ); virtual void eigen( precision_type *eigenval) = 0; virtual void eigen( precision_type *eigenval, int il,
int iu) = 0;...
virtual ~DistMat();};
![Page 27: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/27.jpg)
Interface e métodosP
OO
LA
Li
class FloatSymmetric : public DistMat<float,float>{ public: FloatSymmetric (const FloatSymmetric &A)
DistMat<float,float>(A); FloatSymmetric(const int M, const int N, Grid &g,const int MB = 1,
const int NB = 1 ):DistMat<float,float>(M,N,g,MB,NB); FloatSymmetric &operator=( FloatSymmetric A ); friend FloatSymmetric operator+( FloatSymmetric A, FloatSymmetric B); friend FloatSymmetric operator-( FloatSymmetric A,
FloatSymmetric B); friend FloatSymmetric operator*( FloatSymmetric A,
FloatSymmetric B); void eigen( float *eigenval ); void eigen( float *eigenval, int il, int iu ); void eigen( float *eigenval, float vl, float vu ); void eigen( float *eigenval,
DistMat<float,float> &eigenvec ); void eigen( float *eigenval, DistMat<float,float> &eigenvec, int il, int iu ); void eigen( float *eigenval, DistMat<float,float> &eigenvec, float vl, float vu ); ~FloatSymmetric(){};}
![Page 28: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/28.jpg)
Análise de desempenho
![Page 29: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/29.jpg)
Algoritmo
I. Iniciar a grade de processadores
II. Distribuir a matriz hamiltoniana
III. Diagonalizar a matriz
IV. Liberar a grade de processadores
Objetivo Comparar o código desenvolvido usando o ScaLAPACK e a biblioteca POOLALi
Problema de física do estado sólidoA
nálise d
e d
esem
pen
ho
![Page 30: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/30.jpg)
Utilizando o ScaLAPACK
Inicialização da grade de processadoresA
nálise d
e d
esem
pen
ho int main(int argc, char *argv[])
{ int rank, nprocs, zero = 0, context, less_one = -1; int nprow, npcol, myrow, mycol; char erre = 'R'; MPI_Init(&argc,&argv); blacs_pinfo__(&rank,&nprocs); blacs_get__(&less_one, &zero, &context); nprow = (int) sqrt(nprocs); while (( nprow!=1 ) && ((nprocs \ nprow) != 0)) nprow--; npcol = (int) (nprocs/nprow); blacs_gridinit__(&context, &erre, &nprow, &npcol); blacs_gridinfo__(&context, &nprow, &npcol, &myrow,
&mycol); blacs_exit__(&zero); return 0;}
![Page 31: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/31.jpg)
Inicialização da grade de processadoresA
nálise d
e d
esem
pen
ho
Utilizando a POOLALi
#include "grid.h"
int main(int argc, char *argv[]){ Parallel p(argc, argv); Grid g(p); return 0;}
![Page 32: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/32.jpg)
Distribuição da matrizA
nálise d
e d
esem
pen
ho
Utilizando o ScaLAPACK
// ... definição dos valores associados à matriz ...// I, J -> Global// i,j -> localfor( I = 0; I < N; I++) { for( J = 0; J < N; J++)
{....value = Hamilton(I,J,n);l = (int)(floor( I/(nprow*mb) ) );m = (int)(floor( J/(npcol*nb) ) );x = I % mb;y = J % nb;i = l*mb + x;j = m*nb + y;if ( ( j*lrow + i ) < lrow*lcol )
ml[ j*lrow + i] = value;...}
}
![Page 33: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/33.jpg)
#include "lib/grid.h"#include "lib/dsymmetric.h"...DoubleSymmetric Matrix(N,N,g,8,8), for( int I = 0; I < N; I++)
{ for( int J=0; J< N; J++)
...Matrix(I,J) = Hamilton(I,J,n);...
}}
Distribuição da matrizA
nálise d
e d
esem
pen
ho
Utilizando a POOLALi
![Page 34: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/34.jpg)
... // declaração das variáveis de entrada na funçãostatic int lwork = -1, liwork = -1;double *work, tmpwork;int *iwork, tmpiwork;ifail = new int[n];iclustr = new int[2*nprow*npcol];gap = new double[nprow*npcol];pdsyevx_(&jobz, &range, &uplo, &n, ml, &ia, &ja, desca, &vl,
&vu, &il, &iu, &abstol,&n_aut, &n_vec, eigenval, &orfac, z, &iz, &jz, descz, &tmpwork, &lwork, &tmpiwork, &liwork, ifail, iclustr, gap, &info);
lwork = int(2*tmpwork);liwork =tmpiwork;work = new double[lwork];iwork = new int[liwork];pdsyevx_(&jobz, &range, &uplo, &n, ml, &ia, &ja, desca, &vl,
&vu, &il, &iu, &abstol,&n_aut, &n_vec, eigenval,&orfac,z, &iz, &jz, descz, work, &lwork, iwork, &liwork, ifail, iclustr, gap, &info);
...
Diagonalização da matrizA
nálise d
e d
esem
pen
ho
Utilizando o ScaLAPACK
![Page 35: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/35.jpg)
Diagonalização da matrizA
nálise d
e d
esem
pen
ho
Utilizando a POOLALi
#include "lib/grid.h"#include "lib/dsymmetric.h"...DoubleSymmetric Matrix(N,N,g,8,8), Vec(N,N,g,8,8);...double *eigenval;eigenval = new (double)[N];Matrix.eigen(eigenval, Vec);...
![Page 36: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/36.jpg)
Comparação de desempenhoA
nálise d
e d
esem
pen
ho
![Page 37: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/37.jpg)
Comparação de desempenhoA
nálise d
e d
esem
pen
ho
![Page 38: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/38.jpg)
Comparação de desempenhoA
nálise d
e d
esem
pen
ho
![Page 39: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/39.jpg)
Conclusão
![Page 40: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/40.jpg)
A utilização de orientação ao objeto ofereceu:
Alto nível de abstração
Interface amigável
Nomenclatura dos métodos é mais intuitiva que as rotinas do ScaLAPACK
Não ofereceu perda de desempenho em relação ao ScaLAPACK
ConclusõesC
on
clu
sões
![Page 41: Instituto de Física de São Carlos - IFSC Universidade de São Paulo - USP Francisco Aparecido Rodrigues Orientador: Gonzalo Travieso Técnicas de orientação](https://reader034.vdocuments.pub/reader034/viewer/2022042623/552fc133497959413d8d784c/html5/thumbnails/41.jpg)
Extensão da POOLALi para todos os métodos oferecidos pelo ScaLAPACK
Sistemas Lineares, problemas de mínimos quadrados, fatorização LU, inversão matricial, etc
Criação de classes para outros tipos de matrizes
De banda, tridiagonais, ortogonais, triangulares, unitárias, esparsas
Implementação de métodos não oferecidos pelo ScaLAPACK
Equações diferenciais, estatística, visão, etc.
Trabalhos futurosC
on
clu
sões