Show More
@@ -15,9 +15,12 b' is somewhat limited for extended interactive use.' | |||||
15 |
|
15 | |||
16 | The goal of IPython is to create a comprehensive environment for |
|
16 | The goal of IPython is to create a comprehensive environment for | |
17 | interactive and exploratory computing. To support this goal, IPython |
|
17 | interactive and exploratory computing. To support this goal, IPython | |
18 |
has t |
|
18 | has three main components: | |
19 |
|
19 | |||
20 | * An enhanced interactive Python shell. |
|
20 | * An enhanced interactive Python shell. | |
|
21 | * A decoupled two-process communication model, which allows for multiple | |||
|
22 | clients to connect to a computation kernel, most notably the web-based | |||
|
23 | :ref:`notebook <htmlnotebook>` | |||
21 | * An architecture for interactive parallel computing. |
|
24 | * An architecture for interactive parallel computing. | |
22 |
|
25 | |||
23 | All of IPython is open source (released under the revised BSD license). |
|
26 | All of IPython is open source (released under the revised BSD license). | |
@@ -172,11 +175,42 b' Main features of the interactive shell' | |||||
172 | prompts and whitespace) and uses doctest-compatible prompts and |
|
175 | prompts and whitespace) and uses doctest-compatible prompts and | |
173 | output, so you can use IPython sessions as doctest code. |
|
176 | output, so you can use IPython sessions as doctest code. | |
174 |
|
177 | |||
|
178 | Decoupled two-process model | |||
|
179 | ============================== | |||
|
180 | ||||
|
181 | IPython has abstracted and extended the notion of a traditional | |||
|
182 | *Read-Evaluate-Print Loop* (REPL) environment by decoupling the *evaluation* | |||
|
183 | into its own process. We call this process a kernel: it receives execution | |||
|
184 | instructions from clients and communicates the results back to them. | |||
|
185 | ||||
|
186 | This decoupling allows us to have several clients connected to the same | |||
|
187 | kernel, and even allows clients and kernels to live on different machines. | |||
|
188 | With the exclusion of the traditional single process terminal-based IPython | |||
|
189 | (what you start if you run ``ipython`` without any subcommands), all | |||
|
190 | other IPython machinery uses this two-process model. This includes ``ipython | |||
|
191 | console``, ``ipython qtconsole``, and ``ipython notebook``. | |||
|
192 | ||||
|
193 | As an example, this means that when you start ``ipython qtconsole``, you're | |||
|
194 | really starting two processes, a kernel and a Qt-based client can send | |||
|
195 | commands to and receive results from that kernel. If there is already a kernel | |||
|
196 | running that you want to connect to, you can pass the ``--existing`` flag | |||
|
197 | which will skip initiating a new kernel and connect to the most recent kernel, | |||
|
198 | instead. To connect to a specific kernel once you have several kernels | |||
|
199 | running, use the ``%connect_info`` magic to get the unique connection file, | |||
|
200 | which will be something like ``--existing kernel-19732.json`` but with | |||
|
201 | different numbers which correspond to the Process ID of the kernel. | |||
|
202 | ||||
|
203 | You can read more about using :ref:`ipython qtconsole <qtconsole>`, and | |||
|
204 | :ref:`ipython notebook <htmlnotebook>`. There is also a :ref:`message spec | |||
|
205 | <messaging>` which documents the protocol for communication between kernels | |||
|
206 | and clients. | |||
|
207 | ||||
|
208 | ||||
175 | Interactive parallel computing |
|
209 | Interactive parallel computing | |
176 | ============================== |
|
210 | ============================== | |
177 |
|
211 | |||
178 | Increasingly, parallel computer hardware, such as multicore CPUs, clusters and |
|
212 | Increasingly, parallel computer hardware, such as multicore CPUs, clusters and | |
179 |
supercomputers, is becoming ubiquitous. Over the last |
|
213 | supercomputers, is becoming ubiquitous. Over the last 8 years, we have | |
180 | developed an architecture within IPython that allows such hardware to be used |
|
214 | developed an architecture within IPython that allows such hardware to be used | |
181 | quickly and easily from Python. Moreover, this architecture is designed to |
|
215 | quickly and easily from Python. Moreover, this architecture is designed to | |
182 | support interactive and collaborative parallel computing. |
|
216 | support interactive and collaborative parallel computing. |
General Comments 0
You need to be logged in to leave comments.
Login now