Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3

Detalhes bibliográficos
Autor(a) principal: Ribeiro, Bruno Miguel Freitas
Data de Publicação: 2020
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/1822/74437
Resumo: Dissertação de mestrado integrado em Engenharia Eletrónica Industrial e Computadores
id RCAP_b95aeafbeae5d11a5b0ad4618fb058ee
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/74437
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3PROBA-3OpenACCParalelizaçãoCPUGPUCUDAOtimizaçãoParallelizationOptimizationEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado integrado em Engenharia Eletrónica Industrial e ComputadoresEsta dissertação surgiu no âmbito da missão espacial PROBA-3 da ESA. Esta missão tem como objetivo estudar em maior profundidade a coroa solar, com o intuito de obter dados importantes sobre o sol e os raios solares. Para realizar esta observação irão ser lançados dois satélites que irão realizar um trajeto em formação. Estes dois satélites irão formar um coronagraph, um instrumento utilizado para observar a coroa solar. Apesar deste instrumento já eliminar parte do ruído luminoso originado por outras fontes de luz é necessário que este ruído seja também reduzido com métodos de software. Devido aos desalinhamentos causados pelo vôo em formação dos dois satélites a imagem obtida necessita de ser processada pixel por pixel, aumentando assim o tempo de execução do código. Esta dissertação tem como objetivo estudar e implementar métodos que otimizem o código já desenvolvido, para que este tenha a capacidade de analisar mais imagens em um menor período de tempo. O método de otimização que terá maior foco nesta dissertação é a paralelização. O código inicial será inicialmente paralelizado com OpenACC, sendo este um modelo de programação que permite que a paralelização do código seja feita apenas com o recurso a incrementação de diretivas. Com este modelo será estudado o desempenho da execução do código paralelizado para CPU e para GPU para poderem ser comparados ambos os desempenhos. Devido à comunicação e transferência de memória entre o CPU e o GPU ser bastante demorada, a execução de código paralelo no GPU pode não ser eficaz se existir a necessidade de várias transferências de memória entre os dois processadores. Apesar de OpenACC permitir que o código seja paralelizado sem a alteração do mesmo, algumas partes do código para poderem ser paralelizadas necessitam de ser modificadas. Devido a ter partes do código a serem executadas no CPU e outras no GPU é necessário transferência de memória entre eles, fazendo assim com que o desempenho do código seja pior. Para obter a total paralelização do código de forma a eliminar o tempo gasto na transferência de dados o código foi alterado e codificado em CUDA. CUDA é uma framework da NVIDIA que permite escrever código para ser executado em GPUs da NVIDIA. Com o uso de CUDA é possível analisar a verdadeira potencialidade de um GPU na resolução de problemas matemáticos.This dissertation appeared in the scope of the PROBA-3 space mission from ESA. This mission aims to study in more detail the solar corona, with the objective of getting important data about the sun and the sun rays. These observation will be done by two satellites in a formation flight. This two satellites will form a coronagraph, which is an instrument used to perform observations to the solar corona. Despite this instrument already eliminates part of the luminous noise originated by other light sources, it is necessary that this noise is also reduced by software methods. Due to the misalignments caused by the formation flight of the two satellites, the image obtained needs to be processed pixel by pixel, thus increasing the execution time of the code. This dissertation aims to study and implement methods that optimize the code already developed, so that it has the ability to analyze more images in a shorter period of time. The optimization method that will have the greatest focus on this dissertation is parallelization. The initial code will initially be parallelized with OpenACC, this being a programming model that allows the code to be paralyzed only with the addition of directives. With this model, the performance of the execution of the parallel code for CPU and for GPU will be studied so that both performances can be compared. Because communication and memory transfer between CPU and GPU takes a long time, running parallel code on GPU may not be effective if there is a need for multiple memory transfers between the two processors. Although OpenACC allows the code to be parallelized without changing it, some parts of the code in order to be parallelized need to be modified. Due to having parts of the code to be executed in CPU and others in GPU, it is necessary to transfer memory between them, thus making the code performance worse. To obtain complete parallelization of the code in order to eliminate the time spent on data transfer, the code was changed and coded in CUDA. CUDA is an NVIDIA framework that allows to write code to run on NVIDIA’s GPU. Using CUDA it is possible to analyze the true potential of a GPU in solving mathematical problems.Ribeiro, A. FernandoUniversidade do MinhoRibeiro, Bruno Miguel Freitas20202020-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/1822/74437por202727726info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-07-21T12:02:30Zoai:repositorium.sdum.uminho.pt:1822/74437Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T18:52:28.863020Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
title Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
spellingShingle Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
Ribeiro, Bruno Miguel Freitas
PROBA-3
OpenACC
Paralelização
CPU
GPU
CUDA
Otimização
Parallelization
Optimization
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
title_full Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
title_fullStr Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
title_full_unstemmed Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
title_sort Otimização do código de remoção de imagem fantasma utilizado na missão espacial Proba-3
author Ribeiro, Bruno Miguel Freitas
author_facet Ribeiro, Bruno Miguel Freitas
author_role author
dc.contributor.none.fl_str_mv Ribeiro, A. Fernando
Universidade do Minho
dc.contributor.author.fl_str_mv Ribeiro, Bruno Miguel Freitas
dc.subject.por.fl_str_mv PROBA-3
OpenACC
Paralelização
CPU
GPU
CUDA
Otimização
Parallelization
Optimization
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic PROBA-3
OpenACC
Paralelização
CPU
GPU
CUDA
Otimização
Parallelization
Optimization
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Dissertação de mestrado integrado em Engenharia Eletrónica Industrial e Computadores
publishDate 2020
dc.date.none.fl_str_mv 2020
2020-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/74437
url http://hdl.handle.net/1822/74437
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv 202727726
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799132301072793600