When I run the command
jupyter notebook
from the bash shell this starts a jupyter notebook server on localhost. Every time I open a new notebook and start executing code, is that a new process on a separate core or a new thread on the same core? Suppose I were to run N different independent notebooks which are CPU heavy, on a machine with M cores
- If they all run from the same core (same process) with different threads then are the rest of the cores are basically idle?
- If they run from different cores, then does that mean I can only run M total notebooks at the same time?
- Or perhaps its a mix of both: the ipython kernel takes care of launching new threads/processes that are beyond my manual control. In which case only M total notebooks would be able actually execute concurrently at the interpreter level, but I could open as many notebooks as my memory would allow.