Please use this identifier to cite or link to this item: https://hdl.handle.net/10216/90736
Full metadata record
DC FieldValueLanguage
dc.creatorJoão Manuel Ferreira Trindade
dc.date.accessioned2025-11-13T14:33:25Z-
dc.date.available2025-11-13T14:33:25Z-
dc.date.issued2016-07-05
dc.date.submitted2016-07-22
dc.identifier.othersigarra:149903
dc.identifier.urihttps://hdl.handle.net/10216/90736-
dc.description.abstractSão cada vez mais as areas de investigação que recorrem a sistemas computacionais de elevada performance para resolver complexos modelos matemáticos. Para dar resposta a problemas cada vez mais complicados, tem havido um grande desenvolvimento no hardware para os sistemas computacionais de elevado desempenho, tecnologias como CUDA - Compute Unified Device Architecture - ou FPGA - Field-programmable gate array - têm-se tornado parte integrante dos tradicionais clusters informáticos. Dando assim origem a sistemas denominados heterogéneos. Dadas as especificidades deste tipo de infraestruturas, é necessário repensar a forma de execução de tarefas, de forma a garantir um proveito significativo das novas soluções: conseguir mapear inteligentemente tarefas com os recursos que melhor as consigam resolver permite obter, não só um melhor desempenho computacional, mas também reduzir custos energéticos do sistema. Esta dissertação pretende explorar uma forma de representação de código C/C++ através de grafos dirigidos que permitam posteriormente a utilização de algoritmos de escalonamento para sistemas heterogéneos (PEFT, HEFT, etc.). Para isso, propõe-se uma analise e identificação de regiões criticas através da árvore sintática abstrata (AST) obtida da compilação do código com o compilador Clang. Esta analise, juntamente com informação obtida de modelos computacionais, permitem então gerar perfis otimizados para a execução do código. Pretende-se assim, obter uma ferramenta que tendo em conta a especificidade do código a executar, e a arquitetura do ambiente de execução produza um grafo que represente as várias tarefas de um programa, as suas dependências e as comunicações de dados necessários entre as várias tarefas. Este grafo possibilita posteriormente a utilização de algoritmos de escalonamento que otimizam a sua execução numa arquitetura heterogénea.
dc.language.isopor
dc.rightsopenAccess
dc.rights.urihttps://creativecommons.org/licenses/by-nc/4.0/
dc.subjectEngenharia electrotécnica, electrónica e informática
dc.subjectElectrical engineering, Electronic engineering, Information engineering
dc.titleRepresentação de aplicações C/C++ segundo um grafo para execução em sistemas heterogéneos
dc.typeDissertação
dc.contributor.uportoFaculdade de Engenharia
dc.identifier.doi10.34626/mpb4-7r91
dc.identifier.tid201307596
dc.subject.fosCiências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática
dc.subject.fosEngineering and technology::Electrical engineering, Electronic engineering, Information engineering
thesis.degree.disciplineMestrado Integrado em Engenharia Informática e Computação
thesis.degree.grantorFaculdade de Engenharia
thesis.degree.grantorUniversidade do Porto
thesis.degree.level1
Appears in Collections:FEUP - Dissertação

Files in This Item:
File Description SizeFormat 
149903.pdfRepresentação de aplicações C/C++ segundo um grafo para execução em sistemas heterogéneos3.02 MBAdobe PDFThumbnail
View/Open


This item is licensed under a Creative Commons License Creative Commons