Parallelized Lambda, a wrapper to help run lambda/anonymous function in parallel easily.
PambdaJS is to orchestrate different child process to finish one heavy iteration work.
- make multi process programming easily
- gain better performance through empowering multi core CPU
Start to use PambdaJS
import pambda from 'pambdajs';
const p = await pambda.init(5);
data = [1,2,3];
const heavyWork = (x) => {
return x+x;
}
// original single process way
const singleProcess = () => {
data.map(heavyWork);
}
// PambdaJS multi process way
const pambdaProcess = async () => {
await p.map(heavyWork, data);
}
Run your own anonymous functions in Parallel.
- map
- filter
- reduce
The lambda function itself has to be a pure function, and it has to use only node build-in packages.
for example:
// good
const heavyWork = (x) => {
return x+x;
}
// bad
const sumItSelf = (x) => {
return x + x;
}
const heavyWork = (x) => {
return sumItSelf(x)
}
- PambdaJS can save up to 55% of processing time. (Diagram โ)
-
The best case to repeat summing 10k number 100k times, is to spawn 5 child process, and it saves more than half of time than single process.
-
Besides, for simple work, multi process does not help at all. So make sure usig PambdaJS for heavy work only. (more diagrams)
- Why not use child process directly?
Yeah, why not. child_process is the native module of Node, if you seek better flexibility, use child_process. However, if you want to make your life easier, trust me use PambdaJS, you do not need to worry about the message between child and parent process anymore.
- Does it run on browser as well?
No, PambdaJS is a tool for Node environment, not for browser, because browser does not support multi-process, but you can try web worker which is multi-thread solution. or Gpu.js which is using GPU instead of CPU for getting better performance.
- What is Lambda Function
- Other solutions for better performance
- Child Process
- GPU.js
- Web Worker for multi threading. We all love MDN!!!
- Based on Web Worker/ Multi Thread
- Relative Repos
- PambdaJS Playground - the place to use pambdajs to run some simple sample work
- PambdaJS Performance Analyse - using Chart.js to generate the diagrams
- Code of conduct
- Contributing