基于Node.js的共享持久內(nèi)存并行編程模型
發(fā)布時(shí)間:2021-05-17 07:38
JavaScript是一門被廣泛應(yīng)用于客戶端瀏覽器的輕量級腳本語言,自發(fā)明以來,JavaScript發(fā)展迅速,目前幾乎所有的網(wǎng)頁都有使用JavaScript。Node.js是JavaScript運(yùn)行時(shí)環(huán)境,使得JavaScript可以被用以在服務(wù)器端開發(fā)規(guī);木W(wǎng)絡(luò)應(yīng)用。然而,由于JavaScript被設(shè)計(jì)為單線程語言,Node.js和底層的V8虛擬機(jī)也是單線程,因此不支持并行編程,這使得開發(fā)者想要提升應(yīng)用的性能變得困難。與此同時(shí),持久內(nèi)存作為一種新的內(nèi)存和存儲(chǔ)結(jié)構(gòu),在服務(wù)端應(yīng)用開發(fā)方面展現(xiàn)出了積極的前景。目前,腳本語言基于持久內(nèi)存的并行編程支持相關(guān)的研究工作還比較少。在本文中,我們提出一個(gè)叫SPMP的并行編程模型,它是在Node.js下共享持久內(nèi)存的JavaScript支持。在SPMP模型中,我們首先設(shè)計(jì)實(shí)現(xiàn)了一個(gè)PersistentArrayBuffer(PAB)對象,其功能類似Node中的ArrayBuffer對象,以二進(jìn)制數(shù)據(jù)緩沖區(qū)的方式訪問和管理內(nèi)存。不同之處在于,PAB由于訪問機(jī)制的設(shè)計(jì),可以用于管理持久內(nèi)存。在使用SPMP處理并發(fā)任務(wù)時(shí),每個(gè)進(jìn)程需要在自己的地址空間中維護(hù)...
【文章來源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:64 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
abstract
第一章 緒論
1.1 選題背景
1.2 研究目的和意義
1.3 論文主要研究內(nèi)容
1.4 論文貢獻(xiàn)
1.5 文章組織結(jié)構(gòu)
第二章 相關(guān)技術(shù)和研究工作
2.1 V8 引擎和Node.js
2.2 持久內(nèi)存開發(fā)工具包(PMDK)
2.3 Web Worker
2.4 通用消息(GEMs)
2.5 拓展內(nèi)存語義(EMS)
2.6 本章總結(jié)
第三章 共享持久內(nèi)存并行編程模型設(shè)計(jì)
3.1 設(shè)計(jì)動(dòng)機(jī)
3.2 持久內(nèi)存對象
3.3 共享內(nèi)存與進(jìn)程間通信機(jī)制
3.4 并發(fā)控制
3.5 本章總結(jié)
第四章 共享持久內(nèi)存并行編程模型實(shí)現(xiàn)
4.1 PersistentArrayBuffer對象
4.1.1 PAB對象實(shí)現(xiàn)
4.1.2 PAB應(yīng)用
4.2 多進(jìn)程與內(nèi)存共享
4.2.1 進(jìn)程生成和內(nèi)存管理
4.2.2 共享內(nèi)存和JS對象
4.2.3 進(jìn)程間通信
4.3 BSP與負(fù)載均衡
4.3.1 整體同步并行計(jì)算模型(BSP)
4.3.2 負(fù)載均衡并行策略
4.4 并發(fā)控制
4.5 本章總結(jié)
第五章 實(shí)驗(yàn)與分析
5.1 實(shí)驗(yàn)設(shè)計(jì)
5.1.1 實(shí)驗(yàn)內(nèi)容和文本集
5.1.2 實(shí)驗(yàn)?zāi)P秃铜h(huán)境配置
5.2 SPMP并行編程支持
5.3 并行策略對比
5.4 SPMP與 EMS對比實(shí)驗(yàn)
5.4.1 數(shù)據(jù)流實(shí)驗(yàn)
5.4.2 詞統(tǒng)計(jì)實(shí)驗(yàn)
5.5 本章總結(jié)
第六章 全文總結(jié)
6.1 SPMP模型設(shè)計(jì)工作總結(jié)
6.2 不足之處
6.3 未來展望
參考文獻(xiàn)
致謝
攻讀學(xué)位期間發(fā)表的學(xué)術(shù)論文
攻讀學(xué)位期間參與的項(xiàng)目
本文編號:3191375
【文章來源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:64 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
abstract
第一章 緒論
1.1 選題背景
1.2 研究目的和意義
1.3 論文主要研究內(nèi)容
1.4 論文貢獻(xiàn)
1.5 文章組織結(jié)構(gòu)
第二章 相關(guān)技術(shù)和研究工作
2.1 V8 引擎和Node.js
2.2 持久內(nèi)存開發(fā)工具包(PMDK)
2.3 Web Worker
2.4 通用消息(GEMs)
2.5 拓展內(nèi)存語義(EMS)
2.6 本章總結(jié)
第三章 共享持久內(nèi)存并行編程模型設(shè)計(jì)
3.1 設(shè)計(jì)動(dòng)機(jī)
3.2 持久內(nèi)存對象
3.3 共享內(nèi)存與進(jìn)程間通信機(jī)制
3.4 并發(fā)控制
3.5 本章總結(jié)
第四章 共享持久內(nèi)存并行編程模型實(shí)現(xiàn)
4.1 PersistentArrayBuffer對象
4.1.1 PAB對象實(shí)現(xiàn)
4.1.2 PAB應(yīng)用
4.2 多進(jìn)程與內(nèi)存共享
4.2.1 進(jìn)程生成和內(nèi)存管理
4.2.2 共享內(nèi)存和JS對象
4.2.3 進(jìn)程間通信
4.3 BSP與負(fù)載均衡
4.3.1 整體同步并行計(jì)算模型(BSP)
4.3.2 負(fù)載均衡并行策略
4.4 并發(fā)控制
4.5 本章總結(jié)
第五章 實(shí)驗(yàn)與分析
5.1 實(shí)驗(yàn)設(shè)計(jì)
5.1.1 實(shí)驗(yàn)內(nèi)容和文本集
5.1.2 實(shí)驗(yàn)?zāi)P秃铜h(huán)境配置
5.2 SPMP并行編程支持
5.3 并行策略對比
5.4 SPMP與 EMS對比實(shí)驗(yàn)
5.4.1 數(shù)據(jù)流實(shí)驗(yàn)
5.4.2 詞統(tǒng)計(jì)實(shí)驗(yàn)
5.5 本章總結(jié)
第六章 全文總結(jié)
6.1 SPMP模型設(shè)計(jì)工作總結(jié)
6.2 不足之處
6.3 未來展望
參考文獻(xiàn)
致謝
攻讀學(xué)位期間發(fā)表的學(xué)術(shù)論文
攻讀學(xué)位期間參與的項(xiàng)目
本文編號:3191375
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3191375.html
最近更新
教材專著