完整後設資料紀錄
DC 欄位語言
dc.contributor.author蔡志豪zh_TW
dc.contributor.author游逸平zh_TW
dc.contributor.authorTsai, Chih-Haoen_US
dc.contributor.authorYou, Yi-Pingen_US
dc.date.accessioned2018-01-24T07:39:08Z-
dc.date.available2018-01-24T07:39:08Z-
dc.date.issued2017en_US
dc.identifier.urihttp://etd.lib.nctu.edu.tw/cdrfb3/record/nctu/#GT070356040en_US
dc.identifier.urihttp://hdl.handle.net/11536/140343-
dc.description.abstractJavaScript 是一個有彈性、輕量的動態語言,它被廣泛的應用在現在的網頁應用程式,而且並不僅僅是用來輔助操作使用者介面,還被用來處理高密集運算的工作。然而雖然已經有很多最佳化技術包含即時編譯被套用在 JavaScript 引擎上,但在平行運算的部分還是落後其它語言許多。Web Worker 是一個方法可以有效利用多核心CPU,但 Web Worker 之間無法分享同一個記憶體物件,這導致共享記憶體的平行運算變得困難。 在本篇論文中,我們提出了一個 JavaScript 平行程式框架,可以使用編譯器指令碼來平行化 JavaScript 程式。我們實作了一個編譯器可以將標註指令碼的 JavaScript 程式轉換成可以運行在當今瀏覽器,以 Web Worker 為基礎的 JavaScript 程式。並且多虧了 SharedArrayBuffer,我們也提出了一個方法可以將 JavaScript 物件轉換成在 Web Worker 之間共享的物件。我們的實驗結果顯示,我們的框架可以有效加速已經存在的 JavaScript 程式。zh_TW
dc.description.abstractJavaScript is a dynamic language that is designed to be flexible and light-weight. It is widely used in modern web applications not only for user interface manipulation but also computation-intensive tasks. Many optimization techniques, such as just-in-time compilation, were applied to JavaScript engines for better performance. However, JavaScript concurrency is less addressed in the literature. A standard way to utilize multi-core CPUs in JavaScript is using Web Worker, which is a message-passing-based API for spawning background scripts to achieve parallelism. Nevertheless, message passing can be more difficult to program than shared memory. In this paper, we present an API, called $JSMP$, which involves a set of compiler directives and runtime routines for JavaScript with compiler directives for shared memory multiprocessing programming in JavaScript. We implemented a compiler that translates directive-annotated JavaScript programs to Web Worker-based JavaScript programs, which can be executed in most modern web browsers and a runtime library for running JSMP routines. Our evaluation shown that the proposed framework enabled parallel processing of JavaScript programs on multi-core CPU architectures. Our framework improved the performance of JavaScript programs with an average of 2.8x (geometric mean) speedup on a quad-core processor.en_US
dc.language.isoen_USen_US
dc.subjectJavaScriptzh_TW
dc.subject編譯器指令碼zh_TW
dc.subject平行程式設計zh_TW
dc.subjectJavaScripten_US
dc.subjectCompiler Directivesen_US
dc.subjectParallel Programmingen_US
dc.title設計編譯器指令碼用以平行化 JavaScript 程式zh_TW
dc.titleJSMP: Enabling Parallel Programming in JavaScript with Directivesen_US
dc.typeThesisen_US
dc.contributor.department資訊科學與工程研究所zh_TW
顯示於類別:畢業論文