Threads, Consideradas Perigosas
Posted on January 24, 2007
Fonte: O’Reilly Radar, por Nat Torkington
O Professor Edward A. Lee do departamento EECS de UC Berkeley escreveu O Problema com Threads (PDF) ano passado. Nele, ele observa que threads removem o determinismo e abrem as portas para bugs súbitos mas mortais, e que enquanto o problema fora até certo ponto gerenciável em sistemas com um único core (núcleo/processador), threads em sistemas multicore vão tornar os problemas fora de controle. Ele sugere que a única solução é parar de enfiar paralelismo nas linguagens e componentes – em vez disso fazer design de novas linguagens e componentes que podem ser compostos de forma determinista.
Seu trabalho reflete duas tendências que vemos no Radar (O’Reilly): a primeira é em direção a sistemas multicore e a crescente importância de execução distribuída; a segunda é o aumento da relevância de linguagens como Erlang, Haskell e E. O crescimento de multicore é significante: se quiser que seu programa rode mais rápido, os dias de comprar hardware mais rápido estão chegando ao fim. Em vez disso, estamos olhando para um tempo quando você deve fazer seu programa rodar mais rápido em mais hardware (lento). Entra a programação paralela, clusters, e seu irmão maior tão falado: “grid computing”.
Google obviamente enfrentou esse problema e resolveu com seu MapReduce. Lee argumenta que esse tipo de sistema de coordenação é como resolvemos o problema do não-determinismo das threads. Ele “paralela” a maneira onde fatiamento de banco de dados se torna a maienra de resolver escalabilidade (veja a história de guerra do Flickr, como exemplo). Por essa razão estamos observando Hadoop, a implementação open source do MapReduce, com interesse. (Também existem implementações em Perl, Ruby e outras linguagens).
MapReduce é construído sobre uma técnica da linguagem de programação Lisp. Enquanto a necessidade por velocidade nos força para fora da nossa zona de conforto procedural single core, estamos olhando mais e mais para linguagens de programação de “nicho” para inspiração. Haskell tem algo assim entre os geeks alpha que conhecemos (ex. o projeto Pugs) e OCaml tem um grupo pequeno mas devoto. E então havia o grande interesse em Smalltalk na conversa com Avi Bryant na OSCON ano passado (SitePoint blogou sobre isso aqui)
blog comments powered by Disqus
Archives
- February 12(2)
- December 11(1)
- November 11(4)
- October 11(6)
- September 11(5)
- August 11(1)
- July 11(5)
- May 11(4)
- April 11(11)
- March 11(4)
- February 11(3)
- January 11(4)
- December 10(9)
- November 10(2)
- October 10(10)
- September 10(4)
- August 10(6)
- July 10(14)
- June 10(16)
- May 10(8)
- April 10(14)
- March 10(9)
- February 10(6)
- January 10(14)
- December 09(10)
- November 09(10)
- October 09(7)
- September 09(19)
- August 09(4)
- July 09(12)
- June 09(7)
- May 09(12)
- April 09(11)
- March 09(9)
- February 09(9)
- January 09(12)
- December 08(14)
- November 08(20)
- October 08(15)
- September 08(18)
- August 08(25)
- July 08(13)
- June 08(21)
- May 08(29)
- April 08(27)
- March 08(12)
- February 08(32)
- January 08(31)
- December 07(27)
- November 07(30)
- October 07(25)
- September 07(28)
- August 07(16)
- July 07(15)
- June 07(16)
- May 07(7)
- April 07(13)
- March 07(8)
- February 07(9)
- January 07(24)
- December 06(17)
- November 06(17)
- October 06(15)
- September 06(38)




