Ajay
does multiprocessing always mean that the different processes run on different cores of the CPU?
Not really. There is a thing called system interruptions that enables your computer to execute multiple tasks at the same time. In fact it does not mean that microcommands getting executed at the same time - CPU is just switching between execution of microcommands for different processes.
This "switching" also wastes a lot of resources, so that is why, for example, node.js is multiple times faster than php in most cases