Minicursos

Segue a lista de minicursos já confirmados para a ERAD/RS 2018.

Arquitetura e Programacao de GPUs em CUDA (Aud. 67-Inf.)

Esteban Clua, Universidade Federal Fluminense (Quinta 5/4/18, 13h30 - 16h00)

Material

Resumo

Neste mini-curso será apresentado uma visão geral das arquiteturas mais recentes das GPUs NVIDIA, dando-se especial atenção a Volta e Pascal. Em seguida será apresentada a linguagem CUDA, destacando aspectos referentes a estas novas arquiteturas, bem como caracteristicas do CUDA 9. Serão feitos pequenos exercicios, especialmente para que os alunos possam aprender gerar pequenos projetos para GPUs.

BIO

Esteban Clua é professor da Universidade Federal Fluminense e coordenador geral do UFF Medialab, jovem cientista do nosso Estado pela FAPERJ em 2009 e 2013. Pesquisador CNPq PQ2. Possui graduação em Computação pela Universidade de São Paulo, mestrado e doutorado em Informática pela PUC-Rio. Sua área de atuação está especialmente focada na área de Video Games, Realidade Virtual, GPUs e visualização. É um dos fundadores do SBGames (Simpósio Brasileiro de Games e Entretenimento Digital), tendo sido presidente da Comissão Especial de Jogos da SBC entre 2010 e 2014. Atualmente é o representante para o Brasil do Technical Committee de Entretenimento Digital da International Federation of Information Processing (IFIP) e membro honorário do conselho diretivo da Abragames (Associação Brasileira de Desenvolvimento de Games). Em 2015 foi nomeado NVIDIA Fellow (único na America Latina). Em 2007 recebeu o prêmio da ABRAGAMES como o maior contribuidor da academia para a indústria de jogos digitais no Brasil. Esteban é membro do comitê de programa das mais importantes conferencias na área de entretenimento digital. Atualmente é coordenador do Centro de Excelência da NVIDIA no Brasil, que funciona no instituto de computação da Universidade Federal Fluminense. Esteban é do conselho de inovação da Secretaria da Cultura do Estado do Rio de Janeiro, membro da comissão permanente do Rio Criativo, Membro do Fórum permanente de Inovação e Tecnologia da Assembléia Legislativa do Rio de Janeiro e membro do conselho da Agencia de Inovação da UFF.

Intr. à Prog. Paralela em Fortran com OPEN-MP e MPI (Lab. 67-104)

Henrique G. Flores, UPF
Alex L. Mello, UPF
Marcelo T. Rebonatto, UPF (Quinta 5/4/18, 08:30 - 10:30)

Material

Resumo

Fortran é uma linguagem utilizada em projetos de cunho científico/matemático, tanto por ser competente neste tipo de tarefa como por ser compatível com versões anteriores de ‘legacy software’. Este tipo de problema é ideal para ser resolvido com o auxílio de paralelismo. Visando isso, torna-se importante o domínio do funcionamento dessas tecnologias, buscando uma melhora no desempenho em problemas complexos. Serão abordadas as bibliotecas OPEN-MP e MPI, descrevendo sua forma de funcionamento e uso com Fortran.

BIO

Henrique Gavioli Flores é formado em Ciência da Computação pela Universidade de Passo Fundo (UPF) - 2011/1 - 2014/2, atualmente analista de Sistemas da Divisão de Tecnologia da Informação da UPF desde 2013/2 e mestrando do Programa de Pós-Graduação em Computação Aplicada da UPF desde 2016/1.





Alex Lima de Mello é formado em Ciência da Computação pela Universidade de Passo Fundo (UPF), e atualmente mestrando do Programa de Pós-Graduação em Computação Aplicada da UPF.








Marcelo Trindade Rebonatto é formado em Ciência da Computação pela Universidade de Passo Fundo (UPF), mestre pela Universidade Federal do Rio Grande do Sul (UFRGS) junto ao GPPD, e doutor pela Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) em 2014. É professor na Universidade de Passo Fundo desde 1996. Membro do Programa de Pós-graduação em Computação Aplicada (PPGCA) da UPF desde 2014.




Introduction to GPU Programming with OpenACC (Lab. 67-103)

Pedro Mário Cruz e Silva, NVIDIA (Sexta 6/4/18, 08:30 - 10:30)

Material

Resumo

Learn how to accelerate your C/C++ or Fortran application using OpenACC to harness the massively parallel power of NVIDIA GPUs. OpenACC is a directive based approach to computing where you provide compiler hints to accelerate your code, instead of writing the accelerator code yourself. In 90 minutes, you will experience a four-step process for accelerating applications using OpenACC: (1) Characterize and profile your application; (2) Add compute directives; (3) Add directives to optimize data movement; and (4) Optimize your application using kernel scheduling.

BIO

Pedro Mário Cruz e Silva é Bacharel em Matemática (1995) e Mestre em Matemática Aplicada e Otimização (1998) pela UFPE, Doutor em Computação Gráfica pela PUC-Rio (2004). Trabalhou por 15 anos no Instituto Tecgraf/PUC-Rio onde criou o Grupo de Geofísica Computacional, durante este período liderou diversos projetos de Desenvolvimento de Software, bem como projetos de Pesquisa na área de Geofísica. Tem mais de 10 anos de experiência com Métodos Ágeis de desenvolvimento de Software, fez treinamentos de Certified Scrum Master (CSM) e Certified Scrum Product Owner (CSPO). Finalizou o MBA em Gestão Empresarial na FGV-Rio. Atualmente é membro da diretoria da Sociedade Brasileira de Geofísica (SBGf) onde ocupa o cargo de Secretário de Publicações. Atualmente é Arquiteto de Soluções da NVIDIA para o segmento Empresarial para América Latina, com foco especial em Aplicações de Deep Learning para a indústria de Óleo & Gás.

Intel Modern Code: Introdução à Programação Vetorial e Paralela para o Processador Intel Xeon Phi Knights Landing (Lab. 67-103)

Matheus da Silva Serpa, UFRGS
Vinícius Garcia Pinto, UFRGS
Philippe Olivier Alexandre Navaux, UFRGS (Quarta 4/4/18, 08:30 - 10:30)

Material

Resumo

Tradicionalmente o aumento de desempenho das aplicações se dava de forma transparente aos programadores devido ao aumento do paralelismo a nível de instruções e aumento de frequência dos processadores. Entretanto, este modelo não se sustenta mais. Atualmente para se ganhar desempenho nas arquiteturas modernas, é necessário conhecimentos sobre programação paralela e programação vetorial. Ambos paradigmas são tratados de forma superficial em cursos de computação, sendo que muitas vezes nem são abordados. Neste contexto, este tutorial objetiva propiciar um maior entendimento sobre os paradigmas de programação paralela e vetorial, de forma que os participantes aprendam a otimizar adequadamente suas aplicações para arquiteturas modernas. Como plataforma de desenvolvimento, serão utilizados processadores Intel Xeon Phi Knights Landing.

BIO

Matheus da Silva Serpa é atualmente Mestrando no Programa de Pós-Graduação em Computação da Universidade Federal do Rio Grande do Sul (UFRGS). É bacharel em Ciência da Computação pela Universidade Federal do Pampa (UNIPAMPA), tendo recebido o Prêmio Destaques UNIPAMPA (2015) e o Prêmio Aluno Destaque da SBC (2016). Suas principais áreas de pesquisa são Arquitetura de Computadores e Computação de Alto Desempenho.

Vinícius Garcia Pinto se graduou em Ciência da Computação na Universidade Federal de Santa Maria (UFSM) e concluiu seu mestrado na Universidade Federal do Rio Grande do Sul (UFRGS). Atualmente é doutorando na UFRGS em co-tutela com a Universidade Grenoble Alpes - França. Sua linha de pesquisa envolve programação paralela, otimização de aplicações paralelas para arquiteturas CPU/GPU e análise de desempenho.


Philippe Olivier Alexandre Navaux é Professor Titular na Universidade Federal do Rio Grande do Sul (UFRGS) desde 1973. Se graduou em Engenharia Elétrica na UFRGS em 1970. Recebeu seu mestrado pela UFRGS em 1973 e seu doutorado pela Instituto de Tecnologia de Grenoble (INPG), na França, em 1979. Ele é o coordenador do Grupo de Processamento Paralelo e Distribuído (GPPD) na UFRGS e consultor de várias entidades de fomento nacionais e internacionais como DoE (US), ANR (FR), CNPq (BR), CAPES (BR), entre outras.


Prog. Paralela em Memória Compartilhada e Distribuída (Lab. 67-103)

Claudio Schepke, UNIPAMPA (Quinta 5/4/18, 13:30 - 16:00)

Material

Resumo

Programação paralela é a divisão de uma determinada aplicação em partes, de maneira que essas partes possam ser executadas simultaneamente, por vários elementos de processamento. Os elementos de processamento devem cooperar entre si utilizando primitivas de comunicação e sincronização, realizando a quebra do paradigma de execução seqüencial do fluxo de instruções. Para tanto existem diversas interfaces de programação paralelas, disponíveis através de bibliotecas, extensões de linguagem ou diretivas de compilação. Neste sentido, o objetivo deste minicurso é permitir que o acadêmico conheça algumas das interfaces de programação paralelas existentes e que podem ser utilizadas para as arquiteturas paralelas atuais, utilizar tais interfaces para o desenvolvimento de códigos paralelos, além de avaliar o desempenho de algumas aplicações. Desta forma, estudantes iniciantes tem a oportunidade de aprender e praticar conceitos elementares de programação paralela.

BIO

Claudio Schepke é professor adjunto da Universidade Federal do Pampa (UNIPAMPA), campus Alegrete/RS desde 2012. Possui graduação em Ciência da Computação pela Universidade Federal de Santa Maria (2005) e mestrado (2007) e doutorado (2012) em Computação pela Universidade Federal do Rio Grande do Sul, sendo este feito na modalidade sanduíche na Technische Universität Berlin, Alemanha (2010-2011). Claudio tem experiência na área de Ciência da Computação, com ênfase em Processamento Paralelo e Distribuído, atuando principalmente nos seguintes temas: processamento de alto desempenho, aplicações numéricas e programação paralela. Desde a graduação trabalha com aplicações paralelas, utilizando diferentes interfaces de programação paralela. Participa ativamente da ERAD/RS desde 2002, tendo sido recentemente responsável por duas edições do minicurso de Programação Paralela.

Deep Learning: Image Classification with DIGITS (Aud. 67-Inf.)

Pedro Mário Cruz e Silva, NVIDIA
João Paulo Peçanha Navarro, NVIDIA (Quinta 5/4/18, 08:30 - 10:30)

Material

Resumo

Deep learning is giving machines near human levels of visual recognition capabilities and disrupting many applications by replacing hand-coded software with predictive models learned directly from data. This lab introduces the machine learning workflow and provides hands-on experience with using deep neural networks (DNN) to solve a real-world image classification problem. You will walk through the process of data preparation, model definition, model training and troubleshooting, validation testing and strategies for improving model performance. You will also see the benefits of GPU acceleration in the model training process. On completion of this lab you will have the knowledge to use NVIDIA DIGITS to train a DNN on your own image classification dataset.

BIO

Pedro Mário Cruz e Silva é Bacharel em Matemática (1995) e Mestre em Matemática Aplicada e Otimização (1998) pela UFPE, Doutor em Computação Gráfica pela PUC-Rio (2004). Trabalhou por 15 anos no Instituto Tecgraf/PUC-Rio onde criou o Grupo de Geofísica Computacional, durante este período liderou diversos projetos de Desenvolvimento de Software, bem como projetos de Pesquisa na área de Geofísica. Tem mais de 10 anos de experiência com Métodos Ágeis de desenvolvimento de Software, fez treinamentos de Certified Scrum Master (CSM) e Certified Scrum Product Owner (CSPO). Finalizou o MBA em Gestão Empresarial na FGV-Rio. Atualmente é membro da diretoria da Sociedade Brasileira de Geofísica (SBGf) onde ocupa o cargo de Secretário de Publicações. Atualmente é Arquiteto de Soluções da NVIDIA para o segmento Empresarial para América Latina, com foco especial em Aplicações de Deep Learning para a indústria de Óleo & Gás.

João Paulo Peçanha Navarro é Cientista da Computação graduado pela Universidade Federal de Juiz de Fora (UFJF) e mestre em Modelagem Computacional pela mesma instituição. Por 4 anos foi membro do Grupo de Computação Gráfica da UFJF, se envolvendo em pesquisas nas áreas de Computação Visual, Simulação Física e Computação de Alto Desempenho. Trabalhou como Analista de Sistemas na empresa de consultoria Accenture, principalmente em projetos voltados para área financeira e de risco de mercado. Sua sólida experiência como engenheiro de software foi construída durante anos desenvolvendo sistemas na PUC-Rio, com foco em aplicações de Machine Learning para a indústria de Óleo & Gás. É autor de publicações em conferências internacionais nas áreas de Machine Learning e Computação Gráfica, suas especialidades. Atualmente é Arquiteto de Soluções na NVIDIA, responsável pela expansão e democratização de técnicas de Deep Learning no Brasil.

Introdução ao MPI-IO (Lab. 67-103)

Jean Bez, UFRGS
Francieli Zanon Boito, INRIA (França)
Philippe Olivier Alexandre Navaux, UFRGS (Sexta 6/4/18, 14:00 - 16:00)

Material

Resumo

Na Computação de Alto Desempenho (High-Performance Computing), as operações de entrada e saída (I/O) são um gargalo para um número crescente de aplicações, podendo comprometer a escalabilidade. Em ambientes de larga escala, como clusters e supercomputadores, o uso de bibliotecas de alto-nível como MPI-IO permite obter melhor desempenho através de I/O paralelo e de operações coletivas. Estas possibilitam o uso transparente de técnicas de otimização como data sieving e two-phase I/O. Nesse contexto, este minicurso objetiva introduzir conceitos de I/O paralelo e MPI-IO, com um enfoque prático, de forma que os participantes aprendam a utilizar a biblioteca em suas aplicações.

BIO

Jean Luca Bez se graduou em Ciência da Computação na Universidade Regional Integrada do Alto Uruguai e das Missões (URI - Erechim) em 2015 e concluiu seu mestrado na Universidade Federal do Rio Grande do Sul (UFRGS) em 2017. Atualmente é doutorando na UFRGS. Suas principais áreas de pesquisa são I/O parallelo, I/O forwarding e escalonamento de operações de I/O.


Francieli Zanon Boito é Doutora em Ciência da Computação pela UFRGS e pela Université Grenoble Alpes, na França (2015), e Bacharel em Ciência da Computação pela UFRGS (2009). Atualmente realiza um pós-doutorado no INRIA em Grenoble, na França. Suas principais áreas de pesquisa são I/O paralelo, sistemas de arquivos paralelos e escalonamento de operações de I/O.


Philippe Olivier Alexandre Navaux é Professor Titular na Universidade Federal do Rio Grande do Sul (UFRGS) desde 1973. Se graduou em Engenharia Elétrica na UFRGS em 1970. Recebeu seu mestrado pela UFRGS em 1973 e seu doutorado pela Instituto Nacional Politècnico de Grenoble (INPG), na França, em 1979. Ele é o coordenador do Grupo de Processamento Paralelo e Distribuído (GPPD) na UFRGS e consultor de várias entidades de fomento nacionais e internacionais como DoE (US), ANR (FR), CNPq (BR), CAPES (BR), entre outras. Sua área de atuação é Arquitetura de Computadores e Processamento de Alto Desempenho, HPC.