The "parallel" in the asynchronous documentation does not refer to the "parallel" in terms of concurrency (for example, to several processes or threads executed simultaneously), but "parallel" in terms of other actions independent of each step (the opposite operation will be eachSeries , where each step It starts only after the previous one is completed).
The parallel version makes sense only if the steps perform some kind of input-output, which (due to the asynchronous nature of Node) can be executed in parallel to each other: if one step has to wait for the input-output, other steps can happily continue to send / receive data.
If the steps are mostly cpu related (i.e. doing a lot of computation), this will not give you any better performance, because, as you say, Node runs the interpreter in a single thread, and this is not something that async changing.
source share