InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

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

Postado por Dionysios G. Synodinos , traduzido por Wellington Pinheiro em 19 Set 2011

Seções
Desenvolvimento
Tópicos
HTML 5 ,
HTML5 ,
HTML ,
JavaScript ,
RIA ,
Linguagens Dinâmicas ,
Plataforma SOA ,
Programação Paralela ,
Linguagens ,
Cloud Computing ,
SOA ,
Segurança ,
Arquitetura Corporativa ,
Browsers ,
Arquitetura ,
Programação

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.