Banca de TCC – Rodrigo da Rosa Oliveira
UNIVERSIDADE FEDERAL DE PELOTAS
CENTRO DE DESENVOLVIMENTO TECNOLÓGICO
TRABALHO DE CONCLUSÃO DE CURSO
Apresentações Finais (2017/2)
Uma Biblioteca com Suporte Multithread a Matrizes Esparsas em C++
por
Rodrigo da Rosa Oliveira
Curso:
Ciência da Computação
Banca:
Prof. Gerson Geraldo Homrich Cavalheiro (orientador(a))
MSc. André Desessards Jardim (coorientador(a))
Prof. Adenauer Correa Yamin
Prof. André Rauber Du Bois
Data: 05 de Março de 2018
Hora: 13:30h
Local: Sala 210B
Resumo do Trabalho: Matrizes são estruturas de dados importantes em aplicações científicas. Na prática elas tendem a ser muito grandes, ocupando uma quantidade significativa de memória para a sua representação. No entanto, ocorrem situações em que as matrizes são esparsas, onde a maior parte de seus elementos tem valor igual a zero. Isto significa que, em comparação ao tamanho da matriz, os elementos utilizados pela aplicação são poucos, mas a estrutura virtual da matriz precisa ser preservada para o contexto do problema tratado pelo programa. Neste caso é possível utilizar técnicas de armazenamento especialmente desenvolvidas para matrizes esparsas, reduzindo a quantidade de memória necessária para armazená-las. Diversas bibliotecas oferecem suporte a matrizes esparsas, implementando diferentes técnicas de armazenamento dos valores não nulos. Contudo, não são muitas as bibliotecas que oferecem suporte à execução em ambientes multithread e aquelas que o oferecem não são padronizadas para uso seguro em C++. A biblioteca uBLAS dispõe de soluções para armazenamento e operações com matrizes esparsas e pertence ao conjunto Boost, sem suporte a execução multithread. Neste trabalho é apresentada uma biblioteca para matrizes esparsas que suporta a execução em multithread e mantém a mesma interface de uBLAS, obtida por meio de modificações na implementação original da biblioteca que integra o conjunto Boost. Desta forma, é oferecida uma solução para matrizes esparsas em ambientes multithread, padronizada para uso em C++, sendo que testes realizados neste trabalho demonstram um aumento considerável no desempenho da multiplicação entre matrizes, quando utilizados vários threads simultâneos, em comparação à execução sequencial utilizando a biblioteca uBLAS original.
Para mais informações acesse: http://wp.ufpel.edu.br/notcc/bancas/historico/2017_2/