rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
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/10198/23222 |
Resumo: | Há cerca de uma década, o panorama da arquitetura dos sistemas de computação registou um salto evolutivo, com o aparecimento de sistemas heterogéneos. Nestes sistemas, à unidade central de processamento (CPU), talhada para uso genérico, juntaram-se dispositivos co-processadores, como GPUs e FPGAs, de diferentes arquiteturas. Originalmente concebidos para fins muito específicos (como processamento gráfico ou de sinal), estes coprocessadores passaram a ser vistos como elementos auxiliares de processamento, capazes de acelerar a execução de aplicações computacionalmente exigentes. Para permitir a exploração eficiente de sistemas heterogéneos, e garantir portabilidade do código, definiram-se standards abertos, como o OpenCL, suportando co-processadores de virtualmente qualquer tipo. Noutros casos, passaram a existir frameworks proprietárias, orientadas a dispositivos de fabricantes específicos, como a framework CUDA para GPUs da NVIDIA. Comum a todas estas abordagens é o facto de, originalmente, apenas preverem a utilização de co-processadores locais, ligados a um único sistema hospedeiro, não possibilitando a exploração de aceleradores ligados a outros sistemas, acessíveis via rede, limitando assim o potencial de aceleração das aplicações. O trabalho desenvolvido nesta dissertação dá resposta a esta limitação. Consistiu na criação do remote OpenCL (rOpenCL), middleware e serviços que, em conjunto, permitem que uma aplicação OpenCL (mesmo pré-compilada), explore de forma transparente e eficiente o conjunto de aceleradores disponíveis num ambiente distribuído de sistemas Linux, recorrendo a comunicação portável assente em sockets BSD. A abordagem é validada recorrendo a benchmarks OpenCL de referência, que provam a conformidade do rOpenCL com a especificação OpenCL 1.2, bem como a robustez e escalabilidade da implementação. |
id |
RCAP_1050595688fe264016395ca32bc3e0e0 |
---|---|
oai_identifier_str |
oai:bibliotecadigital.ipb.pt:10198/23222 |
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 |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotosOpenCLSocketsCSistemas heterogéneosSistemas distribuídosDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaHá cerca de uma década, o panorama da arquitetura dos sistemas de computação registou um salto evolutivo, com o aparecimento de sistemas heterogéneos. Nestes sistemas, à unidade central de processamento (CPU), talhada para uso genérico, juntaram-se dispositivos co-processadores, como GPUs e FPGAs, de diferentes arquiteturas. Originalmente concebidos para fins muito específicos (como processamento gráfico ou de sinal), estes coprocessadores passaram a ser vistos como elementos auxiliares de processamento, capazes de acelerar a execução de aplicações computacionalmente exigentes. Para permitir a exploração eficiente de sistemas heterogéneos, e garantir portabilidade do código, definiram-se standards abertos, como o OpenCL, suportando co-processadores de virtualmente qualquer tipo. Noutros casos, passaram a existir frameworks proprietárias, orientadas a dispositivos de fabricantes específicos, como a framework CUDA para GPUs da NVIDIA. Comum a todas estas abordagens é o facto de, originalmente, apenas preverem a utilização de co-processadores locais, ligados a um único sistema hospedeiro, não possibilitando a exploração de aceleradores ligados a outros sistemas, acessíveis via rede, limitando assim o potencial de aceleração das aplicações. O trabalho desenvolvido nesta dissertação dá resposta a esta limitação. Consistiu na criação do remote OpenCL (rOpenCL), middleware e serviços que, em conjunto, permitem que uma aplicação OpenCL (mesmo pré-compilada), explore de forma transparente e eficiente o conjunto de aceleradores disponíveis num ambiente distribuído de sistemas Linux, recorrendo a comunicação portável assente em sockets BSD. A abordagem é validada recorrendo a benchmarks OpenCL de referência, que provam a conformidade do rOpenCL com a especificação OpenCL 1.2, bem como a robustez e escalabilidade da implementação.About a decade ago, the landscape of computer systems architecture registered an evolutionary leap, with the appearance of heterogeneous systems. In these systems, the central processing unit (CPU), designed for generic use, was joined by co-processor devices, such as GPUS and FPGAS, of different architectures. Originally designed for very specific purposes (such as graphic or signal processing), these co-processors came to be seen as auxiliary processing elements, capable of accelerating the execution of computationally demanding applications. To allow efficient exploitation of heterogeneous systems, and to ensure portability of code, open standards were defined, such as OpenCL, supporting coprocessors of virtually any type. In other cases, there have been proprietary frameworks oriented to devices from specific manufacturers, such as the CUDA framework for NVIDIA GPUs. Common to all these approaches is that they originally only provide for the use of local co-processors, which are connected to a single host system, and do not allow the exploitation of accelerators connected to other systems, accessible via the network, thereby limiting the potential for application acceleration. The work developed in this dissertation responds to this limitation. It consisted of the creation of remote OpenCL (rOpenCL), middleware and services that allow an OpenCL application (even pre-compiled) to transparently and efficiently explore the set of accelerators available in a distributed Linux system environment, using portable BSD sockets for communication. The approach is validated using reference OpenCL benchmarks, which prove the rOpenCL compliance with the OpenCL 1.2 specification, as well as the robustness and scalability of the implementation.Rufino, JoséBiblioteca Digital do IPBAlves, Rui2021-02-04T15:54:50Z202020192020-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10198/23222TID:202605108porinfo: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-11-21T10:51:58Zoai:bibliotecadigital.ipb.pt:10198/23222Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T23:14:15.564317Repositó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 |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos |
title |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos |
spellingShingle |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos Alves, Rui OpenCL Sockets C Sistemas heterogéneos Sistemas distribuídos Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos |
title_full |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos |
title_fullStr |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos |
title_full_unstemmed |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos |
title_sort |
rOpenCL: uma ferramenta para acesso de aplicações heterogéneas a co-processadores remotos |
author |
Alves, Rui |
author_facet |
Alves, Rui |
author_role |
author |
dc.contributor.none.fl_str_mv |
Rufino, José Biblioteca Digital do IPB |
dc.contributor.author.fl_str_mv |
Alves, Rui |
dc.subject.por.fl_str_mv |
OpenCL Sockets C Sistemas heterogéneos Sistemas distribuídos Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
OpenCL Sockets C Sistemas heterogéneos Sistemas distribuídos Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
Há cerca de uma década, o panorama da arquitetura dos sistemas de computação registou um salto evolutivo, com o aparecimento de sistemas heterogéneos. Nestes sistemas, à unidade central de processamento (CPU), talhada para uso genérico, juntaram-se dispositivos co-processadores, como GPUs e FPGAs, de diferentes arquiteturas. Originalmente concebidos para fins muito específicos (como processamento gráfico ou de sinal), estes coprocessadores passaram a ser vistos como elementos auxiliares de processamento, capazes de acelerar a execução de aplicações computacionalmente exigentes. Para permitir a exploração eficiente de sistemas heterogéneos, e garantir portabilidade do código, definiram-se standards abertos, como o OpenCL, suportando co-processadores de virtualmente qualquer tipo. Noutros casos, passaram a existir frameworks proprietárias, orientadas a dispositivos de fabricantes específicos, como a framework CUDA para GPUs da NVIDIA. Comum a todas estas abordagens é o facto de, originalmente, apenas preverem a utilização de co-processadores locais, ligados a um único sistema hospedeiro, não possibilitando a exploração de aceleradores ligados a outros sistemas, acessíveis via rede, limitando assim o potencial de aceleração das aplicações. O trabalho desenvolvido nesta dissertação dá resposta a esta limitação. Consistiu na criação do remote OpenCL (rOpenCL), middleware e serviços que, em conjunto, permitem que uma aplicação OpenCL (mesmo pré-compilada), explore de forma transparente e eficiente o conjunto de aceleradores disponíveis num ambiente distribuído de sistemas Linux, recorrendo a comunicação portável assente em sockets BSD. A abordagem é validada recorrendo a benchmarks OpenCL de referência, que provam a conformidade do rOpenCL com a especificação OpenCL 1.2, bem como a robustez e escalabilidade da implementação. |
publishDate |
2019 |
dc.date.none.fl_str_mv |
2019 2020 2020-01-01T00:00:00Z 2021-02-04T15:54:50Z |
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/10198/23222 TID:202605108 |
url |
http://hdl.handle.net/10198/23222 |
identifier_str_mv |
TID:202605108 |
dc.language.iso.fl_str_mv |
por |
language |
por |
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_ |
1799135421628678144 |