MC-CD02
Algoritmos e Modelos de Programação para Big Data

Professor: Fábio Porto (LNCC)

Horarios: 19/02 a 22/02 de 14:00h às 15:30h

Objetivo: O aparecimento de grandes volumes de dados a serem analisados modificou o panorama de sistemas de processamento de dados. Além de sistemas do tipo NoSQL, surgiram frameworks BigData com alta escalabilidade e um modelo de programação que favorece o processamento paralelo e distribuído. Neste curso apresentaremos as principais abordagens para processamento BigData e nos concentramos em alguns dos frameworks existentes. Discutiremos seu Modelo de Programação, Arquitetura e Técnicas de Programação. No último dia do curso os alunos têm a experiência prática de desenvolvimento de um dataflow em Apache/ Spark

Ementa:
  1. Introdução a BigData
  2. Modelos de Programação: Map-Reduce, BSP, GraphXeGiraph
  3. Apache Spark, HDFS
  4. Framework Dask e Ray
  5. Estruturas de dados para grandes volumes de dados: Kd-tree, Ph-tree, DHTs, Quadtrees
  6. Estratégias de Particionamento de dados e Localidade de dados
  7. Execução de algoritmos de Deep Learning em Spark
  8. Parte prática: Exercício com o framework Apache Spark - Python

Bibliografia:
  1. Dean, J., Ghemawat, S., 'MapReduce: Simplified Data Processing on Large Clusters', OSDI'04: Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December, 2004
  2. Tamer Ozsu, Patrick Valduriez, Principles of Distributed Database Systems, Springer-Verlag, 2011.
  3. Hasso Plattner, Alexander Zeir, In-Memory Data Management, Springer
  4. Zaharia, M., Chowdhury, M., Franklin, M. J., Shenker, S., and Stoica, I. (2010). Spark: Cluster computing with working sets. In Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing, HotCloud’10, pages 10–10, Berkeley, CA, USA. USENIX Association.
  5. Fabio Porto, Algoritmos e Programação em Big Data, Apostila, 2017
  6. Philip Moritz et al, Ray: A Distributed Framework for Emerging AI Applications, OSDI, 2018
  7. dask.org, last accessed June 2020.