BT

Processamento paralelo em JavaScript ganha força com a nova extensão da Intel

por Dio Synodinos , traduzido por Wellington Pinheiro em 19 Set 2011 |

A linguagem JavaScript sempre foi sequencial (não-paralela), embora a capacidade de processamento paralelo já esteja disponível até em dispositivos móveis. Para reduzir essa limitação, a Intel tem trabalhado em seus laboratórios numa extensão do JavaScript capaz de explorar as vantagens dos sistemas com vários núcleos, chamada River Trail. 

A extensão permite fazer o uso dos vários núcleos das CPUs Intel e de suas novas funcionalidades vetoriais (SSE/AVX) em aplicações web. O River Trail visa com isso tornar possível o uso de aplicações que necessitam de grande poder computacional, tal como o processamento de fotos, no próprio browser. (Conheça mais sobre as extensões vetoriais da Intel aqui e aqui).

A integração com tecnologias web existentes foi uma das maiores preocupações durante o desenvolvimento da nova extensão, conforme comenta Stephan Herhut do Intel Labs:

Nossa meta foi tornar a escrita de aplicações web com o River Trail tão fácil quanto a programação com JavaScript convencional. O River Trail estende o JavaScript com um modelo de programação paralela simples mas poderoso. Além disso, como a tecnologia é embiutida em JavaScript, funciona bem com as novas APIs de HTML5. Particulatmente, o River Trail funciona bem com o WebGL, uma API JavaScript desenvolvida recentemente para OpenGL e usada para a visualização 3D no browser. Uma de nossas aplicações de desmonstração é um simulador de física com mais de 4 mil elementos, utilizando o River Trail para processamento e visualização com o WebGL.

O River Trail estende o JavaScript com construções determinísticas de paralelismo na manipulação de dados, que são traduzidas em tempo de execução em uma camada de abstração de hardware de baixo nível. Com o uso de CPUs de vários núcleos e instruções vetoriais, o River Trail consegue obter reduções no tempo de processamento (link para vídeo) quando comparado ao JavaScript sequencial. 

Em particular, é adicionado o tipo ParallelArray ao JavaScript. Trata-se de uma estrutura somente-leitura que mantém os dados de um array, cujos elementos podem ser processados em paralelo. A sua criação pode ser feita através do construtor ou devolvida na chamada de um dos métodos de protótipo de ParallelArray. O dado passado para o construtor ou o protótipo é tipicamente um array JavaScript ou uma função usada para gerar os valores para o ParallelArray. 

Por exemplo, "new ParallelArray([1,2,3])" cria um ParallelArray com os valores 1, 2 e 3. O array fica acessível por funções como combine, filter, map, reduce, entre outras. O processamento dentro dessas funções é feito em paralelo. As funções citadas podem ser usadas normalmente como um subconjunto do JavaScript.

River Trail está disponível como um add-on do browser Firefox.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT