Ricardo Caldeira de Oliveira

Título


Análise não-linear de risers em computadores multicore

Orientador(es)


Luís Volnei Sudati Sagrilo
Eduardo Lúcio Mendes Garcia

Resumo


O tempo gasto em análises não-lineares estruturais  de  risers no domínio do tempo, usando programas de modelagem computacional, muitas vezes se torna um ponto crítico no projeto e estudo de viabilidade dessas estruturas. Desta forma, este trabalho tem como objetivo propor e implementar técnicas para melhorar o desempenho computacional de um programa de análise estrutural de risers, explorando arquiteturas multicore, que permitem execução de tarefas concorrentemente. Para usar a capacidade de múltiplo processamento dessas arquiteturas, foi  usada computação paralela através de programação  multithread. Foram analisados os códigos sequenciais existentes e identificados os locais de maior consumo de  CPU, que correspondiam às etapas de formação e solução do sistema de equações. Foi feito, inicialmente, estudo de uso de otimizações através de opções do compilador mostrando a influência no desempenho final. Em seguida, foi feita implementação de programação paralela multithread usando o padrão OpenMP na paralelização da etapa de formação do sistema de equações. Nesta implementação, foi elaborada uma estratégia de divisão de tarefas com particionamento de domínio, de forma diferente à tradicional paralelização de laço com diretivas de OpenMP, que trouxe mais facilidade no tratamento de variáveis e eliminou uso de regiões críticas.

Abstract


The time spent in non-linear structural analysis of risers in the time domain, using computer modeling programs, often becomes a critical point in the design and feasibility studies of these structures. Thus, this study aims to propose and implement techniques to improve the computational performance of a program for structural analysis of risers, exploring multicore architectures, which allow execution of tasks concurrently. To use the ability of multiple processing of these architectures was used parallel computing using multithreaded programming. We analyzed the existing sequential code and identified the areas of highest consumption of CPU, which corresponded to the stages of assemble and solution of the system of equations. It was done, initially, study on use of optimizations the  compiler options by showing the influence on final performance. Then, was made implementation of multithreaded parallel programming using the OpenMP standard to apply parallelization on the stage of assemble of the system of equations. In this implementation, a strategy was developed for division of tasks with domain partitioning, differently to the traditional loop parallelization with OpenMP directives, which  brought more easily in the treatment of variables and elimination of critical regions.

Print