BT
x Por favor preencha a pesquisa do InfoQ !

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.

Avalie esse artigo

Relevância
Estilo/Redação

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 mensagens dessa discussão
Comentários da comunidade

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

Receber mensagens dessa discussão

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

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.