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:
(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:
Marcadores: computação gráfica, computação paralela, processamento de imagens, xkcd
10 Comentários:
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!
Por Iana, Às 28 de julho de 2008 12:55
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 :(
Por Cesar, Às 28 de julho de 2008 14:02
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 :)
Por ricbit, Às 28 de julho de 2008 16:57
(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."
Por Fabio, Às 4 de agosto de 2008 17:03
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.
Por Rocco, Às 5 de agosto de 2008 17:25
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?
Por Junker, Às 7 de setembro de 2008 22:29
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.
Por ricbit, Às 7 de setembro de 2008 22:34
SHERIFF, YOU ARE A BUFFOON, SHERIFF!
Por Junker, Às 11 de setembro de 2008 21:54
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!
Por jannone, Às 14 de setembro de 2008 20:35
Ni!
Ainda acho o Aragonés mais rápido! rsrsrs Mas uma coisa interessante é o quanto ambos gostam de katanas! ;D
~~
Por Al Scandar, Às 5 de outubro de 2008 02:09
Postar um comentário
Links para esta postagem:
Criar um link
<< Início