segunda-feira, 28 de julho de 2008

MapReduce is running

Quando eu era estagiário na década de 90, um dos meus primeiros projetos envolvia computação paralela. O projeto Visible Human tinha acabado de fatiar os primeiros espécimes, e nosso grupo estava doidinho pra fazer ray-tracing do volume de dados. Mas o volume de dados era grande demais pros padrões da época, e única saída foi importar uma Meiko com dez processadores, pra dar conta do trabalho.

(Meiko, aliás, que tem uma história curiosa. Apesar de ter dez processadores, só conseguíamos rodar processos em nove deles, tinha um que não funcionava de jeito nenhum. Depois de muitas ligações pro suporte, resolvemos desmontar a máquina pra ver se tinha alguma coisa errada no hardware, e, surpresa, entre o pente de memória e o conector na motherboard tinha um mosquito preso. Sim, aquela cpu tinha um bug :)

Mas programar diretamente a comunicação entre os processadores, com PVM ou MPI, é trabalho demais. A nossa solução foi escrever uma camada intermediária que abstraía a parte de comunicação e fazia o paralelismo de modo implícito. Nossa biblioteca era customizada pra visualização volumétrica paralela, mas hoje em dia a mesma abordagem é feita de maneira mais genérica, por pacotes como o Hadoop e o MapReduce, sendo que esse último eu uso bastante hoje em dia.

Mas, mesmo paralelizando o processamento, o melhor que uma abordagem dessas consegue é um ganho linear no número de processadores. Se o tamanho do seu volume de dados precisa daqueles prefixos que vêm depois do giga, então até o MapReduce pode demorar um pouco pra rodar. Nesse fim de semana eu encontrei o Randall Munroe, e pedi pra ele ilustrar como é um MapReduce na prática :)


Eu também aproveitei pra filmar o Randall enquanto ele desenhava esse sketch. Como o estilo dele é, hum, minimalista, isso o torna o único cartunista que eu conheço que consegue ser mais rápido que o Aragonés:

10 comentários:

  1. Eu sei que você, no fundo, quer compartilhar conhecimento e não nos fazer inveja com sua sketch.

    De qualquer maneira: vá a merda, de coração! :)

    (...)
    Eu estava essa semana mesmo fazendo propaganda de um projeto do IME (e de uma porrada de institutos) em computação paralela e oportunista, e aproveito para citar aqui, caso você ainda não conheça:

    http://www.integrade.org.br/portal

    P.S.: Queremos o textos dos jornalistas!

    ResponderExcluir
  2. Olha só, um sketch direto da Costa Oeste!

    Muito legal a história (eu só tinha ouvido falar bem por cima), principalmente o bug inglês que veio de brinde. Pena que no PS3, o que impede de usar o último processador não é um bug da mesma espécie :(

    ResponderExcluir
  3. O texto dos jornalistas está na fila ainda, junto com o texto do jogo do pim e o texto sobre o barack obama.

    Eu não imaginava que dava pra fazer spoiler de blog :)

    ResponderExcluir
  4. (totalmente offtopic)
    Best Slashdot +5 funny evar:

    "I wish Alice and Bob would just go ahead and do it already. Everybody knows they have the hots for one another."

    ResponderExcluir
  5. joguei uns 15 minutos o gta4 mas nao me acostumei com o controle. prefiro jogar com mouse esse tipo de jogo.
    e achei meio encheçao de linguica aqueles encontros com opcoes como jogar um boliche vagabundo ou ficar vendo televisão, espero que nao seja obrigado a fazer isso pra jogar as partes divertidas.

    ResponderExcluir
  6. ricbit, chegasse a traduzir a vila do staff no shalom em alguma versão do teu patch?
    tem alguma explicação lógica pro cara poder atravessar o deserto depois de cortar a árvore com o machado?

    ResponderExcluir
  7. Eu traduzi sim, mas acho que nunca coloquei online. Na próxima vez que eu entrar de férias eu termino essa versão :)

    Sim, no original em japonês era um trocadilho infame que eu não devo ter traduzido direito. Quando eu fizer a versão nova, reviso o trocadilho também.

    ResponderExcluir
  8. Ei Ricbit. O Jurczyk comentou a possibilidade de incluir seu blog no Planet MSX. O que vc acha?

    (se for o caso, preciso do seu hackergotchi)

    []s!

    ResponderExcluir
  9. Ni!

    Ainda acho o Aragonés mais rápido! rsrsrs Mas uma coisa interessante é o quanto ambos gostam de katanas! ;D

    ~~

    ResponderExcluir