DEV Community

0 seconds of 15 minutes, 28 secondsVolume 90%
Press shift question mark to access a list of keyboard shortcuts
00:00
00:00
15:28
 
JavaScript Joel
JavaScript Joel

Posted on

14 3

CLUSTER MULTI THREADED NODEJS -- Run threads in parallel to speed up long processes

My JavaScript that creates thumbnails for hundreds of files is taking too long. So I have decided to speed things up with cluster.fork() that is built into Node.js. This will allow the workload to be spread out across my multi-core processor system.

8:53 should read: index % forks === cluster.worker.id - 1

To follow along, you can fork this repository. I have added a tag you can check out that will bring you right to the point this video was created.

git checkout https://github.com/joelnet/mojo-gallery.git
cd mojo-gallery
git checkout youtube-video-cluster

Be sure to subscribe for more videos like this!

Alt Text

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (5)

Collapse
 
omkaragrawal profile image
OMKAR AGRAWAL

I had a similar requirement, for image manipulation, I used workerpool library. It made task pretty easy. Initially I did achieve it with worker_threads , but the issue I faced was that I couldn't actually keep a track of threads, and would quickly run out of cpus, but workerpool managed it automatically.

Collapse
 
joelnet profile image
JavaScript Joel

Ahh! this is a cool library. I haven't seen this one before. Definitely helps with the managing of threads. I'll check this out next time I need something multi-threaded. Thanks for sharing!

Collapse
 
jorge_rockr profile image
Jorge Ramón

What about using Working Threads? Wouldn't be lighter and faster?

Collapse
 
joelnet profile image
JavaScript Joel

I think you are right. I am familiar with cluster because I use with with Express.js. And I think cluster might be the better use-case when using Express. But in this instance because there isn't much communication back and forth between processes, worker_threads would probably run faster. I think the difference would be small though.

Want to convert it and run some benchmarks? 😁

Collapse
 
mumingazi profile image
Mumin Gazi

5 at most

AWS Q Developer image

Your AI Code Assistant

Ask anything about your entire project, code and get answers and even architecture diagrams. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Start free in your IDE

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay