{"id":701,"date":"2015-12-30T09:41:32","date_gmt":"2015-12-30T11:41:32","guid":{"rendered":"http:\/\/www.inf.ufrgs.br\/ppgc_wp\/?page_id=701"},"modified":"2026-01-13T11:34:29","modified_gmt":"2026-01-13T14:34:29","slug":"cmp632","status":"publish","type":"page","link":"https:\/\/www.inf.ufrgs.br\/ppgc\/disciplinas\/lista-de-disciplinas\/cmp632\/","title":{"rendered":"CMP632"},"content":{"rendered":"<h3><strong>Visualiza\u00e7\u00e3o de Informa\u00e7\u00f5es<\/strong><\/h3>\n<p><b>Respons\u00e1vel<\/b>: <a href=\"https:\/\/www.inf.ufrgs.br\/site\/docente\/arthur-francisco-lorenzon\/\">Arthur Francisco Lorenzon<\/a><br \/>\n<b>Pr\u00e9-Requisitos<\/b>: &#8211;<br \/>\n<b>Carga Hor\u00e1ria<\/b>: 60 hs<br \/>\n<b>Cr\u00e9ditos<\/b>: 4<\/p>\n<p><strong>S\u00daMULA<\/strong><\/p>\n<p align=\"justify\">T\u00f3picos especiais de paralelismo e otimiza\u00e7\u00e3o. Impacto do paralelismo no desempenho e energia. Mapeamento de threads e dados. Gerenciamento de frequ\u00eancia de CPU, GPU e mem\u00f3ria. Otimiza\u00e7\u00e3o de aplica\u00e7\u00f5es paralelas em GPU. Estrat\u00e9gias de comunica\u00e7\u00e3o e computa\u00e7\u00e3o. Arquiteturas paralelas especiais.<\/p>\n<p><strong>OBJETIVOS<\/strong><\/p>\n<p align=\"justify\">A disciplina visa desenvolver as seguintes habilidades espec\u00edficas: (i) Capacitar o estudante a compreender e aplicar t\u00f3picos avan\u00e7ados de paralelismo e otimiza\u00e7\u00e3o, incluindo o impacto do paralelismo no desempenho e no consumo de energia, o mapeamento eficiente de threads e dados e a intera\u00e7\u00e3o entre arquiteturas paralelas modernas e estrat\u00e9gias de execu\u00e7\u00e3o. (ii) Desenvolver compet\u00eancias para projetar, otimizar e avaliar aplica\u00e7\u00f5es paralelas em GPUs, explorando t\u00e9cnicas de gerenciamento de frequ\u00eancia de CPU, GPU e mem\u00f3ria, otimiza\u00e7\u00e3o de kernels, estrat\u00e9gias de comunica\u00e7\u00e3o e computa\u00e7\u00e3o, al\u00e9m de pr\u00e1ticas de balanceamento e distribui\u00e7\u00e3o de trabalho em arquiteturas especializadas. (iii) Aprimorar a capacidade anal\u00edtica do estudante no uso de ferramentas e metodologias para identifica\u00e7\u00e3o de gargalos, an\u00e1lise de efici\u00eancia energ\u00e9tica e desempenho, permitindo que ele selecione, implemente e justifique estrat\u00e9gias de otimiza\u00e7\u00e3o adequadas em sistemas heterog\u00eaneos e arquiteturas paralelas especiais<\/p>\n<p><strong>PROGRAMA<\/strong><\/p>\n<p align=\"justify\">1. Introdu\u00e7\u00e3o aos t\u00f3picos especiais de paralelismo &#8211; Revis\u00e3o de conceitos fundamentais;<\/p>\n<p align=\"justify\">\n2. Impacto do paralelismo no desempenho &#8211; Leis de Amdahl e Gustafsson revisadas sob a \u00f3tica da otimiza\u00e7\u00e3o; Overheads de paralelismo (sincroniza\u00e7\u00e3o, comunica\u00e7\u00e3o, desbalanceamento); Modelos roofline a an\u00e1lise de limites te\u00f3ricos<\/p>\n<p align=\"justify\">\n3. Impacto do paralelismo na energia &#8211; Rela\u00e7\u00e3o desempenho x energia x pot\u00eancia em sistemas paralelos. Modelos energ\u00e9ticos para CPU e GPU. M\u00e9tricas de efici\u00eancia energ\u00e9tica.<\/p>\n<p align=\"justify\">\n4. Mapeamento de Threads e Dados I &#8211; Fundamenta\u00e7\u00e3o te\u00f3rica de mapeamento de threads e dados em CPUs multicore; Afinidade, distribui\u00e7\u00e3o de dados; estrat\u00e9gias comuns.<\/p>\n<p align=\"justify\">\n5. Mapeamento de Threads e Dados II &#8211; Otimiza\u00e7\u00f5es, incluindo minimiza\u00e7\u00e3o de comunica\u00e7\u00e3o, maximiza\u00e7\u00e3o de localidade, mapeamento hierarquico<\/p>\n<p align=\"justify\">\n6. Gerenciamento de Frequ\u00eancia em CPU, GPU e Mem\u00f3ria &#8211; DVFS; Efeitos de frequ\u00eancia no desempenho e consumo; Pol\u00edticas de power capping e frequency capping<\/p>\n<p align=\"justify\">\n7. Otimiza\u00e7\u00e3o de Aplica\u00e7\u00f5es Paralelas em GPU I &#8211; Arquitetura geral de GPU; identifica\u00e7\u00e3o de gargalos; padroniza\u00e7\u00e3o de acesso e coalesc\u00eancia<\/p>\n<p align=\"justify\">\n8. Otimiza\u00e7\u00e3o de Aplica\u00e7\u00f5es Paralelas em GPU II &#8211; T\u00e9cnicas avan\u00e7adas, incluindo reuso de dados, shared memory, streams, pipelines<\/p>\n<p align=\"justify\">\n9. Estrat\u00e9gias de Computa\u00e7\u00e3o e Comunica\u00e7\u00e3o &#8211; Padr\u00f5es de comunica\u00e7\u00e3o s\u00edncrona e ass\u00edncrona; balanceamento de comunica\u00e7\u00e3o e computa\u00e7\u00e3o em arquiteturas heterog\u00eaneas; minimiza\u00e7\u00e3o de lat\u00eancia e overheads.<\/p>\n<p align=\"justify\">\n10. Comunica\u00e7\u00e3o e Computa\u00e7\u00e3o em Ambientes CPU-GPU &#8211; Transfer\u00eancias host-device e t\u00e9cnicas de minimiza\u00e7\u00e3o; Execu\u00e7\u00e3o concorrente em m\u00faltiplos dispositivos; Streaming, buffers pinados e page migration<\/p>\n<p align=\"justify\">\n11. Otimiza\u00e7\u00f5es multin\u00edvel em aplica\u00e7\u00f5es paralelas &#8211; Otimiza\u00e7\u00e3o em camadas: algoritmo, paralelismo, mem\u00f3ria, energia. T\u00e9cnicas de tuning autom\u00e1tico, ferramentas.<\/p>\n<p align=\"justify\">12. Arquiteturas Paralelas Especiais I &#8211; Arquiteturas para IA, GPUs especializadas, Computa\u00e7\u00e3o embarcada paralela<\/p>\n<p align=\"justify\">13. Arquiteturas Paralelas Especiais II &#8211; Processadores com mem\u00f3ria integrada; Sistemas heterog\u00eaneos de larga escala, paradigmas emergentes<\/p>\n<p align=\"justify\">14. Estudos de casos e aplica\u00e7\u00f5es reais &#8211; An\u00e1lise de c\u00f3digo real; avalia\u00e7\u00e3o de desempenho e energia em diferentes arquiteturas; li\u00e7\u00f5es pr\u00e1ticas sobre mapeamento, DVFS e comunica\u00e7\u00e3o<\/p>\n<p align=\"justify\">15. Projeto final &#8211; Apresenta\u00e7\u00e3o do projeto final<\/p>\n<p align=\"justify\"><strong>M\u00c9TODO DE TRABALHO (PRINCIPAIS ATIVIDADES)<\/strong><\/p>\n<p align=\"justify\">A disciplina ser\u00e1 conduzida por meio de aulas te\u00f3ricas e pr\u00e1ticas integradas, ,combinando exposi\u00e7\u00e3o dialogada, an\u00e1lise de exemplos e estudos de caso com atividades experimentais em laborat\u00f3rio. As aulas te\u00f3ricas utilizar\u00e3o recursos audiovisuais para apresentar conceitos avan\u00e7ados de paralelismo, impacto no desempenho e energia, mapeamento de threads e dados, otimiza\u00e7\u00e3o em GPU e gerenciamento de frequ\u00eancia. As atividades pr\u00e1ticas envolver\u00e3o exerc\u00edcios dirigidos de an\u00e1lise e otimiza\u00e7\u00e3o, experimentos de DVFS em CPU e GPU, explora\u00e7\u00e3o de estrat\u00e9gias de comunica\u00e7\u00e3o e computa\u00e7\u00e3o, e uso de ferramentas de profiling, tracing e medi\u00e7\u00e3o energ\u00e9tica. O Moodle ser\u00e1 empregado como ambiente de apoio para disponibiliza\u00e7\u00e3o de materiais, submiss\u00e3o de atividades e intera\u00e7\u00e3o em f\u00f3runs. Ao longo do semestre, os estudantes desenvolver\u00e3o atividades individuais e em grupo, aplicando t\u00e9cnicas de otimiza\u00e7\u00e3o e investigando arquiteturas paralelas modernas, de modo a consolidar autonomia t\u00e9cnica, pensamento cr\u00edtico e capacidade de resolver problemas reais de desempenho e efici\u00eancia energ\u00e9tica em sistemas paralelos.<\/p>\n<p align=\"justify\">Experi\u00eancias de Aprendizagem:<br \/>\nAo longo da disciplina, os estudantes vivenciar\u00e3o experi\u00eancias de aprendizagem que combinam explora\u00e7\u00e3o pr\u00e1tica, investiga\u00e7\u00e3o orientada e reflex\u00e3o cr\u00edtica sobre o impacto do paralelismo no desempenho e na energia, incluindo: (i) Explora\u00e7\u00e3o pr\u00e1tica de conceitos avan\u00e7ados de paralelismo e otimiza\u00e7\u00e3o. (ii) Experimenta\u00e7\u00e3o de estrat\u00e9gias de mapeamento de threads e dados, DVFS e configura\u00e7\u00f5es de execu\u00e7\u00e3o em CPU e GPU. (iii) An\u00e1lise de desempenho, efici\u00eancia energ\u00e9tica e interpreta\u00e7\u00e3o de m\u00e9tricas como speedup, roofline e EDP. (iv) Testes de hip\u00f3teses, compara\u00e7\u00e3o de abordagens e depura\u00e7\u00e3o de c\u00f3digo e experimentos em arquiteturas heterog\u00eaneas. (v) Desenvolvimento de autonomia, pensamento anal\u00edtico e tomada de<br \/>\ndecis\u00e3o t\u00e9cnica na otimiza\u00e7\u00e3o de aplica\u00e7\u00f5es paralelas em diferentes arquiteturas.<\/p>\n<p><strong>CRIT\u00c9RIOS DE AVALIA\u00c7\u00c3O<\/strong><\/p>\n<p align=\"justify\">A avalia\u00e7\u00e3o da disciplina ser\u00e1 baseada no desempenho do estudante em atividades pr\u00e1ticas e em um projeto final. Ao longo do semestre, ser\u00e3o propostos trabalhos pr\u00e1ticos que visam consolidar os conte\u00fados apresentados em aula, promovendo a experimenta\u00e7\u00e3o em t\u00e9cnicas de mapeamento de threads e dados, otimiza\u00e7\u00e3o de aplica\u00e7\u00f5es paralelas, estrat\u00e9gias de comunica\u00e7\u00e3o e computa\u00e7\u00e3o, al\u00e9m de an\u00e1lises de desempenho e efici\u00eancia energ\u00e9tica em arquiteturas heterog\u00eaneas. Esses trabalhos ser\u00e3o avaliados quanto \u00e0 implementa\u00e7\u00e3o correta, ao uso adequado das estrat\u00e9gias de paralelismo e otimiza\u00e7\u00e3o, \u00e0 clareza do c\u00f3digo, \u00e0 qualidade dos experimentos conduzidos e \u00e0 interpreta\u00e7\u00e3o dosresultados. Complementarmente, os alunos realizar\u00e3o um projeto final, individual ou em dupla, no qual dever\u00e3o aplicar de forma integrada os conceitos estudados, justificando escolhas t\u00e9cnicas, analisando desempenho e energia e apresentando uma solu\u00e7\u00e3o otimizada para um problema realista em sistemas paralelos. A nota final refletir\u00e1 tanto o dom\u00ednio conceitual quanto a capacidade do estudante de aplicar os conhecimentos em situa\u00e7\u00f5es pr\u00e1ticas.<\/p>\n<p align=\"justify\">\nA nota final ser\u00e1 composta por 40% referente aos trabalhos realizados ao longo do semestre e 60% do projeto final. O conceito ser\u00e1 atribu\u00eddo de acordo com a tabela a seguir:<br \/>\nNota \u2192 Conceito<br \/>\n\u2265 9,0 \u2192 A<br \/>\n\u2265 7,5 e &lt; 9,0 \u2192 B<br \/>\n\u2265 6,0 e &lt; 7,5 \u2192 C<br \/>\n&lt; 6,0 \u2192 D<\/p>\n<p><strong>BIBLIOGRAFIA<\/strong><\/p>\n<p align=\"justify\">A disciplina ser\u00e1 basicamente centrada em artigos de peri\u00f3dicos e confer\u00eancias, mas os livros abaixo constituem importante material e refer\u00eancia, do qual extrairemos cap\u00edtulos espec\u00edficos.<\/p>\n<p>Programming models for parallel computing, Cambridge, Massachusetts: MIT Press,<br \/>\n2015,<br \/>\n1v: digital<br \/>\nFoster, Ian T. \u201cDesigning and building parallel programs: concepts and tools for<br \/>\nparallel software engineering\u201d, Addison-Wesley, 1995<br \/>\nPatterson, David A. \u201cArquitetura de computadores: uma abordagem quantitativa\u201d, 5. ed.<br \/>\nCampus\/Elsevier, 2014<br \/>\nSilberschatz, Abraham. \u201cOperating System Concepts\u201d 9 ed. Rio de Janeiro, LTC, 2019.<br \/>\nTanenbaum, Andrew S. \u201cModern Operating Systems\u201d, 4 ed. Pearson Prentice Hall,<br \/>\n2016<br \/>\nhttps:\/\/developer.nvidia.com\/cuda-toolkit-archive<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"Wj52SazwY5\"><p><a href=\"https:\/\/www.openmp.org\/specifications\/\">Specifications<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Specifications&#8221; &#8212; OpenMP\" src=\"https:\/\/www.openmp.org\/specifications\/embed\/#?secret=eUoWFuEpxr#?secret=Wj52SazwY5\" data-secret=\"Wj52SazwY5\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><br \/>\nhttps:\/\/www.openacc.org\/specification<br \/>\nhttps:\/\/www.mpi-forum.org\/docs\/<br \/>\nhttps:\/\/rocm.docs.amd.com\/en\/latest\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visualiza\u00e7\u00e3o de Informa\u00e7\u00f5es Respons\u00e1vel: Arthur Francisco Lorenzon Pr\u00e9-Requisitos: &#8211; Carga Hor\u00e1ria: 60 hs Cr\u00e9ditos: 4 S\u00daMULA T\u00f3picos especiais de paralelismo e otimiza\u00e7\u00e3o. Impacto do paralelismo no desempenho e energia. Mapeamento de threads e dados. Gerenciamento de frequ\u00eancia de CPU, GPU e mem\u00f3ria. Otimiza\u00e7\u00e3o de aplica\u00e7\u00f5es paralelas em GPU. Estrat\u00e9gias de comunica\u00e7\u00e3o e computa\u00e7\u00e3o. Arquiteturas paralelas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":462,"menu_order":632,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/pages\/701"}],"collection":[{"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/comments?post=701"}],"version-history":[{"count":7,"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/pages\/701\/revisions"}],"predecessor-version":[{"id":7615,"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/pages\/701\/revisions\/7615"}],"up":[{"embeddable":true,"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/pages\/462"}],"wp:attachment":[{"href":"https:\/\/www.inf.ufrgs.br\/ppgc\/wp-json\/wp\/v2\/media?parent=701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}