title: Parallelizing tasks in Node.js
body: <p>I have some tasks I want to do in JS that are resource intensive. For this question, lets assume they are some heavy calculations, rather then system access. Now I want to run tasks A, B and C at the same time, and executing some function D when this is done.</p>
  
  <p>The <a href="https://github.com/caolan/async">async library</a> provides a nice scaffolding for this:</p>
  
  <pre><code>async.parallel([A, B, C], D);
  </code></pre>
  
  <p>If what I am doing is just calculations, then this will still run synchronously (unless the library is putting the tasks on different threads itself, which I expect is not the case). How do I make this be actually parallel? What is the thing done typically by async code to not block the caller (when working with NodeJS)? Is it starting a <a href="http://nodejs.org/api/child_process.html">child process</a>?</p>