问题标签 [parallel-python]

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.

0 投票
1 回答
262 浏览

python - 如何防止并行 python 退出并出现“OSError:[Errno 35] 资源暂时不可用”?

语境

我正在尝试运行 1000 次模拟,这些模拟涉及(1)损坏道路网络,然后(2)测量由于损坏造成的交通延误。步骤 (1) 和 (2) 都涉及创建多个“地图”。在步骤 (1) 中,我创建了 30 张损坏地图。在步骤 (2) 中,我测量了这 30 张损坏地图中的每一张的交通延误。然后该函数返回 30 个损坏地图的平均交通延迟,并继续运行下一个模拟。设置的伪代码如下所示:

由于地图彼此独立,因此我在每一步都使用了并行 python 包。

问题——错误信息

该代码在第 72 次模拟(共 1000 次)前后两次引发以下错误,并在步骤 (1) 期间停止运行,这涉及损坏桥梁。

系统和版本

我正在使用并行 python (pp) 1.6.5 在 PyCharm 虚拟环境中运行 Python 2.7。我的电脑运行 Mac OS High Sierra 10.13.3,内存为 8 GB 1867 MHz DDR3。

尝试修复

我认为问题出在并行 python 包或我是如何使用它的,但是我不知道如何解决这个问题。它被认为是并行 python 页面上的一个错误——wkerzendorf 在那里发布:

问:我在使用使用 >os.system 调用的作业时收到套接字错误/内存错误

答:我找到的修复方法是使用 subprocess.Popen 并将 >stdout,stderr 弹出到 subprocess.PIPE 中。这是一个示例:subprocess.Popen(['ls ->rtl'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)。那>为我修复了错误。

但是,我完全不确定在哪里进行此修改。

我还读到这个问题可能出在我的系统限制上,根据机器中的这篇 Ghost 博客文章。但是,当我尝试重新配置最大文件数和最大用户进程时,我在终端中收到以下消息:

使用并行 python 的代码

我正在使用的代码相当复杂(需要运行多个输入文件),所以恐怕我无法在这里提供一个最小的、可重现的示例。您可以在此链接下载并运行代码的一个版本。

下面我包含了步骤 (1) 的代码,其中我使用并行 python 创建 30 个损坏图。工人人数为4人。

附加功能

compute_damage 函数如下所示。

damage_bridges 函数如下所示。

0 投票
0 回答
87 浏览

python - 并行 Python 无法正确接受参数

我刚刚开始在 Python3 中使用 Parallel Python (pp),目前在提交对象函数的参数时遇到了麻烦。

有没有可能这个参数不能是一个列表?我找不到和我有相同错误信息的人,所以我很困惑。

0 投票
1 回答
89 浏览

python-2.7 - 并行python没有发现工作节点

我正在尝试实现一个基本的 pp 示例,如下所示(SCRIPT1)。

环境详细信息
操作系统:windows10
python版本:2.7(在机器1和机器2上)机器1
IP:192.168.1.4机器2
IP:192.168.56.1

到现在为止的步骤

  1. machine1 和 machine2 使用 wifi 连接在同一个网络中
  2. SCRIPT1放置在 machine1 上(machine1 是作业服务器)
  3. 在 machine2(工作节点)中安装 pp 并使用 machine2(端口 60000)启动服务器

    /li>
  4. 在 machine1 上触发SCRIPT1,machine 1 输出如下图

但是在第 4 步的输出预计也会检测到机器 2 并将输出显示为

并行计算的新手,我该如何调试?对此表示赞赏。

0 投票
1 回答
171 浏览

python - 在 Python 中并行打开多个 Websocket

我在 Python 中使用 websocket 库,我对此并不陌生。

我想为 websockets 创建多个不同的连接。这通过我的自定义 WebsocketProcess 类发生,该类打开连接、接收事件、保留记录 ID,然后调用 API 来获取此特定记录的信息。

我无法并行运行它们。

请看下面(忽略大量进口)

主要的:

WebsocketProcess 类如下:

从上面可以看出,我已经将 main 改为异步来并行运行 websocket_process 类的多个实例。它打开到第一个 websocket 的连接,并在那里停止等待事件,而不继续打开第二个 websocket。

我尝试使 WebsocketProcess 类完全异步,但我收到一个错误,指出从未等待协程“运行”(在 connect_websocket 方法中)。

你们对如何并行运行 websocket_process 类的多个实例有什么建议吗?

谢谢!