问题标签 [ipython-parallel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 也将用于 Python 3 内核的 IPython 3 更改为用于集群的 python2
我为 Python 3 安装了 IPython 3,以便与 Jupyterhub 一起使用。
现在我可以使用带有 Python2 内核的笔记本,因为我创建了/usr/local/share/jupyter/kernels/python2/kernel.json
和:
现在我也想使用 IPython.parallel,但是当我启动集群时,它会自动启动 Python 3 中的引擎,我该如何将其更改为 Python 2?
parallel-processing - 如何子类化 ipython 集群控制器和引擎以添加选项?
我有基本的 PBS Controller 和 EngineSet Launchers 与我的 PBS/torque 集群一起工作。但现在我想通过配置文件和/或命令行传递其他选项,以使用 {} 模板格式化程序语法在 batch_template 文件中呈现。
例如,我想运行:
然后在我的模板中:
我想我必须继承 PBSControllerLauncher 和 PBSEngineSetLauncher 类?文档中提到了这一点,但我找不到一个明确的例子来说明如何做到这一点。
简单地从这些类继承并添加pmem = Unicode(...)
为类属性不会使 pmem 在模板的上下文中可用write_batch_script
。
我可以访问配置选项并将其插入到上下文中,如下所示。这段代码有效,但很尴尬,似乎不是正确的方法:
非常感谢一个简单的例子,它为启动器子类添加了一个额外的选项。
python - IPython IPCluster不同节点的不同路径
我有两个要在其上运行 IPython.parallel 引擎的节点。其中一个是 linux 机器,另一个运行 MacOSX。不同机器上的目录名称略有不同,我找不到同时在两台机器上启动 SSHEngines 的方法。它分别对它们中的每一个起作用。
对于 MacOSX 机器,我将 engine_cmd 设置为
而对于我使用的 Linux 机器
如何在每个引擎的基础上定义 engine_cmd?
python - 在哪里以及如何为 IPython 集群任务启动可重用资源 (matlab.engine)
我决定创建一些测试台 Python 脚本,这些脚本将在各种环境下运行由多个开发人员开发的各种算法,这些算法都由 IPython 的并行分布式集群功能来运行。一个感兴趣的环境是 Matlab,但资源场景足够通用,可以从这个问题中抽象出规则。为了调用原型 Matlab 脚本,我决定使用Python 的 matlab 引擎. 这些引擎对象将在 Python 中实例化,但不是每个工作单元旋转一个,我想尽可能重用 Matlab 引擎,以避免创建和销毁那些强大的 Matlab 引擎对象的开销。我还处于阅读 IPython 并行文档的早期阶段,但我想我会先发制人地获得反馈,这样我就可以在遇到文档的特定部分时引起人们的注意。我什至可能会做出错误的假设,即我需要多个 Matlab 引擎来避免单个 Matlab 引擎实例的同步或线程安全问题。但是一般的问题是,如果我有一个可以并且应该被重用的资源,类似于隐藏在 Thread Local Storage 中的东西,这样当任务和作业接收下一个工作单元时,它们' 将重用该资源来完成他们的工作。一旦没有更多的工作单元,则可以在必要时关闭并销毁该资源。
ssh - 某些 SSH 引擎无法在 Parallel IPython 2.3.0 中启动
我正在尝试在专用网络中通过 ssh 建立一个小型 IPython 集群(这一切都曾与 IPython 0.10.0 [原文如此!]):4 个节点 alice、bob、carol、dan ,每个都有 4 个 CPU 内核。控制器在 carol 上运行,所有 PC 都安装了 IPython 2.3.0 的 Ubuntu 14.10。~/.ipython/profile_default 通过 NFS 在所有 PC 之间共享。由于一些内部原因,我无法使用 MPI。
现在,如果集群启动,我只能看到 4 个引擎。我已经增加了 SSHEngineSetLauncher.delay,但这并没有帮助
我试图追查这一点,最后只使用 carol(主机)并尝试通过 SSH 在本地启动四个引擎,但实际上只有一个引擎在运行。
我的 ipclusterconfig.py 看起来像
引擎.json:
作为参考,我添加了日志文件:=> ipcontroller.log
=> ipengine.log(看起来都一样,只有“使用 id x 完成注册”,其中引擎的 x 从 0 增加到 3):
python - 如何将 python 并行计算(ipython-parallel 或 multiprocessing)的结果输出到 pandas 数据帧?
简单的问题:我读过的所有教程都向您展示了如何使用 ipython.parallel 或多处理将并行计算的结果输出到列表(或最好是字典)。
您能否指出一个使用任一库将计算结果输出到共享熊猫数据框的简单示例?
http://gouthamanbalaraman.com/blog/distributed-processing-pandas.html - 本教程向您展示如何读取输入数据帧(下面的代码),但是我将如何将 4 个并行计算的结果输出到一个数据帧?
python - IPython Parallel就地修改numpy行
通过阅读IPython Parallel 的文档,它说缓冲区是在内核之间复制的。但是,它说通过使用track = True
可以就地编辑缓冲区。
以下示例对我不起作用,即使使用track = True
:
一直提示a
不可写的错误(assignment destination is read-only)。
我面临的问题是我有非常大的 3D 矩阵,我想修改它们。我的想法是使用类似map
的方法将单个 2D 切片发送到集群并就地修改它们。
有没有办法通过 IPython Parallel 实现这一目标?还是实际上不可能发送可写缓冲区,唯一的方法是从复制的缓冲区中收集结果?
如果这不可能,IPython Notebook 有没有办法从核心异步获取结果并使用回调函数更新它们?这是可以的东西的伪代码。IPython Parallel 中有类似的东西吗?:
上面代码的想法是有一个函数,它rows
从一个矩阵中返回修改后的函数,并与一个异步更新rows
输出缓冲区(在当前机器中)的回调并行。
换句话说,像这样使用 IPython Parallel 而不是 multiprocessing 的东西会起作用。
ipython-parallel - 再次来自 IPython 并行引擎的实时输出?
我有与此 stackoverflow 帖子相同的问题,并且我的 ipython (0.13.1) 似乎确实有“结果未准备好”错误,因此我使用了以下更改:
问题是 rc.spin 似乎对我的引擎做了一些坏事:它们开始疯狂地工作,挂起,然后我需要终止 ipcluster 命令来停止它们,因为停止脚本是不够的......任何想法?
python - IPython 引擎是独立进程吗?
从IPython 架构概述文档中,我们知道...
IPython 引擎是一个 Python 实例,它通过网络连接接收 Python 命令。
鉴于它是一个 Python 实例,这是否意味着这些引擎是独立的进程?我可以通过类似的命令手动加载一组引擎ipcluster start -n 4
。因此,创建引擎是否被认为是创建某个父进程的子进程,或者仅仅是启动一组依赖 IPC 通信完成工作的独立进程的一种方式?我还可以通过命令调用引擎,该ipengine
命令肯定是独立的,因为它直接输入到操作系统命令行中,与任何东西都没有任何关系。
作为背景,我试图深入研究通过客户端从 python 脚本操作的许多 IPython 引擎如何与在该脚本中启动的另一个进程交互。