基于Node.js的共享持久内存并行编程模型

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:qq978458283
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
JavaScript是一门被广泛应用于客户端浏览器的轻量级脚本语言,自发明以来,JavaScript发展迅速,目前几乎所有的网页都有使用JavaScript。Node.js是JavaScript运行时环境,使得JavaScript可以被用以在服务器端开发规模化的网络应用。然而,由于JavaScript被设计为单线程语言,Node.js和底层的V8虚拟机也是单线程,因此不支持并行编程,这使得开发者想要提升应用的性能变得困难。与此同时,持久内存作为一种新的内存和存储结构,在服务端应用开发方面展现出了积极的前景。目前,脚本语言基于持久内存的并行编程支持相关的研究工作还比较少。在本文中,我们提出一个叫SPMP的并行编程模型,它是在Node.js下共享持久内存的JavaScript支持。在SPMP模型中,我们首先设计实现了一个PersistentArrayBuffer(PAB)对象,其功能类似Node中的ArrayBuffer对象,以二进制数据缓冲区的方式访问和管理内存。不同之处在于,PAB由于访问机制的设计,可以用于管理持久内存。在使用SPMP处理并发任务时,每个进程需要在自己的地址空间中维护一个PAB对象,用以进行持久内存的分配、管理和访问。多个进程可以通过他们的PAB对象映射到同一内存区域的方式实现持久内存共享,进而基于共享内存实现进程间通信。为了保证多进程并发的高效性和负载均衡,我们设计了三种不同的并行机制,以适用于不同的场景。对于并发编程中常见的一致性控制问题,我们进行原子化操作的相关设计,避免写冲突、重复写、死锁等问题的发生。除了支持持久内存之外,SPMP模型也可以在常见的RAM和硬盘的存储结构中,保障内存数据的持久性。我们将SPMP模型和拓展内存语义模型(EMS,Node.js并行编程最新的研究成果)在两个数据密集型任务上进行实验对比,实验结果证明,在数据流实验上,SPMP比EMS快100到300倍,而在复杂的并发任务比如词频统计上,由于独特的内存分配管理策略设计,SPMP快两倍左右。
其他文献
本文运用1094个阳光私募数据,采用交叉分析和多元回归分析,探讨了私募经理人的公募从业经验对业绩的影响,证实了公募从业经验的经理人收益率和波动率普遍较低。本文还发现接受过
近年来对活性氧引起的细胞损伤导致一些疾病,引起了广泛重视.一些学者认为,在病毒性心肌炎的发病机理中,为活性氧增加产生超氧阴离子自由基,引发脂质过氧化作用导致心肌损害
研究有色噪声扰动下反馈未知的闭环系统的无偏辨识问题,提出了一种偏差补偿最小二乘法,应用这种方法,在噪声未建模的情况下,即可获得前向通道中对象模型和反馈通道中控制器模型参
目的:研究分析头孢他啶临床应用的不良反应,寻求临床合理用药。方法:对国内文献进行整理、归纳,对不良反应(ADR)的临床表现,ADR的发生机制以及头孢他啶临床用药的安全性进行分析
随着人类社会对矿产资源的持续性开采,近地表资源逐渐贫乏,对地下矿产资源的开采逐渐向深部转移,因此面临一系列问题。程潮铁矿随着矿体走向,采场逐渐向西部、深部拓展,选厂
作为现代汉语中的一大词类,副词在日常交际中,经常被频繁使用,同时也是一种很重要的表达手段。作为现代汉语中的一个高频率使用副词,“又”本身的义项多,用法杂,因此不易习得
<正> 一、4MZ-3型自走式采棉机 由中国收获机械(集团)总公司新疆联合机械(集团)有限责任公司(电话:0991-6629323)研制开发,已通过新产品及科研成果鉴定。
秘鲁鱿鱼资源丰富,但肉中的怪酸味制约着其食用价值及其相关产品的开发利用。本论文通过减缺实验和增添实验对秘鲁鱿鱼肌肉中与酸味相关的物质进行了分析,确定了秘鲁鱿鱼肌肉