朱庇特角膜
metakernel的Python项目详细描述
python中的一个jupyter内核基类,包含核心的魔术函数(包括帮助、命令和文件路径完成、并行和分布式处理、下载等等)。
请参阅jupyter在wrapper kernels上的文档。
可以在新内核包的magics子包下安装其他magics。
功能
- 所有内核的基本行和单元格魔术集。
- 访问python解释器的python魔术。
- 并行运行内核。
- 炮弹魔法。
- 课堂管理魔法。
- magics和文件路径的制表符完成。
- 魔法使用帮助?或shift+tab。
- 设置默认绘图行为的绘图魔术
基于元核的核
- Matlab内核,https://github.com/Calysto/matlab_kernel
- 八度内核,https://github.com/Calysto/octave_kernel
- 卡利斯托方案,https://github.com/Calysto/calysto_scheme
- Calysto_处理,https://github.com/Calysto/calysto_processing
- Java9内核,https://github.com/Bachmann1234/java9_kernel
- xonsh_内核,https://github.com/Calysto/xonsh_kernel
- 花萼
- gnuplot_内核,https://github.com/has2k1/gnuplot_kernel
- spylon_内核,https://github.com/mariusvniekerk/spylon-kernel
- 沃尔夫拉姆核,https://github.com/mmatera/iwolfram
- SAS内核,https://github.com/palmer0914/sas_kernel
- pysysh_内核,https://github.com/Jaesin/psysh_kernel
- 卡利斯托巴什,https://github.com/Calysto/calysto_bash
…还有很多其他的。
安装
您可以通过pip安装元内核:
从conda forge通道安装元内核可以通过在您的通道中添加conda forge通道来实现:
一旦启用了conda forge通道,就可以使用以下命令安装元内核:
您可以使用以下命令列出平台上可用的所有版本的元内核。
在IPython中使用元内核魔术
尽管元内核是用于构建新内核的系统,但您可以在ipython内核中使用magics的子集。
frommetakernelimportregister_ipython_magicsregister_ipython_magics()
将以下内容放入(或系统范围内的)ipython_config.py文件中:
# /etc/ipython/ipython_config.pyc=get_config()startup=['from metakernel import register_ipython_magics','register_ipython_magics()',]c.InteractiveShellApp.exec_lines=startup
并行使用元内核语言
要并行使用元内核语言,请执行以下操作:
- 确保安装了python模块ipyparallel。在外壳中,键入:
pip install ipyparallel
- 要在笔记本中启用扩展,请在shell中键入:
ipcluster nbextension enable
- 要在本地IP地址上启动具有10个节点的群集,请在shell中键入:
ipcluster start --n=10 --ip=192.168.1.108
- 从主机内核MODULE和CLASSNAME(可以是任何元内核)初始化代码以使用笔记本中的10个节点:
%parallel MODULE CLASSNAME
例如:
%parallel calysto_scheme CalystoScheme
- 并行运行代码,在笔记本内,键入:
并行执行一行:
%px (+ 11)
或并行执行整个单元格:
%%px (* cluster_rank cluster_rank)
结果以python列表(scheme vector)的形式返回,cluster_rank顺序。(这将是未来的JSON表示)
因此,上述操作将产生以下结果:
#10(0 1 4 9 16 25 36 49 64 81)
您可以通过访问变量_(单下划线)或使用--set_variable VARIABLE标志(如下所示)在宿主内核中的任何并行magics(%px、%%px或%pmap)中获取结果:
%%px --set_variable results (* cluster_rank cluster_rank)
然后,在下一个单元格中,您可以访问results。
注意,您可以使用变量cluster_rank对问题的部分进行分区,以便每个节点都在处理不同的内容。
在上面的示例中,还可以使用-e计算宿主内核中的代码。注意,cluster_rank没有在主机上定义,这假设主机内核与并行机相同。
配置
Metakernel子类可以由用户配置。这个 配置文件名由子类的app_name属性确定。 例如,在Octave内核中,它是octave_kernel。内核用户可以将octave_kernel_config.py文件添加到 jupyter配置路径基类MetaKernel提供plot_settings作为可配置特征。子类可以定义它们希望生成的其他特征 可配置。
例如:
cat ~/.jupyter/octave_kernel_config.py # use Qt as the default backend for plots c.OctaveKernel.plot_settings = dict(backend='qt')