Kanga: uma interface genérica baseada em esqueletos para programação paralela em Anahy3
Autor(a) principal: | |
---|---|
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 |