Cursos

Análise de Divergências em GPUs

Fernando Magno Quintão Pereira
GPUs têm se tornado cada vez populares, tanto na academia, quanto na indústria da informática. Muito dessa popularidade advém do grande poder computacional, a baixo custo, que esse hardware provê para os programadores. Entretanto, a utilização plena desse poder de processamento não é uma tarefa fácil, pois a programação de aplicações em GPUs é ainda difícil. Parte dessa dificuldade deve-se a um fenômeno chamado "Divergências de Execução", que caracteriza arquiteturas SIMD. Nesta palestra descreveremos análises estáticas, implementadas a nível do compilador, que detectam divergências, ou provam que elas não existem. A partir dessas análises, mostraremos diferentes otimizações de código que compiladores usam para mitigar os efeitos das divergências. Em particular, descreveremos um alocador de registradores criado exclusivamente para GPUs. O resultado concreto desse trabalho encontra-se hoje disponível em Ocelot, um compilador de uso industrial. Testemunho de seu sucesso é o alto ganho de desempenho que as otimizações propostas produzem. Nosso alocador de registradores, por exemplo, melhorou em mais de 25% a qualidade do código originalmente produzido por Ocelot.

Computação Autonômica

Daniel Fernandes Macedo
A computação autonômica propõe que os sistemas computacionais irão agir como o corpo humano, se adaptando de forma automática a mudanças nas suas entradas e no ambiente. Esta adaptação ocorre com a mínima intervenção dos usuários ou de um administrador. Neste mini-curso iremos apresentar a computação autonômica, as funções autonômicas, os diferentes graus de autonomicidade de sistemas computacionais e descrever cada uma das etapas de um processo de gerência autonômica de um recurso computacional. Iremos apresentar também técnicas de modelagem de sistemas, tais como teoria de controle, teoria de jogos e algoritmos bio-inspirados, e como estas podem ser utilizadas para a criação de sistemas computacionais autonômicos.

Computação Social

Fabrício Benevenuto de Souza
Redes sociais online se tornaram extremamente populares, levando ao surgimento e à crescente popularização de uma nova onda de aplicações na Web. Todos os dias uma imensa quantidade de conteúdo é compartilhada nesses sistemas e disseminada através de interações e elos sociais. Nesse contexto, vários esforços têm surgido no sentido de entender quais atividades os usuários exercem e como se comportam e interagem quando se conectam a esses sistemas. Tal entendimento tem sido a base para a construção de diversas aplicações. Esta palestra apresenta pesquisas recentes que exploram características do comportamento dos usuários de redes sociais online para a construção de novas tecnologias para esses ambientes.

Engenharia de software

Rodolfo Sérgio Ferreira de Resende
A Engenharia de Software "aparece" nos momentos onde é necessário tratar, de maneira mais sistemática, dos programas para  os computadores. Mas o termo "Engenharia de Software" foi usado pela primeira vez em 1968. Nesta palestra vamos discutir alguns aspectos desta disciplina que, nominalmente falando, ainda demora para comemorar 50 anos.

Entendendo Redes Definidas por Software com um exemplo de aplicação em redes de datacenters

Dorgival Olavo Guedes Neto
Redes Definidas por Sotfware (ou SDN, do inglês “Software Defined Networks”) formam um novo paradigma da área de Redes de Computadores que vem ganhando visibilidade e adoção em diversos cenários. Neste mini-curso, pretendemos discutir os conceitos básicos da área e ilustrar como eles podem ser aplicados focando na discussão do sistema DCPortalsNG, desenvolvido no DCC/UFMG. Esse sistema explora o conceito de Redes Definidas por Software para garantir o isolamento de diversos usuários (tenants) em um datacenter de um serviço de nuvem IaaS (infra-estrutura como serviço). O mini-curso apresentará uma introdução sobre SDN e depois apresentará o processo de criação do DCPortalsNG, descrevendo o problema, a decisão pelo uso de SDN e os passos para a implantação da solução. Com isso, espero apresentar os conceitos de uma forma que interesse tanto a quem não conhece ainda SDN quanto para aqueles que já têm uma noção geral do conceito.

Entendendo Sociedades a partir de Mídias Sociais

Pedro Olmo Stancioli Vaz De Melo
A imensa disponibilidade de tecnologias de computação móvel, tais como smartphones e tablets, e a adoção mundial de aplicativos sociais, tais como Foursquare e Twitter, faz com que as pessoas estejam continuamente conectadas à Internet. Nesse cenário, as pessoas agem como sensores sociais, voluntariamente fornecendo dados que capturam as suas experiências diárias a partir de observações tanto do mundo físico (por exemplo, localização) quanto do mundo online (por exemplo, eventos). Esta grande quantidade de dados sociais pode fornecer novas formas de informação que não estão disponíveis, a esta escala, por qualquer método tradicional de coleta de dados. Nesta palestra será mostrado como sistemas sociais baseados em localização podem servir como fontes valiosas de sensoriamento em grande escala, fornecendo acesso à importantes características de sociedades muito mais rapidamente que os métodos tradicionais.

Internet das Coisas

Daniel Fernandes Macedo
Com a evolução do hardware e software, espera-se que na próxima década todos os nossos objetos cotidianos possuam capacidade computacional. Além disto, estes objetos, ou "coisas", serão conectados à Internet, permitindo assim que seja feito o controle do mundo real a partir do mundo virtual. Esta palestra irá discutir a Internet das Coisas, apresentando o seu impacto no mercado de computação, as suas aplicações e as consequências para a privacidade e segurança (ou falta de) dos indivíduos e empresas.

Mapeamento topológico da Internet

Ítalo Fernando Scotá Cunha
Mapear a topologia da Internet é desafiador devido ao tamanho, dinamicidade e natureza distribuída da Internet, bem como à grande escala das medições necessárias.  Mapas da topologia da Internet são úteis para várias aplicações; em particular, mapas da topologia da Internet são essenciais para identificar onde problemas de desempenho acontecem.  Neste curso apresentaremos os avanços em mapeamento topológico da Internet nos últimos 10 anos.  Iremos descrever ferramentas para medir e estimar o desempenho de rotas.  Iremos apresentar como rastrear mudanças de roteamento para manter um mapa topológico atualizado.  Por fim, iremos discutir sistemas que utilizam informações sobre a topologia da Internet para detectar e identificar falhas e problemas de desempenho.

Nanocomputação Reversível

Omar Paranaiba Vilela Neto
Os microprocessadores atuais já fazem uso de transistores na escala nanométrica, mas estes já estão próximos do seu limite de miniaturização. A Nanocomputação visa o estudo de nanodispositivos e nanoestruturas para o desenvolvimento de uma nova geração de computadores, com arquiteturas inovadoras e eficientes. Estes novos dispositivos nanoeletrônicos incluem computação quântica, autômatos celulares com pontos quânticos (QCA), nanotubos de carbono, grafenos, transistores moleculares, diodos de tunelamento ressonante, computação com DNA, single-electron transistor, spin transistor e sistemas biológicos. Além disso, a computação tal como conhecemos é irreversível. Uma operação em porta lógica não pode ser desfeita e isso acarreta na dissipação de energia. Os computadores do futuro deverão ter poder de processamento, mas também baixíssimo consumo energético, viabilizando aplicações impossíveis nos dias atuais. Neste seminário discutiremos sobre os dispositivos conhecidos por “Field-coupled Nanocomputing” e como estes podem ser a alternativa para o desenvolvimento de uma futura computação reversível, levando aos limites físicos de miniaturização e consumo energético.

Processamento de Dados Massivos (Big-Data) além do Hadoop/MapReduce

Dorgival Olavo Guedes Neto
A explosão do volume de dados acessíveis através da Internet e o aumento da capacidade de processamento disponível para os usuários criou nos últimos anos um grande interesse por ambientes de processamento de dados massivos. Entre esses ambientes, o Apache Hadoop se tornou o mais conhecido e adotado. Entretanto, com o passar do tempo, tornou-se claro que Hadoop não é a solução ideal para todos os problemas, apesar de oferecer um bom ponto de partida para a criação de novos ambientes. Este mini-curso pretende apresentar os elementos principais do Hadoop e mostrar como outros ambientes de processamento podem ser implementados mais facilmente fazendo uso de funcionalidades criadas por ele. Para exemplificar, será mostrado como os ambientes Giraph, Spark e Watershed utilizam partes do Hadoop para prover diferentes modelos de programação. O objetivo será a discussão dos aspectos de desenvolvimento de sistemas distribuídos em geral e não dos detalhes de programação de cada ambiente, para apresentar conceitos de sistemas que podem ser de interesse tanto a principiantes quanto a desenvolvedores já com alguma experiência com Hadoop, por exemplo.

Projeto de algoritmos aproximativos

Olga Nikolaevna Goussevskaia
"Quão bom é o seu algoritmo? Uma introdução ao projeto de algoritmos aproximativos" Neste  minicurso, introduziremos os principais conceitos que lidam com complexidade de problemas computacionais e mostraremos como projetar algoritmos rápidos para problemas difíceis e como provar que sua qualidade é garantida até em cenários de pior caso.

Recuperação de Informação Multimídia com Base no Conteúdo

Arnaldo de Albuquerque Araújo
A tecnologia atual de geração de informação multimídia (textos, áudios, imagens, vídeos, jogos eletrônicos) tem produzido uma quantidade gigantesca de informação, frequentemente, acessível on-line. Como consequência, grandes desafios se apresentam nas áreas de armazenamento, indexação e recuperação de informação audiovisual em grandes bases de dados. Este seminário aborda a problemática da recuperação automática de áudio, imagem e vídeo com base no seu conteúdo audiovisual. Apresentam-se descritores que representam a informação multimídia e permitem sua indexação e recuperação sem uso de informação textual.

Redes Sem Fio

Luiz Filipe Menezes Vieira
Hoje as redes são estão presentes no nosso dia a dia permitindo inúmeras aplicações. Redes Móveis, Sem Fio, Ad Hoc, de Sensores, Veiculares, Aéreas, Aquáticas são exemplos dos vários tipos de redes que podemos criar. Para desenvolver e gerar inovação são necessários modelos e algoritmos que descrevem os aspectos fundamentais dessas redes, Nesse mini-curso serão apresentados e discutidos alguns desses modelos e algoritmos.

Relacionamentos em Redes Complexas: Modelos e Análise

Ana Paula Couto da Silva
O sentimento de que estamos rodeados por diversas entidades que se relacionam entre si, seguindo diferentes regras, vem crescendo rapidamente entre diversos segmentos, seja no meio acadêmico como no dia-a-dia da sociedade em geral. Cada vez mais existe um senso comum de que o comportamento de muitas das coisas que nos cercam não pode ser estudado e caracterizado isoladamente, pois muitas destas coisas estão conectadas e a interação entre as partes influencia fundamentalmente o comportamento individual e coletivamente o comportamento global. Esta palestra tem como objetivo discutir os relacionamentos, seus modelos e análise, considerando diferentes redes complexas, tais como redes sociais online, redes de diretores e atores de filmes e redes de colaboração acadêmica. Iremos discutir os desafios de análise destas redes, principalmente o processo de formação destas redes.

Resolução de falhas em redes domésticas

Ítalo Fernando Scotá Cunha
Com o aumento dos dispositivos conectados à Internet --- telefones, video games, tablets, laptops, televisões, dentre outros --- usuários precisam gerenciar redes domésticas cada vez mais complexas.  Na primeira metade deste curso iremos discutir o funcionamento e configuração de WiFi, NAT, DHCP e DNS, serviços centrais para o funcionamento de redes domésticas.  Na segunda metade iremos descrever problemas comuns em redes domésticas e suas soluções. Por exemplo, explicaremos como fazer encaminhamento de portas para permitir acesso externo e como configurar priorização de tráfego para combater lentidão no acesso (bufferbloat).  Esperamos que este curso permita aos alunos resolverem problemas simples em redes domésticas e melhorar suas configurações.

ROS: Robotic Operating System

Marcos Augusto Menezes Vieira
ROS é um framework de software para desenvolvimento de software para robôs, provendo uma funcionalidade parecida com um sistema operacional. É amplamente adotado como framework de desenvolvimento pela comunidade de robótica. Esse tutorial tem o objetivo de apresentar os conceitos básicos para a utilização do ROS e também apresentar as algumas funcionalidades como navegação, localização e SLAM.

Sistemas de Recomendação

Rodrygo Luis Teodoro Santos
Sistemas de recomendação popularizaram-se ao longo dos últimos anos como mecanismos para auxiliar a escolha de filmes, músicas, notícias, livros, e até mesmo pessoas com quem se relacionar. Sistemas desse tipo tipicamente operam sobre uma representação do perfil dos usuários, que combina as preferências históricas desses usuários e o contexto imediato de sua interação com o sistema (e.g., por meio de compras, cliques, avaliações de itens). Este curso visa oferecer uma introdução à área de sistemas de recomendação, incluindo um apanhado de abordagens clássicas para produzir e avaliar recomendações de qualidade, além de uma visão geral de novas tendências e direções de pesquisa.