{"id":13269,"date":"2024-07-12T19:14:32","date_gmt":"2024-07-12T19:14:32","guid":{"rendered":"https:\/\/dei.fe.up.pt\/dev\/?p=13269"},"modified":"2024-07-22T09:19:00","modified_gmt":"2024-07-22T09:19:00","slug":"provas-de-doutoramento-em-engenharia-informatica-source-to-source-programmable-performance-engineering-for-high-performance-computing","status":"publish","type":"post","link":"https:\/\/dei.fe.up.pt\/dev\/provas-de-doutoramento-em-engenharia-informatica-source-to-source-programmable-performance-engineering-for-high-performance-computing\/","title":{"rendered":"Provas de Doutoramento em Engenharia Inform\u00e1tica: &#8220;Source-to-source Programmable Performance Engineering For High-Performance Computing&#8221;"},"content":{"rendered":"<p><strong>Candidato:<br \/>\n<\/strong>Pedro Miguel dos Santos Pinto<\/p>\n<p><strong>Data, Hora e Local:<\/strong><br \/>\n15 de julho, \u00e0s 9:30, na Sala de Atos do DEC (G129), da Faculdade de Engenharia da Universidade do Porto<\/p>\n<p><strong>Presidente do J\u00fari:<\/strong><br \/>\nDoutor Rui Filipe Lima Maranh\u00e3o de Abreu, Professor Catedr\u00e1tico da Faculdade de Engenharia da Universidade do Porto<\/p>\n<p><strong>Vogais:<br \/>\n<\/strong><\/p>\n<p>Doutora Diana Gohringer, Professora do Institute of Computer Engineering da Faculty of Computer Science da Technische Universitat Dresden, Alemanha;<br \/>\nDoutor Xavier Martorell Bofill, Professor do Department of Computer Architecture da Universitat Polit\u00e8cnica de Catalunya, Espanha;<br \/>\nDoutor Jo\u00e3o Alexandre Baptista Vieira Saraiva, Professor Associado com Agrega\u00e7\u00e3o do Departamento de Inform\u00e1tica da Universidade do Minho;<br \/>\nDoutor Pedro Nuno Ferreira da Rosa da Cruz Diniz, Professor Catedr\u00e1tico do Departamento de Engenharia Inform\u00e1tica da Faculdade de Engenharia da Universidade do Porto;<br \/>\nDoutor Jo\u00e3o Manuel Paiva Cardoso, Professor Catedr\u00e1tico do Departamento de Engenharia Inform\u00e1tica da Faculdade de Engenharia da Universidade do Porto (Orientador).<\/p>\n<p><strong>Resumo:<\/strong><\/p>\n<p>No desenvolvimento de software, desde a computa\u00e7\u00e3o de alto desempenho (HPC) at\u00e9 sistemas de computa\u00e7\u00e3o embebidos, o desempenho e o consumo de energia s\u00e3o requisitos n\u00e3o funcionais (NFRs) omnipresentes. Para atender a esses requisitos, que muitas vezes s\u00e3o adiados at\u00e9 ao p\u00f3s desenvolvimento e deixados para programadores especializados, \u00e9 necess\u00e1rio um conhecimento profundo do problema e da arquitetura alvo, bem como conhecimento sobre modelos de programa\u00e7\u00e3o, ferramentas e transforma\u00e7\u00f5es de c\u00f3digo. Assim, h\u00e1 uma complexidade de desenvolvimento cada vez mais alta e uma necessidade de engenheiros de desempenho e metodologias de desempenho. Como uma parte substancial do trabalho dos engenheiros de desempenho \u00e9 realizada manualmente, o que pode ser lento e sujeito a erros, esta tese permite-lhes programar estrat\u00e9gias personalizadas para a an\u00e1lise e transforma\u00e7\u00e3o de aplica\u00e7\u00f5es, separando o c\u00f3digo dessas estrat\u00e9gias e o c\u00f3digo da aplica\u00e7\u00e3o. Estendemos um fluxo t\u00edpico de engenharia de desempenho, composto por ciclos an\u00e1lise-otimiza\u00e7\u00e3o, para permitir a programa\u00e7\u00e3o de estrat\u00e9gias de an\u00e1lise e transforma\u00e7\u00e3o de c\u00f3digo-fonte. Essas estrat\u00e9gias, contando com uma compila\u00e7\u00e3o robusta source-to-source e bibliotecas fornecidas, podem ser usadas para atender aos requisitos mencionados acima. O fluxo proposto \u00e9 adequado para programadores de aplica\u00e7\u00f5es, que podem usar configura\u00e7\u00f5es padr\u00e3o, e para engenheiros de desempenho, que podem ajustar e afinar a aplica\u00e7\u00e3o. Esta tese apresenta dois exemplos concretos desse fluxo. Em primeiro lugar, propomos uma framework para memoization, uma otimiza\u00e7\u00e3o bem conhecida, n\u00e3o presente em compiladores de produ\u00e7\u00e3o e complementar a outras otimiza\u00e7\u00f5es. Em segundo lugar, usamos an\u00e1lises de cen\u00e1rio personalizadas para desenvolver c\u00f3digo altamente especializado para um sistema de navega\u00e7\u00e3o futurista, multicomponente e de larga escala. Como o fluxo de engenharia de desempenho \u00e9 independente da linguagem de programa\u00e7\u00e3o alvo, fornecemos uma implementa\u00e7\u00e3o inicial de um sistema de compila\u00e7\u00e3o source-to-source independente de linguagem. A avalia\u00e7\u00e3o experimental do nosso sistema de compila\u00e7\u00e3o mostra que podemos escrever estrat\u00e9gias de an\u00e1lise e transforma\u00e7\u00e3o de maneira independente da linguagem e, ao mesmo tempo, colher outros benef\u00edcios. As estrat\u00e9gias agn\u00f3sticas s\u00e3o, em m\u00e9dia, mais curtas e n\u00e3o dependem de c\u00f3digo nativo expl\u00edcito, o que as torna menos propensas a erros. Embora as nossas experi\u00eancias indiquem que as aplica\u00e7\u00f5es geralmente t\u00eam potencial limitado para memoization, com o nosso fluxo baseado na an\u00e1lise do comportamento da aplica\u00e7\u00e3o, podemos avaliar o seu impacto e aplicar a melhor configura\u00e7\u00e3o. A avalia\u00e7\u00e3o experimental mostra melhorias de tempo de at\u00e9 1, 55\u00d7 com configura\u00e7\u00f5es m\u00ednimas. Ao focar numa parte do c\u00f3digo de um sistema de navega\u00e7\u00e3o, observamos que o nosso fluxo proporciona benef\u00edcios em diferentes etapas do processo de desenvolvimento. Podemos satisfazer os NFRs e, ao mesmo tempo, economizar tempo de programa\u00e7\u00e3o e ajuste, contribuindo assim para redu\u00e7\u00f5es no tempo de entrega de uma solu\u00e7\u00e3o. Num dos componentes, utilizamos a nossa framework para propor uma vers\u00e3o especializada do c\u00f3digo de um processo iterativo que, com base na similaridade dos dados de entrada, reutiliza o resultado da itera\u00e7\u00e3o anterior. Com perda m\u00ednima de precis\u00e3o, este esquema atinge uma melhoria de tempo de 1, 32\u00d7.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Candidato: Pedro Miguel dos Santos Pinto Data, Hora e Local: 15 de julho, \u00e0s 9:30, na Sala de Atos do DEC (G129), da Faculdade de Engenharia da Universidade do Porto Presidente do J\u00fari: Doutor Rui Filipe Lima Maranh\u00e3o de Abreu, Professor Catedr\u00e1tico da Faculdade de Engenharia da Universidade do Porto Vogais: Doutora Diana Gohringer, Professora [&hellip;]<\/p>\n","protected":false},"author":127,"featured_media":13319,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[20,116],"tags":[],"class_list":["post-13269","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticias","category-phd"],"_links":{"self":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/posts\/13269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/users\/127"}],"replies":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/comments?post=13269"}],"version-history":[{"count":6,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/posts\/13269\/revisions"}],"predecessor-version":[{"id":13278,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/posts\/13269\/revisions\/13278"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/media\/13319"}],"wp:attachment":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/media?parent=13269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/categories?post=13269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/tags?post=13269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}