Summary: | === Oil is one of the most important and strategic energy resources in the world. The increasing oil demand and price now support its production where it was previously unfeasible. The most common strategy to nd potential reserves is through seismic methods, among which the Kirchho seismic migration is one of the most popular strategies. However, it is computationally intensive and improving its performance has been researched in several works, often through their parallelization.On the other hand, we are witnessing the emergence of novel parallel computing architectures where each processing node is organized as a hierarchy of several heterogeneous processors that may be multi-core or many-core, such as Graphical Processing Units (GPUs), used as a consequence of their computing power. Such architectures are becoming commonplace and represent a challenge with respect to design computationally ecient programs. In this thesis, we discuss the parallelization of the Kirchho seismic migration algorithm for execution on the aforementioned heterogeneous environment. We proposeand evaluate parallel implementations that use eciently the available processors. We exploited the trade os among three parallelism opportunities, namely asynchrony, data parallelism and task parallelism, by designing, implementing and evaluating various possible congurations. We also devised and implemented a ner grain dynamicscheduling for the devices, supporting executions that present higher eciency. The experiments showed an acceleration of 87 times compared to execution on a single CPU core. This was due to CPU and the GPU ecient use through the approaches presented. === O petróleo é um dos recursos energéticos mais importantes e estratégicos no mundo. A demanda e o preço do barril crescentes viabilizam a produção de óleo e gás em áreas outrora inviáveis. A estratégia mais utilizada para encontrar possíveis reservas éatravés dos métodos sísmicos, entre os quais a migração sísmica de Kirchho é uma das mais populares. Entretanto, ela é computacionalmente intensiva e, por isso, melhorar o seu desempenho tem sido o foco de vários trabalhos, frequentemente através da suaparalelização. Por outro lado, estamos observando o aparecimento de novas arquiteturas de computação paralela onde cada nó de processamento é organizado como uma hierarquia de vários processadores heterogêneos que podem ser multi-core ou many-core, como as placas grácas (GPUs), empregadas em razão do seu poder de processamento. A despeito da sua popularidade, essas arquiteturas representam um desao em termos de projetar programas ecientes computacionalmente. Nesse trabalho, discutimos a paralelização do algoritmo da migração sísmica de Kirchho para um ambiente heterogêneo distribuído composto de CPUs multinúcleo e GPUs. Propomos e avaliamos implementações paralelas que utilizam ecientemente os processadores disponíveis. Exploramos os compromissos entre três dimensões de paralelismo, nominalmente assincronia, paralelismo de dados e paralelismo de tarefas,projetando, implementando e avaliando várias congurações possíveis. Nós também projetamos e implementamos um escalonamento dinâmico de grão mais no para os dispositivos, possibilitando execuções mais ecientes. Os experimentos apresentaram uma aceleração de até 87 vezes com relação à execução em um único núcleo CPU. Esse resultado é decorrente da utilização eciente das CPUs e da GPU através das estratégias apresentadas.
|