9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

Mozilla 正在 SpiderMonkey 中测试 JavaScript 并行计算

  • 2015-03-05
  • 本文字数:996 字

    阅读完需:约 3 分钟

Mozilla 正致力于实现 JavaScript“并行(parallelism)计算”,以便充分利用硬件性能。Dave Herman 是 Mozilla Research 的首席研究员和策略总监。近日,他在一篇博文中提到,他们正在其 JavaScript 引擎 SpiderMonkey 中进行相关实验。

他们试图通过一种底层的、渐进的方法为 JavaScript 添加更加灵活和强大的并行计算原语。他首先指出:

我正在谈论的不是“并发(concurrency)”……JavaScript 的异步并发模型很受欢迎,也取得了成功,而且 promises ES6 generators 和即将到来的 async/await 正使它变得越来越好。

这里要探讨的是可以释放设备(GPU、SIMD 指令及多内核处理器)潜能的并行计算。 Web Workers 已经在多核并行计算方面做了一些工作,但其工作线程是完全隔离的,只能通过 postMessage 进行通信。

还有一种方案比较激进,就是像 Nashorn 那样将 JavaScript 变成一种完全多线程的数据模型。不过,那需要宿主 Java 程序小心地同步脚本,否则,JavaScript 应用程序无法得到“运行至完成(run-to-completion)”的保证。而且,这个过程会伴随大量的标准化和实现工作,进而会带来生态系统方面的风险。

另一方面,Mozilla Research 和 Intel Labs 这些年来也在确定性并行计算API (有人称为 River Trail PJS )方面做了一些实验。但他们选择了一种很困难的方法,因为很难找到一种足够通用的高级模型能够适合各式各样的并行程序。

于是,他们引入了 SharedArrayBuffer 类型。不同于 PJS,它内置的锁定机制为工作线程带来了新的锁定形式,但同样地,部分对象也可能因此遭受数据争用。不过,与Nashorn 不同的是,这种情况只会出现在选择使用共享内存作为后台存储的对象中。如果创建了一个不使用共享缓冲区的对象,那么可以确定,它永远不会出现数据争用。Dave 表示,这是一种相对保守的方法,但应该能够满足许多应用场景的需求。实际上,几年前就有人探讨过这种方法。在去年的 JSConf 大会上,谷歌 PNaCI 团队的 Nick Bray 还演示了一个在Chrome 中共享缓冲区的原型

目前,Dave 及其团队正在SpiderMonkey 中测试SharedArrayBuffer API,并且正在草拟它的规范 Firefox 每日构建版本中已经提供了原型实现,感兴趣的读者可以下载试用并提供反馈。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2015-03-05 02:251670
用户头像

发布了 1008 篇内容, 共 361.9 次阅读, 收获喜欢 334 次。

关注

评论

发布
暂无评论
发现更多内容

同态加密算力开销如何弥补?港科大团队提出FPGA加速方案

星云Clustar

联邦学习 同态加密 隐私计算 算力加速 FPGA加速

【Vue2.x 源码学习】第二十六篇 - 数组依赖收集的实现

Brave

源码 vue2 8月日更

导致我们形不成「自律」的「罪魁祸首」

非著名程序员

提升认知 个人提升 自律 8月日更

手把手教你,从零开始搭建Spring Cloud Alibaba!这份笔记太牛了

Java~~~

Java 面试 微服务 Spring Cloud 架构师

就这?腾讯云高工熬夜手写'Java微服务学习笔记'也就让我月薪涨3k

Java~~~

Java spring 面试 微服务 架构师

它来了!靶机渗透题目的一次实战记录

网络安全学海

网络安全 信息安全 实战 渗透测试 安全漏洞

Python3 数字

Geek_aee0b4

KIE(Knowledge Is Everything)

LeifChen

drools 8月日更 KIE 知识库

币安链NFT游戏系统开发区块链技术

薇電13242772558

区块链 智能合约

国内外 DevOps/DevSecOps 报告对比解读:安全与云原生持续升温

极狐GitLab

DevOps 安全 DevSecOps

怎样回到常识做投资?

石云升

投资 8月日更 启发

金九银十面试分享!字节跳动Java研发岗(内附万能模板)

Java 编程 架构 面试 架构师

Docker可视化管理工具对比(DockerUI、Shipyard、Rancher、Portainer)

xcbeyond

Docker Portainer shipyard rancher 8月日更

涨薪50%,从小厂逆袭,坐上美团L8技术专家(面经+心得)

Java~~~

Java 面试 微服务 JVM 架构师

毕业设计

方堃

配置ssh免密码登录

一个大红包

8月日更

2021年《中国DevOps现状调查报告》正式发布!GitLab被选为使用率最高的开源软件安全类工具(内附下载链接)

极狐GitLab

特斯拉自研超算Dojo本月亮相? UCLA教授发推提前泄密

百度开发者中心

自动驾驶 最佳实践 方法论 科技信息

数据中心的组织架构是怎样的?

Taylor

大数据 数据中心 数字化 组织架构

模块四考试试卷存储方案

kitten

模块四

2021年7月云主机性能评测报告出炉,华为云再登榜首

博睿数据

Python3 运算符

Geek_aee0b4

Java程序员3个月从月薪6k涨到15k,你知道我是怎么过来的吗?

Java~~~

Java 面试 微服务 JVM 架构师

15 道超经典大厂 Java 面试题!重中之重

程序员鱼皮

Java c++ 面试 后端 Go 语言

从错误中成长

escray

学习 极客时间 朱赟的技术管理课 8月日更

趁着课余时间学点Python(四)真的花点课余时间就能理解的分支控制语句

ベ布小禅

8月日更

我从外包辞职了,10000小时后,走进字节跳动拿了offer

Java~~~

Java 面试 微服务 JVM 架构师

前方高能预警!阿里大佬出品“Spring实战学习笔记”震撼来袭

Java~~~

Java spring 面试 微服务 架构师

人工智能从业者需要掌握哪些数学知识

小术晓术

人工智能 数学

fil矿机有哪几种?fil矿机算力怎么计算?

fil矿机有哪几种 fil矿机算力怎么计算

ipfs矿机怎么买?ipfs矿机在哪买?

ipfs矿机怎么买 ipfs矿机在哪买

  • 扫码添加小助手
    领取最新资料包
Mozilla正在SpiderMonkey中测试JavaScript并行计算_JavaScript_谢丽_InfoQ精选文章