O OpenMP é um padrão para o desenvolvimento de programas paralelos que compartilham memória. Sua programação baseada em diretivas permite que o programador indique onde o paralelismo deve ser aplicado, fornecendo concorrência, sincronização e manipulação de dados. A programação OpenMP é simples e encoraja o uso do paralelismo; no entanto, para extrair desempenho de códigos OpenMP o programador necessita observar aspectos importantes. Este minicurso aborda aspectos iniciais da programação C com OpenMP e também avançados que dão suporte a códigos com alto desempenho. São abordados aspectos do uso eficiente de processador, de memória e de interação entre threads. Espera-se que este minicurso contribua para a difusão da cultura do desenvolvimento de códigos C/OpenMP eficientes e de alto desempenho.
Paulo Sérgio Lopes de Souza é atualmente professor de computação da Universidade de São Paulo em São Carlos (ICMC/USP). Ele possui doutorado e mestrado em Computação pela USP (2000 e 1996) e Bacharelado em Processamento de Dados pela UEPG em 1990. Atua como orientador no ICMC/USP de alunos de doutorado, mestrado e iniciação científica. Ministra disciplinas relacionadas à Computação Paralela na graduação e na pós-graduação. Suas áreas de pesquisa atualmente são o desenvolvimento de novas soluções paralelas para problemas complexos, teste de programas paralelos, segurança em sistemas computacionais e recursos educacionais para o ensino da computação. Ele é membro da Sociedade Brasileira de Computação – SBC e da Association for Computing Machinery – ACM.
Neste minicurso apresentaremos fundamentações sobre os modelos básicos de Redes Neurais Artificiais existentes na literatura, como o Perceptron e o Multi-Layer Perceptron, suas formalizações matemáticas, bem como seus respectivos modelos de aprendizado. Os modelos apresentados serão implementados e executados utilizando a linguagem de programação R e conjuntos de dados. Ao final do minicurso os participantes deverão possuir os conceitos fundamentais que os capacitem a aplicar os modelos vistos em problemas reais, e também deverão ser capazes de explicar o funcionamento básico desses modelos.
Ricardo Cerri obteve seu doutorado em Ciência da Computação e Matemática Computacional pela Universidade de São Paulo (ICMC/USP/Brasil), trabalhando com Redes Neurais e Algoritmos Genéticos para Problemas Hierárquicos e Multirrótulo. Durante seu doutorado, desenvolveu parte de suas pesquisas nas universidades de Surrey e Kent, ambas no Reino Unido. Sua tese de doutorado foi a segunda melhor tese de doutorado no Concurso Brasileiro de Teses em Inteligência Artificial, promovido pela Sociedade Brasileira de Computação (2014). Tem experiência trabalhando principalmente com os temas Bioinformática e Aprendizado de Máquina, com foco especial em métodos avançados para classificação e regressão de dados com múltiplas saídas e saídas estruturadas (multi-output learning / hierarchical / multi-label / multi-target). Atualmente, ocupa o cargo de Professor Adjunto no Departamento de Ciência da Computação da Universidade Federal de São Carlos (UFSCar/Brasil), liderando o grupo de pesquisa em Bioinformática e Aprendizado de Máquina (BioMal – www.biomal.ufscar.br), supervisionando estudantes de graduação e pós-graduação. Também é Bolsista de Produtividade em Pesquisa do CNPq – Nível 2. Tem colaborações internacionais em andamento com parceiros da Universidade de Kent (Reino Unido), Universidade de Surrey (Reino Unido), Universidade de Nottingham (Reino Unido), Universidade do Porto (Portugal) e KU Leuven (Bélgica), além de várias colaborações nacionais, e atua no comitê de programa de diferentes conferências e workshops no Brasil e exterior. De 2019 a 2020, realizou pesquisa de pós-doutorado no Laboratório de Inteligência Artificial e Suporte à Decisão (LIAAD) da Universidade do Porto (Portugal), trabalhando com classificação multirrótulo em fluxos contínuos de dados.
A computação quântica tem se apresentado como uma das possibilidades mais promissoras na aceleração do processamento. Se o algoritmo escolhido se adequa ao modelo da computação quântica, se tem promessas de speedup exponencial, tanto em processamento como em armazenamento. A Atos desenvolveu um simulador de computação quântica chamado QLM – Quantum Learning Machine. A ideia desse simulador é possibilitar a simulação da computação quântica independente de suas implementações, e comparar os resultados considerando diferentes implementações. Um mesmo circuito quântico pode necessitar diferentes alterações para ser executados em implementações reais, como o IBM QX4 (superconducting qubits) ou na implementação do projeto AQTION (trapped ions). Com a promessa de se ter disponível aceleradores quânticos em 3 a 5 anos, precisamos entender quais algoritmos poderão se beneficiar dessa tecnologia, assim como quais os efeitos do ruído nesses dispositivos. Nesse minicurso teremos uma apresentação básica dos conceitos da computação quântica, usando o QLM, e faremos uma análise acessando o simulador da Atos, de um circuito quântico que resolve transformadas de Fourier (QFT). Será feita a análise do uso do reordenamento das portas e sua sensibilidade ao ruído, considerando as arquiteturas do IBM QX4 e do projeto AQTION.
Genaro Costa, PhD, PMP. Atua como HPC Senior Expert / Gerente de Projetos na Atos Bull, coordenando o Atos R&D Labs no Senai CIMATEC. Graduado em Ciência da Computação pela UCSal, mestre e doutor em Informática pela Universitat Autónoma de Barcelona (UAB). Tem interesse de pesquisa em Computação de Alto Desempenho, Machine Learning, Big Data, Performance Models, Computer Vision, Quantum Computing e Prescriptive Analytics.
Meta-aprendizado tem sido cada vez mais utilizado para apoiar a recomendação de algoritmos de aprendizado de máquina e suas configurações para novos problemas. Tais recomendações são feitas com base em uma meta-base que consiste na avaliação de desempenho de algoritmos em conjuntos de dados previamente conhecidos, bem como algumas características estruturais dessas bases de dados. Essas características, também chamadas de meta-características, descrevem propriedades das bases que são preditivas para o desempenho de meta-modelos (usualmente também algoritmos de aprendizado de máquina) treinados nelas. Esse curso pretende abordar de forma teórica e prática conceitos básicos de forma a permitir a construção de sistemas de meta-aprendizado utilizando a linguagem R. Além disso, o curso pretende abordar temas como a importantância das meta-características usadas e aborda tópicos estado da arte como o Aprendizado Automatizado (AutoML) e seus desafios.
Ana Carolina Lorena possui graduação em Ciência de Computação (2001), doutorado em Ciência da Computação (2006) e pós-doutorado em Ciência da Computação (2007) pelo Instituto de Ciências Matemáticas e de Computação (ICMC) da Universidade de São Paulo (USP). Foi docente da Universidade Federal do ABC (UFABC) de 2007 a 2012 e da Universidade Federal de São Paulo (UNIFESP) de 2012 a 2018. Atualmente é Professora Associada no Instituto Tecnológico de Aeronáutica (ITA). É co-autora do livro “Inteligência Artificial: uma abordagem de Aprendizado de Máquina”, premiado com o Jabuti 2012 na categoria “Tecnologia e Informática”. Tem experiência na área de Ciência da Computação, atuando principalmente nos seguintes temas: mineração de dados, aprendizado de máquina e ciência de dados.
Luís Paulo Faina Garcia possui graduação em Engenharia de Computação (2010) e doutorado em Ciências da Computação (2016) pelo Instituto de Ciências Matemáticas e de Computação (ICMC) da Universidade de São Paulo. Em 2017 teve a tese classificada entre as melhores pela Sociedade Brasileira de Computação (SBC) e recebeu o prêmio CAPES de melhor tese em Ciência da Computação do país. Atualmente é Professor Adjunto A no Departamento de Ciência da Computação (CIC) da Universidade de Brasília (UnB), em Brasília – Distrito Federal. Tem experiência na área de Ciência da Computação principalmente nos temas relacionados a Mineração de Dados e Aprendizado de Máquina, atuando nas seguintes linhas de pesquisa: detecção de ruídos, meta-aprendizado e fluxo contínuo de dados.