Intel 发布 JavaScript 扩展以支持并行运算

  • Dio Synodinos
  • 王瑜珩

2012 年 2 月 11 日

话题:JavaScriptHTML5语言 & 开发

JavaScript,这个支撑 Web 的语言,在连移动设备都拥有并行运算能力的今天,还仍然以串行执行的方式存在。Intel 实验室正在研究扩展 JavaScipt,以便充分利用多核系统的运算能力,他们已经发布了一个相关的 FireFox 插件。

这个 JavaScript 的并行扩展代号为 River Trail,是 Intel 实验室的一个项目,致力于在 Web 应用中利用 Intel 多核处理器和向量扩展运算能力。 River Trail 将促使更多的计算密集型应用程序——如图片处理——出现在浏览器中。

Intel 实验室的 Stephan Herhut 认为,与现有 Web 技术的集成是他们主要考虑的问题

最让我激动的是,River Trail 背后所使用的技术,可以与现有 Web 技术无缝集成。River Trail 使用了一种简洁但强大的并行编程模型。我们花了很大力气来让这个扩展看起来尽量自然。我们的目标是让用户在使用 River Trail 构建 Web 应用时,与使用标准 JavaScript 时一样简单。而且,由于 River Trail 本身就在 JavaScript 中,可以更好的与 HTML5 API 结合。我们特别保证,River Trail 与 WebGL 结合的非常好。WebGL 是近期才被引入的 OpenGL 接口,用于在浏览器中渲染 3D 图像。我们有一个 demo 就是模拟超过 4000 个个体的物理行为,计算部分使用了 Trail River,视觉图像部分则使用了 WebGL。

River Trail 使用确定性并行数据结构对 JavaScript 进行扩展,该结构在运行时会被转换为底层硬件抽象层指令。通过利用多核处理器和向量处理指令,River Trail可以大幅提升执行速度

值得注意的是,River Trail 还为 JavaScript 添加了 ParallelArray 这一数据结构。这是存储并行数组数据的只读数据结构,可以通过构造函数或调用 ParallelArray 原型上的方法来实例化。它的构造函数接受 JavaScript 普通数组,类型化数组或者可以生成这些数组的函数。例如,“new ParallelArray([1,2,3])”将创建一个存储 1,2,3 的 ParallelArray 实例。该数组的内容能够被 combinefiltermapreduce等函数进行处理,而且是并行执行的。这些函数将会被编译成 OpenCL,并使用 JavaScript 的子集。

现在就可以下载 Firefox 插件来体验River Trail

查看英文原文:JavaScript Extension that Adds Parallel Processing Capabilities Unveiled by Intel
JavaScriptHTML5语言 & 开发