并行JavaScript机器

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

该文章介绍了一种名为“对象流模型”的新编程模型,可在多核CPU系统中简单自动地实现负载平衡。该模型适用于大规模并行计算领域,如天气预测、核物理和搜索引擎。文章还介绍了Parallel JavaScript Machine (PJM)作为实现该模型的迷你操作系统,以及使用NodeJS作为前端Web服务器和OPUs的服务器。PJM通过特殊指令简化并行编程,并通过主服务器将计算结果打印到Web客户端的控制台上。整个系统类似于一个迷你操作系统,通过协作式多任务处理来执行JavaScript任务。

🔎

延伸解读

对象流模型的核心优势

文章提出的对象流模型旨在简化多核CPU上的并行编程,其优势包括自动负载平衡、无需任务间同步、系统级互锁极少,并支持OPU的动态添加或移除。这些特性使得该模型适合天气预测、核物理等大规模并行计算领域,降低了编程和维护的复杂度。

PJM的架构与执行机制

PJM作为一个迷你操作系统,使用NodeJS实现,既作为前端Web服务器,也作为OPU的服务器。OPU是小型JavaScript网络客户端,可动态连接,每个OPU分配到一个CPU,通过轮询调度和PM2进程管理器实现协作式多任务。计算结果通过主服务器管道传输到Web控制台。

技术限制与兼容性

PJM要求所有并行程序使用ES5 JavaScript,不支持ES6+的类、箭头函数、let/const和async/await等特性,因为这些特性难以并行化。PJM运行在NodeJS V8.2.1上,且目前不兼容C二进制程序,但未来可能考虑。这些限制是为了确保并行执行的可行性和性能。

❓

Q&A

什么是对象流模型,它的主要优点是什么?

对象流模型是一种新编程模型,旨在多核CPU系统中实现简单自动的负载平衡。其主要优点包括简单的编程过程、自然的OPU集成与迁移、自动负载平衡、无需任务部分之间的同步,以及系统级别的互锁很少或没有。

Parallel JavaScript Machine (PJM) 是什么?

PJM是一个控制多个JavaScript任务的迷你操作系统,旨在简化并行编程,通过特殊指令来实现任务的协作式多任务处理。

PJM如何实现负载平衡?

PJM通过自动负载平衡机制,动态管理连接的对象处理单元(OPUs),确保计算任务在多个CPU之间均匀分配。

使用PJM进行并行编程时,有哪些JavaScript版本的限制?

所有在PJM中运行的并行程序必须使用ES5 JavaScript,不支持ES6+扩展,以确保并行性。

OPUs在PJM中扮演什么角色?

OPUs是小型JavaScript网络客户端,负责连接到主并行机器服务器并执行并行代码,数量可以根据需要增加。

PJM的控制和任务运行是如何进行的?

PJM的控制和任务运行通过Web控制台进行,所有计算在PJM服务器和OPUs上完成,计算结果通过主服务器打印到Web客户端控制台。

🏷️

标签

➡️

继续阅读