Ensino‎ > ‎

Computação Intensiva em Dados

Sobre a Disciplina

Professor:
Alexandre Nóbrega Duarte (alexandrend@gmail.com)

Carga horária: 60 horas
Horário: Terça -› 14:00h-16:00h; Quinta -› 14:00h-16:00h
Local: a definir

Horário de Atendimento: Terça 08:00h-11:00

Lista de discussãocidufpb@googlegroups.com - 
Mandar e-mail para alexandrend@gmail.com para ser cadastrado


Objetivos do Curso

Mecanismos de suporte à Computação Intensiva em Dados são críticos para o avanço da ciência moderna em um momento em que os sistemas de armazenamento apresentam considerável crescimento em sua capacidade de armazenamento sem comparável aumento de sua velocidade de transferência de dados. Existe uma necessidade latente por técnicas mais avançadas para manipular, visualizar e interpretar grandes volumes de dados. Construir sistemas distribuídos de larga escala capazes de dar suporte à Computação Intensiva em Dados apresenta desafios em vários níveis diferentes, desde as tecnologias de rede (transporte, roteamento, etc), ao projeto de algoritmos distribuídos (distribuição de dados, gerência de recursos, etc) e chegando até mesmo às redes sociais (mecanismos de incentivo, etc). 

Este curso apresenta um passeio por vários tópicos de pesquisa na área de sistemas distribuídos, cobrindo assuntos como computação utilizando clusters, grades computacionais, super-computadores e computação em nuvem. Exploraremos soluções e princípios de projeto, implementação e avaliação de sistemas distribuídos para dar suporte à Computação Intensiva em Dados.  

Nossas leituras e discussões nos ajudarão a identificar problemas de pesquisa e entender métodos e abordagens gerais de projeto, implementação e avaliação de sistemas distribuídos de suporte à Computação Intensiva em Dados. Os tópicos cobertos incluem gerenciamento de recursos (descoberta, alocação, modelos de computação, modelos de dados, localidade de dados, virtualização, monitoramento, etc), modelos de programação, modelos de aplicação e caracterização de sistemas. 

Nossas discussões serão geralmente e
mbasadas no contexto de sistemas distribuídos em produção como o OurGrid, Amazon EC2, vários super-computadores modernos e diferentes plataformas de programação (MapReduce, Hadoop, Dryad, Sphere/Sector, Swift/Falkon and Parrot/Chirp). 

O curso será realizado por meio de aulas expositivas, palestras convidadas, discussões sobre artigos científicos e um projeto de implementação (incluindo um relatório escrita e uma apresentação oral).

Espera-se que ao concluir o curso os alunos sejam capazes de:
  1. Entender a importância da Computação Intensiva em Dados
  2. Entender as diferenças entre computação em cluster, computação em grade, super-computação e computação em nuvem
  3. Entender como são construídos sistemas distribuídos de larga escala
  4. Construir um sistema distribuído
  5. Familiarizar-se como múltiplos modelos de programação
  6. Ler e entender um artigo científico
  7. Fazer uma apresentação técnica formal
  8. Escrever um relatório formal (ou mesmo um artigo científico) sobre seu projeto.

Pré-requisitos

  1. Saber programar (C, C++ ou Java)
  2. Ter conhecimentos sobre Redes de Computadores
  3. Ter conhecimentos sobre Sistemas Operacionais
  4. Ter conhecimentos sobre Sistemas Distribuídos

Conteúdo Programático

  1. Sistemas Distribuídos
  2. Computação em Clusters
  3. Super-computação 
  4. Computação em Nuvem
  5. Computação em Grade
  6. Computação Intensiva em Dados
  7. Sistemas de Armazenamento
  8. Sistemas de Arquivos Compartilhados, Distribuídos e Paralelos
  9. Entrada e Saída Paralela
  10. Computação Científica
  11. Programação Paralela
  12. MapReduce
  13. Sistemas de Workflow
  14. Computação Intensiva em Dados Utilizando GPUs
  15. Questões Abertas de Pesquisa em Computação Intensiva em Dados
Plano de Aulas (sendo preparado on the go)


Data Assunto Notas de aula Material para leitura/consulta
 06/03/2012    
  
 08/03/2012
  
 13/03/2012


 15/03/2012


    




Bibliografia

  • Todo o conteúdo do curso será baseado em artigos científicos disponíveis online.


Forma de Avaliação

  • Participação nas discussões sobre os artigos (incluindo os resumos produzidos): 30%
  • Apresentação oral intermediária sobre o projeto: 10%
  • Apresentação oral final sobre o projeto: 10%
  • Projeto + Relatório: 50%

Ferramental para os projetos

  • Todos os alunos receberão créditos para uso no Amazon EC2 para o desenvolvimento dos projetos. Além disso, receberão também uma conta de usuário em uma máquina com 2 processadores quad-core Intel Xeon E5620 de 2.4Ghz com hypethreading,  16GB de memoria RAM DDR3 1333Mhz, 1TB de disco e duas placas Gigabit Ethernet.
  • Enviar e-mail para alexandrend@gmail.com para solicitar o acesso.


Notas