View on GitHub

Accel.js (Archive at May, 2017)

Accelerating your Node.js program by parallelizing computation with multicores and multinodes.

Final Report Proposal Checkpoint

Accel.js

Team members: Leiyu Zhao(leiyuz), Hailiang Xu(hailianx)

Completed Work

All the APIs specified in README have been accomplished. To specify, it includes remote functions that will be transferred to another process for running; broadcast scope to synchronize variables and make them accessible easily in remote code; homogeneous dependency to allow developer import a package just as local. Currently, all remote functions are dispensed to workers in FIFO, pull-based manner, or developer can explicitly assign the task to some worker, or issue an urgent task.

Besides, one thing under developing (but yet to release on document) is channel, like MPI. It works similar way to Golang’s channel and can be used to synchronize among workers.

As for the communication between worker and server, we did some experiments and it turns out socket is a great solution. Also, distributed workers can also adopt this method. We can easily migrate with less effort.

Future Schedule

Expectation

Up to now, we successfully complete our work before the first checkpoint. We will continue to finish the distributed worker part. As for the optional goal, it depends on the progress for the following week. If all goes well, we will try to embed C++ code to our package.

Presentation

Since our work is a package of node.js, we plan to show a demo to give a quick usage of our package. After that, we will show some charts of performance comparison for classic applications with computational intensive tasks using our package or not.

Concerns