Uma interface para escalonamento de algoritmos iterativos em C++
Autor(a) principal: | |
---|---|
Data de Publicação: | 2020 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFPel - Guaiaca |
Texto Completo: | http://guaiaca.ufpel.edu.br/handle/prefix/6654 |
Resumo: | Atualmente, as arquiteturas paralelas estão presente em praticamente todos os tipos de dispositivos, justificando uma busca por ferramentas e técnicas que facilitem o desenvolvimento de aplicações paralelas sem prejudicar o desempenho. As ferramentas atuais para programação paralela entendem essa necessidade e focam seus esforços em estratégias de escalonamento que tirem vantagem dos padrões paralelos comumente presentes no desenvolvimento de aplicações paralelas. Os algoritmos iterativos compõem uma grande parcela dos problemas computacionais, soluções que otimizem a execução desses algoritmos estão relacionadas à forma como as tarefas são divididas e escalonadas. Porém estas ferramentas não oferecem a flexibilidade para alterar a política de escalonamento, forçando o desenvolvedor a projetar a solução do problema de acordo com a ferramenta escolhida e sua forma de escalonamento, exigindo do desenvolvedor o conhecimento de detalhes sobre a implementação da ferramenta para extrair o máximo de desempenho. Essa abordagem oferece pouco reuso de código, e a portabilidade fica dependente das plataformas suportadas pela ferramenta. Este trabalho propõe uma interface paralela orientada a objetos que permita a troca das políticas de escalonamento, permitindo a adequação da estratégia de escalonamento em função da necessidade do algoritmo. O padrão paralelo map foi utilizado como estudo de caso para validação e aferição do desempenho, comparando os resultados com outras ferramentas disponíveis para C++, como TBB e OpenMP. |
id |
UFPL_a0b5be9e0494a34b6b0f1a54ad61aefa |
---|---|
oai_identifier_str |
oai:guaiaca.ufpel.edu.br:prefix/6654 |
network_acronym_str |
UFPL |
network_name_str |
Repositório Institucional da UFPel - Guaiaca |
repository_id_str |
|
spelling |
2020-11-26T13:52:16Z2020-11-26T13:52:16Z2020-04-23SCHMALFUSS, Murilo Figueiredo. Uma Interface para Escalonamento de Algoritmos Iterativos em C++. Orientador: Gerson Geraldo H. Cavalheiro. 2020. 84 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2020.http://guaiaca.ufpel.edu.br/handle/prefix/6654Atualmente, as arquiteturas paralelas estão presente em praticamente todos os tipos de dispositivos, justificando uma busca por ferramentas e técnicas que facilitem o desenvolvimento de aplicações paralelas sem prejudicar o desempenho. As ferramentas atuais para programação paralela entendem essa necessidade e focam seus esforços em estratégias de escalonamento que tirem vantagem dos padrões paralelos comumente presentes no desenvolvimento de aplicações paralelas. Os algoritmos iterativos compõem uma grande parcela dos problemas computacionais, soluções que otimizem a execução desses algoritmos estão relacionadas à forma como as tarefas são divididas e escalonadas. Porém estas ferramentas não oferecem a flexibilidade para alterar a política de escalonamento, forçando o desenvolvedor a projetar a solução do problema de acordo com a ferramenta escolhida e sua forma de escalonamento, exigindo do desenvolvedor o conhecimento de detalhes sobre a implementação da ferramenta para extrair o máximo de desempenho. Essa abordagem oferece pouco reuso de código, e a portabilidade fica dependente das plataformas suportadas pela ferramenta. Este trabalho propõe uma interface paralela orientada a objetos que permita a troca das políticas de escalonamento, permitindo a adequação da estratégia de escalonamento em função da necessidade do algoritmo. O padrão paralelo map foi utilizado como estudo de caso para validação e aferição do desempenho, comparando os resultados com outras ferramentas disponíveis para C++, como TBB e OpenMP.Currently, parallel architectures are present in almost all kind of devices, justifying a search for tools and techniques that facilitate the development of parallel applications without jeopardizing performance. The current tools for parallel programming understand this need and focus their efforts on scheduling mechanisms that take advantage of common parallel patterns, present in the development of parallel applications. Iterative algorithms make up a large portion of computational problems, solutions that optimize the execution of these algorithms are related to the way the tasks are divided and scheduled. However, these tools do not offer the flexibility to change the scheduling policy, forcing the developer to solve problems according to the chosen tools and their way of scheduling, requiring the developer a knowledge of details about the implementation of tools to extract maximum performance. This approach offers a parallel object-oriented interface that allows to switch scheduling policies, allowing the scheduling strategy to be adapted according to the use of the algorithm. The parallel pattern map was used for a case study of performance validation and performance, comparing the results with other tools available for C ++, such as TBB and OpenMP.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESporUniversidade Federal de PelotasPrograma de Pós-Graduação em ComputaçãoUFPelBrasilCentro de Desenvolvimento TecnológicoCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAOEscalonamentoAlgoritmos iterativosComputaçãoProcessamento paraleloProcessamento de alto desempenhoSchedulingIterative algorithmsParallel processingHigh performance computingUma interface para escalonamento de algoritmos iterativos em C++An interface for scheduling iterative algorithms in C++info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://lattes.cnpq.br/2410170342051507http://lattes.cnpq.br/1542351302502326Cavalheiro, Gerson Geraldo HomrichSchmalfuss, Murilo Figueiredoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPELTEXTDissertacao_Murilo_Figueiredo_Schmalfuss.pdf.txtDissertacao_Murilo_Figueiredo_Schmalfuss.pdf.txtExtracted texttext/plain157218http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/6/Dissertacao_Murilo_Figueiredo_Schmalfuss.pdf.txtc9d7137aead19671ac4a38d388f5cc22MD56open accessTHUMBNAILDissertacao_Murilo_Figueiredo_Schmalfuss.pdf.jpgDissertacao_Murilo_Figueiredo_Schmalfuss.pdf.jpgGenerated Thumbnailimage/jpeg1230http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/7/Dissertacao_Murilo_Figueiredo_Schmalfuss.pdf.jpgaf4acf147f39d4df567e8e2a7964ed57MD57open accessORIGINALDissertacao_Murilo_Figueiredo_Schmalfuss.pdfDissertacao_Murilo_Figueiredo_Schmalfuss.pdfapplication/pdf569687http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/1/Dissertacao_Murilo_Figueiredo_Schmalfuss.pdf159a022e6aa7cbdc856ae45f17321132MD51open accessCC-LICENSElicense_urllicense_urltext/plain; charset=utf-849http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/2/license_url4afdbb8c545fd630ea7db775da747b2fMD52open accesslicense_textlicense_texttext/html; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/3/license_textd41d8cd98f00b204e9800998ecf8427eMD53open accesslicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/4/license_rdfd41d8cd98f00b204e9800998ecf8427eMD54open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81866http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/5/license.txt43cd690d6a359e86c1fe3d5b7cba0c9bMD55open accessprefix/66542023-07-13 04:30:38.898open accessoai:guaiaca.ufpel.edu.br:prefix/6654TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgYW8gUmVwb3NpdMOzcmlvIApJbnN0aXR1Y2lvbmFsIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyLCAgdHJhZHV6aXIgKGNvbmZvcm1lIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBhIApzdWEgcHVibGljYcOnw6NvIChpbmNsdWluZG8gbyByZXN1bW8pIHBvciB0b2RvIG8gbXVuZG8gbm8gZm9ybWF0byBpbXByZXNzbyBlIGVsZXRyw7RuaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIApmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIG8gRGVwb3NpdGEgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIGEgc3VhIHB1YmxpY2HDp8OjbyBwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byAKcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBvIERlcG9zaXRhIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZSBzdWEgcHVibGljYcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIAplIHByZXNlcnZhw6fDo28uCgpWb2PDqiBkZWNsYXJhIHF1ZSBhIHN1YSBwdWJsaWNhw6fDo28gw6kgb3JpZ2luYWwgZSBxdWUgdm9jw6ogdGVtIG8gcG9kZXIgZGUgY29uY2VkZXIgb3MgZGlyZWl0b3MgY29udGlkb3MgbmVzdGEgbGljZW7Dp2EuIApWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIG8gZGVww7NzaXRvIGRhIHN1YSBwdWJsaWNhw6fDo28gbsOjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgCmRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSBwdWJsaWNhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6ogZGVjbGFyYSBxdWUgCm9idGV2ZSBhIHBlcm1pc3PDo28gaXJyZXN0cml0YSBkbyBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgcGFyYSBjb25jZWRlciBhbyBEZXBvc2l0YSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgCm5lc3RhIGxpY2Vuw6dhLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIGlkZW50aWZpY2FkbyBlIHJlY29uaGVjaWRvIG5vIHRleHRvIApvdSBubyBjb250ZcO6ZG8gZGEgcHVibGljYcOnw6NvIG9yYSBkZXBvc2l0YWRhLgoKQ0FTTyBBIFBVQkxJQ0HDh8ODTyBPUkEgREVQT1NJVEFEQSBURU5IQSBTSURPIFJFU1VMVEFETyBERSBVTSBQQVRST0PDjU5JTyBPVSBBUE9JTyBERSBVTUEgQUfDik5DSUEgREUgRk9NRU5UTyBPVSBPVVRSTyAKT1JHQU5JU01PLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyBUQU1Cw4lNIEFTIERFTUFJUyBPQlJJR0HDh8OVRVMgCkVYSUdJREFTIFBPUiBDT05UUkFUTyBPVSBBQ09SRE8uCgpPIERlcG9zaXRhIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUgKHMpIG91IG8ocykgbm9tZShzKSBkbyhzKSBkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIAphdXRvcmFpcyBkYSBwdWJsaWNhw6fDo28sIGUgbsOjbyBmYXLDoSBxdWFscXVlciBhbHRlcmHDp8OjbywgYWzDqW0gZGFxdWVsYXMgY29uY2VkaWRhcyBwb3IgZXN0YSBsaWNlbsOnYS4KRepositório InstitucionalPUBhttp://repositorio.ufpel.edu.br/oai/requestrippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.bropendoar:2023-07-13T07:30:38Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)false |
dc.title.pt_BR.fl_str_mv |
Uma interface para escalonamento de algoritmos iterativos em C++ |
dc.title.alternative.pt_BR.fl_str_mv |
An interface for scheduling iterative algorithms in C++ |
title |
Uma interface para escalonamento de algoritmos iterativos em C++ |
spellingShingle |
Uma interface para escalonamento de algoritmos iterativos em C++ Schmalfuss, Murilo Figueiredo CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO Escalonamento Algoritmos iterativos Computação Processamento paralelo Processamento de alto desempenho Scheduling Iterative algorithms Parallel processing High performance computing |
title_short |
Uma interface para escalonamento de algoritmos iterativos em C++ |
title_full |
Uma interface para escalonamento de algoritmos iterativos em C++ |
title_fullStr |
Uma interface para escalonamento de algoritmos iterativos em C++ |
title_full_unstemmed |
Uma interface para escalonamento de algoritmos iterativos em C++ |
title_sort |
Uma interface para escalonamento de algoritmos iterativos em C++ |
author |
Schmalfuss, Murilo Figueiredo |
author_facet |
Schmalfuss, Murilo Figueiredo |
author_role |
author |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/2410170342051507 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/1542351302502326 |
dc.contributor.advisor1.fl_str_mv |
Cavalheiro, Gerson Geraldo Homrich |
dc.contributor.author.fl_str_mv |
Schmalfuss, Murilo Figueiredo |
contributor_str_mv |
Cavalheiro, Gerson Geraldo Homrich |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO Escalonamento Algoritmos iterativos Computação Processamento paralelo Processamento de alto desempenho Scheduling Iterative algorithms Parallel processing High performance computing |
dc.subject.por.fl_str_mv |
Escalonamento Algoritmos iterativos Computação Processamento paralelo Processamento de alto desempenho Scheduling Iterative algorithms Parallel processing High performance computing |
description |
Atualmente, as arquiteturas paralelas estão presente em praticamente todos os tipos de dispositivos, justificando uma busca por ferramentas e técnicas que facilitem o desenvolvimento de aplicações paralelas sem prejudicar o desempenho. As ferramentas atuais para programação paralela entendem essa necessidade e focam seus esforços em estratégias de escalonamento que tirem vantagem dos padrões paralelos comumente presentes no desenvolvimento de aplicações paralelas. Os algoritmos iterativos compõem uma grande parcela dos problemas computacionais, soluções que otimizem a execução desses algoritmos estão relacionadas à forma como as tarefas são divididas e escalonadas. Porém estas ferramentas não oferecem a flexibilidade para alterar a política de escalonamento, forçando o desenvolvedor a projetar a solução do problema de acordo com a ferramenta escolhida e sua forma de escalonamento, exigindo do desenvolvedor o conhecimento de detalhes sobre a implementação da ferramenta para extrair o máximo de desempenho. Essa abordagem oferece pouco reuso de código, e a portabilidade fica dependente das plataformas suportadas pela ferramenta. Este trabalho propõe uma interface paralela orientada a objetos que permita a troca das políticas de escalonamento, permitindo a adequação da estratégia de escalonamento em função da necessidade do algoritmo. O padrão paralelo map foi utilizado como estudo de caso para validação e aferição do desempenho, comparando os resultados com outras ferramentas disponíveis para C++, como TBB e OpenMP. |
publishDate |
2020 |
dc.date.accessioned.fl_str_mv |
2020-11-26T13:52:16Z |
dc.date.available.fl_str_mv |
2020-11-26T13:52:16Z |
dc.date.issued.fl_str_mv |
2020-04-23 |
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.citation.fl_str_mv |
SCHMALFUSS, Murilo Figueiredo. Uma Interface para Escalonamento de Algoritmos Iterativos em C++. Orientador: Gerson Geraldo H. Cavalheiro. 2020. 84 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2020. |
dc.identifier.uri.fl_str_mv |
http://guaiaca.ufpel.edu.br/handle/prefix/6654 |
identifier_str_mv |
SCHMALFUSS, Murilo Figueiredo. Uma Interface para Escalonamento de Algoritmos Iterativos em C++. Orientador: Gerson Geraldo H. Cavalheiro. 2020. 84 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2020. |
url |
http://guaiaca.ufpel.edu.br/handle/prefix/6654 |
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.publisher.none.fl_str_mv |
Universidade Federal de Pelotas |
dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Computação |
dc.publisher.initials.fl_str_mv |
UFPel |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
Centro de Desenvolvimento Tecnológico |
publisher.none.fl_str_mv |
Universidade Federal de Pelotas |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPel - Guaiaca instname:Universidade Federal de Pelotas (UFPEL) instacron:UFPEL |
instname_str |
Universidade Federal de Pelotas (UFPEL) |
instacron_str |
UFPEL |
institution |
UFPEL |
reponame_str |
Repositório Institucional da UFPel - Guaiaca |
collection |
Repositório Institucional da UFPel - Guaiaca |
bitstream.url.fl_str_mv |
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/6/Dissertacao_Murilo_Figueiredo_Schmalfuss.pdf.txt http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/7/Dissertacao_Murilo_Figueiredo_Schmalfuss.pdf.jpg http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/1/Dissertacao_Murilo_Figueiredo_Schmalfuss.pdf http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/2/license_url http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/3/license_text http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/4/license_rdf http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6654/5/license.txt |
bitstream.checksum.fl_str_mv |
c9d7137aead19671ac4a38d388f5cc22 af4acf147f39d4df567e8e2a7964ed57 159a022e6aa7cbdc856ae45f17321132 4afdbb8c545fd630ea7db775da747b2f d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e 43cd690d6a359e86c1fe3d5b7cba0c9b |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL) |
repository.mail.fl_str_mv |
rippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.br |
_version_ |
1813710126401454080 |