Are IPython independent processes?

From the IPython Architecture Overview, we know that ...

The IPython engine is a Python instance that accepts Python commands over a network connection.

Given that this is an instance of Python, does this mean that these engines are standalone processes? I can manually load a set of engines using a command like ipcluster start -n 4 . Thus, is creating engines considered as creating the child processes of a parent process, or just a means to launch a set of independent processes that rely on IPC communications to do their job? I can also call the engine using the ipengine , which is certainly standalone, as it is entered directly into the OS command line without any relation to anything really.

As a background, I am trying to talk about how many IPython engines controlled by a client from a python script will interact with another process started in this script.

0
python process ipython ipython-parallel child-process
May 28 '15 at
source share
1 answer

Here's a simple way to learn about processes, print a list of current processes before I turn off the controller and motors, and then print a list after they start. There wmic team to complete the task ...

 C:\>wmic process get description,executablepath 

Interestingly, the controller receives 5 python processes, and each engine creates another python process. Therefore, from this study, I also learned that the engine is its own process, as well as the controller ...

 C:\>wmic process get description,executablepath | findstr ipengine ipengine.exe C:\Python34\Scripts\ipengine.exe ipengine.exe C:\Python34\Scripts\ipengine.exe C:\>wmic process get description,executablepath | findstr ipcontroller ipcontroller.exe C:\Python34\Scripts\ipcontroller.exe 

In appearance, they all seem autonomous, although I do not think that the list of running OS processes contains any information about how the processes are related to the parent / child relationship. It can only be a formalism of a developer who has no idea that is tracked in the OS, but I don’t know about these types, to know in any case. Python instances present from ipcontroller and ipengine

Here is definitely a quote from MinRK, which directly addresses this question:

"Each engine is a separate process ... Each core is a separate process and can be on any machine ... It looks like you started an IPython session on the terminal, and each engine is a separate IPython session. If you do a = 5 in this, a = 10 in this, this guy has 10, this guy has 5. "

Here is another final validation based on the big SE Hot Net Question on ServerFault, which mentioned the use of ProcessExplorer, which actually tracks parent child processes ...

Process Explorer is a Sysinternals tool supported by Microsoft. This can display the command line of the process in the process of the properties dialog, as well as the parent who started it, although the name of this process can no longer be accessed. --Corrodias

If I started more engines in another command window, then the ProcessExplorer section simply duplicates what you see in the screenshot. Separate ipcontroller and ipengine triggering of processes

And just for the sake of completeness, this is what the ipcluster start --n=5 command looks like ... IP Cluster triggering of Processes

+1
May 28 '15 at
source share



All Articles