Show More
@@ -15,9 +15,12 b' is somewhat limited for extended interactive use.' | |||
|
15 | 15 | |
|
16 | 16 | The goal of IPython is to create a comprehensive environment for |
|
17 | 17 | interactive and exploratory computing. To support this goal, IPython |
|
18 |
has t |
|
|
18 | has three main components: | |
|
19 | 19 | |
|
20 | 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 | 24 | * An architecture for interactive parallel computing. |
|
22 | 25 | |
|
23 | 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 | 175 | prompts and whitespace) and uses doctest-compatible prompts and |
|
173 | 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 | 209 | Interactive parallel computing |
|
176 | 210 | ============================== |
|
177 | 211 | |
|
178 | 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 | 214 | developed an architecture within IPython that allows such hardware to be used |
|
181 | 215 | quickly and easily from Python. Moreover, this architecture is designed to |
|
182 | 216 | support interactive and collaborative parallel computing. |
General Comments 0
You need to be logged in to leave comments.
Login now