MParallel is an open-source tool which can run your chosen processes on separate CPU cores, allowing them to execute in parallel.

What's the point? Take the Ping console command as an example. Normally you'd have to run multiple pings separately, one at a time, even though each command is mostly just time waiting for a response. A real waste of time.

MParallel can launch multiple ping commands all at once, each in its own thread. They work just as before, but are finished much more quickly, so there's far less waiting around.

Here's an example of how this might work.

MParallel.exe --count=3 ping.exe -n 16 : ping.exe -n 16 : ping.exe -n 16

The --count=3 tells the program to use 3 threads. Following that are the three Ping commands to run, all separated by ":" characters.

This approach has its problems. By default each Ping command displays its output in the same console window, for instance, which can quickly get confusing. You can avoid this by redirecting the output, or running each command in a separate console, but it's still a hassle.

You also need to choose your target process with care. If it makes heavy use of anything other than the CPU - downloading huge files, say, or hogging your hard drive - then running the process on multiple threads will only slow you down.

Still, MParallel can help you take full advantage of your CPU's power, and in the right situation that might save you a lot of time.


Running processes in parallel can be a smart way to ramp up performance, but there are complications.

If processes are I/O, rather than CPU-bound (they make heavy use of your hard drive, or network bandwidth) then the benefits will fall, and they'll slow your system overall.

It's also possible that some processes won't run properly in parallel, and any issues you do see might be difficult to diagnose.

If you're an old hand at Windows scripting, we'd say try the program anyway, it's a handy tool to have in your armoury, but be prepared to spend some time experimenting before you get the best results.