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

fmms 12年前
     <p>        JavaScript,这个支撑 Web 的语言,在连移动设备都拥有并行运算能力的今天,还仍然以串行执行的方式存在。Intel 实验室正在研究<a href="/misc/goto?guid=4958191100197275483">扩展 JavaScipt,以便充分利用多核系统的运算能力</a>,他们已经发布了一个相关的 FireFox 插件。</p>    <p>        这个 JavaScript 的并行扩展代号为 River Trail,是 Intel 实验室的一个项目,致力于在 Web 应用中利用 Intel 多核处理器和向量扩展运算能力。 River Trail 将促使更多的计算密集型应用程序——如图片处理——出现在浏览器中。</p>    <p>        Intel 实验室的 Stephan Herhut 认为,<a href="/misc/goto?guid=4958191100197275483">与现有 Web 技术的集成是他们主要考虑的问题</a>:</p>    <blockquote>     最让我激动的是,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。    </blockquote>    <p>        River Trail 使用确定性并行数据结构对 JavaScript 进行扩展,该结构在运行时会被转换为底层硬件抽象层指令。通过利用多核处理器和向量处理指令,River Trail<a href="/misc/goto?guid=4958328995453582399">可以大幅提升执行速度</a>。</p>    <p>        值得注意的是,River Trail 还为 JavaScript 添加了 ParallelArray 这一数据结构。这是存储并行数组数据的只读数据结构,可以通过构造函数或调用 ParallelArray 原型上的方法来实例化。它的构造函数接受 JavaScript 普通数组,类型化数组或者可以生成这些数组的函数。例如,“new ParallelArray ([1,2,3])”将创建一个存储1,2,3的 ParallelArray 实例。该数组的内容能够被 <a href="/misc/goto?guid=4958328996264628377">combine</a>, <a href="/misc/goto?guid=4958328997064581902">filter</a>,<a href="/misc/goto?guid=4958328997866776834">map</a>,<a href="/misc/goto?guid=4958328998664436579">reduce</a> 等函数进行处理,而且是并行执行的。这些函数将会被编译成 OpenCL,并使用 JavaScript 的子集。</p>    <p>        现在就可以下载 Firefox 插件来体验 <a href="/misc/goto?guid=4958328999468583751">River Trail</a>。</p>    <p>        <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958329000262501194">JavaScript Extension that Adds Parallel Processing Capabilities Unveiled by Intel</a></p>    <p>        译者:王瑜珩,InfoQ 中文站编辑,ThoughtWorks 咨询师,关注企业级 Web 开发、敏捷实践以及项目管理。</p>    <div id="come_from">     来自:     <a id="link_source2" href="/misc/goto?guid=4958329001059299567" target="_blank">InfoQ</a>    </div>