Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3

Detalhes bibliográficos
Autor(a) principal: Kist, Deives Mesquita
Data de Publicação: 2014
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/8510
Resumo: Os programadores tem grandes dificuldades com a programação paralela, principalmente, porque devem dividir a aplicação em partes que possam ser executadas simultaneamente e mapeá-las sobre os núcleos disponíveis no processador de forma que a aplicação tenha bom desempenho. Para realizar essas tarefas são utilizadas ferramentas de programação paralela, neste trabalho é utilizada a ferramenta de programação multithread Anahy3 que tem uma interface baseada no padrão POSIX Threads. O Anahy3 oferece recursos para descrição e controle da concorrência e também mecanismos de escalonamento. Estes mecanismos são executados de forma automática pelo ambiente de execução deixando o programador livre da responsabilidade de mapear as atividades entre os núcleos do processador. O objetivo deste trabalho e estender a interface de programação de Anahy3 por meio de recursos de programação paralela de mais alto nível. Para implementar estes novos recursos encontramos na literatura o conceito de algoritmos de esqueletos paralelos. Os esqueletos são modelos de programação paralela de alto nível que encapsulam padrões de algoritmos recorrentes de programação paralela. Neste trabalho foi desenvolvida uma interface constituída por esqueletos implementados na linguagem C++ por meio de classes templates. Na implementação realizada é possível que o programador defina os tipos de dados a serem manipulados pelos esqueletos, assim eliminando o uso de ponteiros do tipo void* característicos de Pthreads. Os esqueletos que compõem a interface são: Map, Reduce, Zip, Scan, Fork, MapReduce, Farm e Divisão e Conquista.
id UFPL_9801274fca193c0eb69227f6671fb975
oai_identifier_str oai:guaiaca.ufpel.edu.br:prefix/8510
network_acronym_str UFPL
network_name_str Repositório Institucional da UFPel - Guaiaca
repository_id_str
spelling 2022-07-14T22:14:31Z2022-07-14T22:14:31Z2014KIST, Deives Mesquita. Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3. 2014. 87 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Universidade Federal de Pelotas, Pelotas, 2014.http://guaiaca.ufpel.edu.br/handle/prefix/8510Os programadores tem grandes dificuldades com a programação paralela, principalmente, porque devem dividir a aplicação em partes que possam ser executadas simultaneamente e mapeá-las sobre os núcleos disponíveis no processador de forma que a aplicação tenha bom desempenho. Para realizar essas tarefas são utilizadas ferramentas de programação paralela, neste trabalho é utilizada a ferramenta de programação multithread Anahy3 que tem uma interface baseada no padrão POSIX Threads. O Anahy3 oferece recursos para descrição e controle da concorrência e também mecanismos de escalonamento. Estes mecanismos são executados de forma automática pelo ambiente de execução deixando o programador livre da responsabilidade de mapear as atividades entre os núcleos do processador. O objetivo deste trabalho e estender a interface de programação de Anahy3 por meio de recursos de programação paralela de mais alto nível. Para implementar estes novos recursos encontramos na literatura o conceito de algoritmos de esqueletos paralelos. Os esqueletos são modelos de programação paralela de alto nível que encapsulam padrões de algoritmos recorrentes de programação paralela. Neste trabalho foi desenvolvida uma interface constituída por esqueletos implementados na linguagem C++ por meio de classes templates. Na implementação realizada é possível que o programador defina os tipos de dados a serem manipulados pelos esqueletos, assim eliminando o uso de ponteiros do tipo void* característicos de Pthreads. Os esqueletos que compõem a interface são: Map, Reduce, Zip, Scan, Fork, MapReduce, Farm e Divisão e Conquista.Programmers have great difficulties on parallel programming, mainly, because they must split the application in parts which can be executed simultaneously and mapping them on the processor cores that the application have a performace good. To perform this tasks are used parallel programming tools, this work is used the programming tool mutithread Anahy3 which have an interface based on standard POSIX Threads. Anahy offers resources to description and control of competition and also scheduling mechanisms. These mechanisms are automatically executed by execution environment so the programmer does not have responsibility of distribute the activities between the processor cores. The target this work is to extend the programming interface of Anahy3 using parallel programming resources of high level. To implement these new resources we found in literature the Skeletons. The Skeletons are a high-level parallel programming model that encapsulate standards algorithms of parallel programming. In this work was developed an interface constituted by skeletons implemented on language C++ using templates classes. In the implementation realized is possible that the programer define the types of data manipulated by skeletons, so eliminating the use of pointers of type void* feature of Pthreads. The skeletons which belong the interface are: Map, Reduce, Zip, Scan, Fork, MapReduce, Farm e Divide and Conquer.Sem bolsaporUniversidade Federal de PelotasPrograma de Pós-Graduação em ComputaçãoUFPelBrasilCentro de Desenvolvimento TecnológicoCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOComputaçãoInterface de programaçãoMultithreadEsqueletos paralelosProgramming interfaceParallel skeletonsKanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3Kanga: an generic interface based on skeletons to parallel programming on Anahy3info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisDu Bois, Andre RauberCavalheiro, Gerson Geraldo HomrichKist, Deives Mesquitainfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPELTEXTDissertacao_Deives_Kist.pdf.txtDissertacao_Deives_Kist.pdf.txtExtracted texttext/plain165750http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/6/Dissertacao_Deives_Kist.pdf.txt653dd3dce0ad85cf9b03d7ab5ea54cb3MD56open accessTHUMBNAILDissertacao_Deives_Kist.pdf.jpgDissertacao_Deives_Kist.pdf.jpgGenerated Thumbnailimage/jpeg1210http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/7/Dissertacao_Deives_Kist.pdf.jpg47cc4798068c606e789ee87dd9151ae0MD57open accessORIGINALDissertacao_Deives_Kist.pdfDissertacao_Deives_Kist.pdfapplication/pdf941446http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/1/Dissertacao_Deives_Kist.pdf5ff21123fa6fe5cf9ba4a6b24efcea81MD51open accessCC-LICENSElicense_urllicense_urltext/plain; charset=utf-849http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/2/license_url924993ce0b3ba389f79f32a1b2735415MD52open accesslicense_textlicense_texttext/html; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/3/license_textd41d8cd98f00b204e9800998ecf8427eMD53open accesslicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/4/license_rdfd41d8cd98f00b204e9800998ecf8427eMD54open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81866http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/5/license.txt43cd690d6a359e86c1fe3d5b7cba0c9bMD55open accessprefix/85102023-07-13 06:33:01.238open accessoai:guaiaca.ufpel.edu.br:prefix/8510TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgYW8gUmVwb3NpdMOzcmlvIApJbnN0aXR1Y2lvbmFsIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyLCAgdHJhZHV6aXIgKGNvbmZvcm1lIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBhIApzdWEgcHVibGljYcOnw6NvIChpbmNsdWluZG8gbyByZXN1bW8pIHBvciB0b2RvIG8gbXVuZG8gbm8gZm9ybWF0byBpbXByZXNzbyBlIGVsZXRyw7RuaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIApmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIG8gRGVwb3NpdGEgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIGEgc3VhIHB1YmxpY2HDp8OjbyBwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byAKcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBvIERlcG9zaXRhIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZSBzdWEgcHVibGljYcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIAplIHByZXNlcnZhw6fDo28uCgpWb2PDqiBkZWNsYXJhIHF1ZSBhIHN1YSBwdWJsaWNhw6fDo28gw6kgb3JpZ2luYWwgZSBxdWUgdm9jw6ogdGVtIG8gcG9kZXIgZGUgY29uY2VkZXIgb3MgZGlyZWl0b3MgY29udGlkb3MgbmVzdGEgbGljZW7Dp2EuIApWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIG8gZGVww7NzaXRvIGRhIHN1YSBwdWJsaWNhw6fDo28gbsOjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgCmRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSBwdWJsaWNhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6ogZGVjbGFyYSBxdWUgCm9idGV2ZSBhIHBlcm1pc3PDo28gaXJyZXN0cml0YSBkbyBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgcGFyYSBjb25jZWRlciBhbyBEZXBvc2l0YSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgCm5lc3RhIGxpY2Vuw6dhLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIGlkZW50aWZpY2FkbyBlIHJlY29uaGVjaWRvIG5vIHRleHRvIApvdSBubyBjb250ZcO6ZG8gZGEgcHVibGljYcOnw6NvIG9yYSBkZXBvc2l0YWRhLgoKQ0FTTyBBIFBVQkxJQ0HDh8ODTyBPUkEgREVQT1NJVEFEQSBURU5IQSBTSURPIFJFU1VMVEFETyBERSBVTSBQQVRST0PDjU5JTyBPVSBBUE9JTyBERSBVTUEgQUfDik5DSUEgREUgRk9NRU5UTyBPVSBPVVRSTyAKT1JHQU5JU01PLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyBUQU1Cw4lNIEFTIERFTUFJUyBPQlJJR0HDh8OVRVMgCkVYSUdJREFTIFBPUiBDT05UUkFUTyBPVSBBQ09SRE8uCgpPIERlcG9zaXRhIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUgKHMpIG91IG8ocykgbm9tZShzKSBkbyhzKSBkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIAphdXRvcmFpcyBkYSBwdWJsaWNhw6fDo28sIGUgbsOjbyBmYXLDoSBxdWFscXVlciBhbHRlcmHDp8OjbywgYWzDqW0gZGFxdWVsYXMgY29uY2VkaWRhcyBwb3IgZXN0YSBsaWNlbsOnYS4KRepositório InstitucionalPUBhttp://repositorio.ufpel.edu.br/oai/requestrippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.bropendoar:2023-07-13T09:33:01Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)false
dc.title.pt_BR.fl_str_mv Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
dc.title.alternative.pt_BR.fl_str_mv Kanga: an generic interface based on skeletons to parallel programming on Anahy3
title Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
spellingShingle Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
Kist, Deives Mesquita
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Computação
Interface de programação
Multithread
Esqueletos paralelos
Programming interface
Parallel skeletons
title_short Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
title_full Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
title_fullStr Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
title_full_unstemmed Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
title_sort Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
author Kist, Deives Mesquita
author_facet Kist, Deives Mesquita
author_role author
dc.contributor.advisor-co1.fl_str_mv Du Bois, Andre Rauber
dc.contributor.advisor1.fl_str_mv Cavalheiro, Gerson Geraldo Homrich
dc.contributor.author.fl_str_mv Kist, Deives Mesquita
contributor_str_mv Du Bois, Andre Rauber
Cavalheiro, Gerson Geraldo Homrich
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Computação
Interface de programação
Multithread
Esqueletos paralelos
Programming interface
Parallel skeletons
dc.subject.por.fl_str_mv Computação
Interface de programação
Multithread
Esqueletos paralelos
Programming interface
Parallel skeletons
description Os programadores tem grandes dificuldades com a programação paralela, principalmente, porque devem dividir a aplicação em partes que possam ser executadas simultaneamente e mapeá-las sobre os núcleos disponíveis no processador de forma que a aplicação tenha bom desempenho. Para realizar essas tarefas são utilizadas ferramentas de programação paralela, neste trabalho é utilizada a ferramenta de programação multithread Anahy3 que tem uma interface baseada no padrão POSIX Threads. O Anahy3 oferece recursos para descrição e controle da concorrência e também mecanismos de escalonamento. Estes mecanismos são executados de forma automática pelo ambiente de execução deixando o programador livre da responsabilidade de mapear as atividades entre os núcleos do processador. O objetivo deste trabalho e estender a interface de programação de Anahy3 por meio de recursos de programação paralela de mais alto nível. Para implementar estes novos recursos encontramos na literatura o conceito de algoritmos de esqueletos paralelos. Os esqueletos são modelos de programação paralela de alto nível que encapsulam padrões de algoritmos recorrentes de programação paralela. Neste trabalho foi desenvolvida uma interface constituída por esqueletos implementados na linguagem C++ por meio de classes templates. Na implementação realizada é possível que o programador defina os tipos de dados a serem manipulados pelos esqueletos, assim eliminando o uso de ponteiros do tipo void* característicos de Pthreads. Os esqueletos que compõem a interface são: Map, Reduce, Zip, Scan, Fork, MapReduce, Farm e Divisão e Conquista.
publishDate 2014
dc.date.issued.fl_str_mv 2014
dc.date.accessioned.fl_str_mv 2022-07-14T22:14:31Z
dc.date.available.fl_str_mv 2022-07-14T22:14:31Z
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 KIST, Deives Mesquita. Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3. 2014. 87 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Universidade Federal de Pelotas, Pelotas, 2014.
dc.identifier.uri.fl_str_mv http://guaiaca.ufpel.edu.br/handle/prefix/8510
identifier_str_mv KIST, Deives Mesquita. Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3. 2014. 87 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Universidade Federal de Pelotas, Pelotas, 2014.
url http://guaiaca.ufpel.edu.br/handle/prefix/8510
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/8510/6/Dissertacao_Deives_Kist.pdf.txt
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/7/Dissertacao_Deives_Kist.pdf.jpg
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/1/Dissertacao_Deives_Kist.pdf
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/2/license_url
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/3/license_text
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/4/license_rdf
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/8510/5/license.txt
bitstream.checksum.fl_str_mv 653dd3dce0ad85cf9b03d7ab5ea54cb3
47cc4798068c606e789ee87dd9151ae0
5ff21123fa6fe5cf9ba4a6b24efcea81
924993ce0b3ba389f79f32a1b2735415
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_ 1801846987635556352