Vetorização e Análise de Algoritmos Paralelos para a Migração Kirchhoff Pré-empilhamento em Tempo

  • Rodrigo Alves Prado da Silva UFF
  • Maicon Melo Alves UFF
  • Cristiana Barbosa Bentes UERJ
  • Lúcia Maria de Assumpção Drummond UFF

Resumo


A Migração Kirchhoff Pré-empilhamento em Tempo (ou PKTM, do inglês Pre-stack Kirchhoff Time Migration) é parte central do processo de exploração de petróleo. Como o PKTM é computacionalmente intensivo, muitos trabalhos propuseram o uso de aceleradores como GPU (Graphical Processing Units) para reduzir o seu tempo de execução. Embora os processadores modernos possuam um recurso de aceleração vetorial, apenas um trabalho avaliou o uso deste recurso para acelerar o PKTM. Contudo, este trabalho avaliou apenas a versão sequencial desta aplicação. Nesse trabalho, propõe-se uma analise da vetorização de duas versões paralelas do PKTM. Para a primeira versão paralela, foi utilizado OpenMP e para a segunda, foi utilizado MPI. Em relação à vetorização, foram consideradas a vetorização automática, executada pelo compilador, e a vetorização manual, implementada pelo programador. Uma análise experimental mostrou que a vetorização automática no código com o OpenMP produziu melhores resultados do que os obtidos no código sequencial e no código com MPI. Assim, foram propostas algumas otimizações que permitiram que as versões sequenciais e com MPI obtivessem um desempenho similar ao alcançado no código com OpenMP.

Referências

Claerbout, J. F. (1985). Fundamentals of Geophysical Data Processing. Pennwell Books.

Dai, H. (2005). Parallel Processing of Prestack Kirchhoff Time Migration on a PC cluster. Computers & geosciences, 31(7):891–899.

Hofmann, J., Treibig, J., Hager, G., e Wellein, G. (2014). Comparing the performance of different x86 simd instruction sets for a medical imaging application on modern multi In Proceedings of the Workshop on Programming models for and manycore chips. SIMD/Vector processing, páginas 57–64. ACM.

Intel (2012). A Guide to Vectorization with Intel C++ Compilers. Relatório técnico.

Lomont, C. (2011). Introduction to Intel Advanced Vector Extensions. Intel White Paper.

Melo Alves, M., Cruz Pestana, R., Alves Prado da Silva, R., e Drummond, L. (2016). Accelerating Pre-stack Kirchhoff Time Migration by Manual Vectorization. Concurrency and Computation: Practice and Experience.

Mitra, G., Johnston, B., Rendell, A. P., McCreath, E., e Zhou, J. (2013). Use of SIMD Vector Operations to Accelerate Application Code Performance on Low-powered ARM and Intel Platforms. In 27th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), páginas 1107–1116. IEEE.

Panetta, J., Teixeira, T., de Souza Filho, P. R., da Cunha Filho, C. A., Sotelo, D., da Motta, F. M. R., Pinheiro, S. S., Rosa, A. L. R., Monnerat, L. R., Carneiro, L. T., et al. (2012). Accelerating Time and Depth Seismic Migration by CPU and GPU Cooperation. International Journal of Parallel Programming, 40(3):290–312.

Rizvandi, Nikzad Babaii e Boloori, A. J., Kamyabpour, N., e Zomaya, A. Y. (2011). MapReduce Implementation of Prestack Kirchhoff Time Migration (PKTM) on Seismic Data. In 12th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), páginas 86–91. IEEE.

Schuchart, J., Waurich, V., Flehmig, M., Walther, M., Nagel, W. E., e Gubsch, I. (2015). Exploiting Repeated Structures and Vectorization in Modelica. In 11th International Modelica Conference, páginas 265–272. Modelica Association Paris, France.

Shi, X., Li, C., Wang, S., e Wang, X. (2011). Computing Prestack Kirchhoff Time Migration on General Purpose GPU. Computers & Geosciences, 37(10):1702–1710.

Sun, P. e Shi, X. (2012). An OpenCL Approach of Prestack Kirchhoff Time Migration In 13th International Conference on Parallel Algorithm on General Purpose GPU. and Distributed Computing, Applications and Technologies (PDCAT), páginas 179– 183. IEEE.

Teixeira, D., Yeh, A., e Sampath Gajawada, T. (2013). Implementation of Kirchhoff Prestack Depth Migration on GPU. SEG Technical Program Expanded Abstracts, 3683:3686.

Xu, R., Hugues, M., Calandra, H., Chandrasekaran, S., e Chapman, B. (2014). Accelerating Kirchhoff Migration on GPU using Directives. In First Workshop on Accelerator Programming using Directives (WACCPD), páginas 37–46. IEEE.

Yang, C.-T., Huang, C.-L., e Lin, C.-F. (2011). Hybrid CUDA, OpenMP, and MPI Parallel Programming on Multicore GPU Clusters. Computer Physics Communications, 182(1):266–269.

Yilmaz, O. e Doherty, S. M. (1987). Seismic Data Processing, volume 2 of Investigations in Geophysics. Society of Exploration.
Publicado
17/10/2017
ALVES PRADO DA SILVA, Rodrigo; MELO ALVES, Maicon; BARBOSA BENTES, Cristiana; DE ASSUMPÇÃO DRUMMOND, Lúcia Maria. Vetorização e Análise de Algoritmos Paralelos para a Migração Kirchhoff Pré-empilhamento em Tempo. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 18. , 2017, Campinas. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2017 . p. 304-315. DOI: https://doi.org/10.5753/wscad.2017.258.