Com o surgimento de diversas fontes que oferecem enormes volumes de dados, bem como outras que oferecem dados em tempo real, as demandas de processamento têm crescido de forma significativa e a nuvem é um ambiente normal de onde muitos dados se originam e onde eles acabam sendo processados. Ambientes de processamento como Hadoop e Spark se tornaram comuns e outros surgem a cada dia.
Nesse contexto, esta disciplina pretende apresentar aos alunos tópicos avançados e de pesquisa recente na área de Processamento de Dados Massivos (Big Data). Nesse processo, os alunos desenvolverão habilidades de pesquisa em Sistemas Distribuídos, como revisão de literatura, estudo crítico de artigos científicos e identificação de novos desafios de pesquisa.
A disciplina será oferecida na forma de seminários organizados e ministrados pelos alunos sob a supervisão do professor. Os artigos serão escolhidos pelo professor e alunos entre trabalhos recentes publicados nas principais conferências da área. Uma lista inicial será apresentada pelo professor no início do curso e outros serão propostos posteriormente. O foco será no entendimento dos ambientes de processamento envolvidos e nos desafios relacionados ao desenvolvimento de aplicações big-data e em nuvem.
Tópicos
Os artigos serão escolhidos entre aqueles que abordem o estado da arte em ambientes de processamento distribuídos para big-data, aspectos de paralelização automática de algoritmos, ambientes de armazenamento para grandes volumes de dados, aplicações inovadoras derivadas de novas fontes de dados, aspectos de redes e energia em datacenters voltados para big-data, etc.
Diversas fontes podem ser consideradas para os artigos, mas algumas das principais são as maiores conferências na área de sistemas distribuídos, como NSDI, OSDI, SOSP, SOCC, Euro-par, CCGRID, IEEE CLUSTER, IEEE Big-Data, SIGCOMM, etc.
Pré-requisitos
Pelas características do curso, conhecimento dos princípios de ambientes de processamento de dados massivos é desejável, mas uma pequena introdução será apresentada nas primeiras aulas.
Formato do curso
A cada aula, um ou dois artigos serão escolhidos para discussão. Um aluno será responsável por preparar uma revisão inicial sobre o mesmo antes da aula e conduzir as discussões. Os demais alunos deverão apresentar cada um pelo menos uma questão ou um comentário crítico sobre o artigo e apresentá-los durante as discussões. O aluno responsável pela condução do seminário deverá sumarizar toda a discussão em uma revisão completa, potencialmente incluindo sugestões para estender o trabalho. Cada aluno deverá conduzir a discussão de pelo menos dois artigos ao longo do curso.
Antes da aula, todos os alunos devem submeter um pequeno resumo do artigo, junto com suas perguntas/comentários críticos.
Paralelamente, todos os alunos deverão desenvolver um trabalho durante o semestre dentro da área de discussão das aulas (individualmente ou em duplas, dependendo do escopo proposto). Temas devem ser propostos pelos alunos e discutidos com o professor, até que uma versão seja acordada entre aluno e professor. Uma proposta formal deve ser submetida pelos alunos durante o primeiro mês de aulas. Por volta da metade do curso um relatório de andamento deve ser entregue e um relatório de resultados deve ser apresentado ao final do curso, junto com uma apresentação oral.
As três entregas (proposta, relatório de andamento, relatório final) e apresentação oral fazem parte da avaliação, mas não serão pontuadas isoladamente. A nota final será derivada não apenas das entregas em si, mas também do esforço despendido durante o trabalho.