问题标签 [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.
python - 在python中并行写入列表
我有多个并行进程写入 python 中的一个列表。我的代码是:
我不喜欢这种方法,因为它有:
- 一个整体的全局变量-> `total_results 函数有一个局部变量的方法是什么?
- 我检查列表何时返回的方式似乎有些笨拙,标准方式是什么?
python - 如何限制特定/所需值的并行 python 代码
我正在使用并行 Python 来运行下面的代码。任何人都可以更正代码吗?这应该为输入列表中超过 20 的值打印“SORRY”。这仍然适用于超过 20 的值。
python - 使用并行 python 和包中的方法获取“ImportError: No module named”
我正在尝试使用并行 python 来进行一些分布式基准测试(本质上,在来自中央服务器的一组机器上协调和运行一些代码)。在我将功能移动到单独的包之前,我的代码运行良好。从那以后,我不断得到ImportError: No module named some.module.pp_test
。
我的问题实际上是双重的:有没有人遇到过这个问题pp
,如果是,如何解决?我尝试使用dill
(import dill
),但没有帮助。此外,parallelpython 是否有一个很好的替代品,不需要任何额外的基础设施?
我得到的确切错误是:
代码的结构是这样的:
test.py
实现为:
虽然pp_test.py
是:
python - 全局变量、类和并行 Python
我已经阅读了几个小时关于 globals=globals() 如何在 Parallel Python 上工作的内容,但我仍然有点困惑,也许你可以帮助我......我正在编写一个基本上可以概括为的代码:
输出是“未定义全局名称'Foo'”,正如我之前遇到的其他一些人......我知道 globals 参数用于以简化的方式将函数和类传输到服务器,所以我希望它已经通过了 Foo() 类,因为它在执行 job_server.submit 指令之前位于全局变量中(正如您可以通过取消对 print globals() 指令的注释看到的那样)。
我应该知道的关于 PP 的什么遗漏?有没有办法让这段代码在没有太多更改的情况下运行?
感谢您阅读我,我希望你们中的一些人了解它是如何工作的!
(备注:我不想在并行化作业之外创建 Foo 的实例,仅仅是因为初始化一个实例会触发整个程序,它在init (self) 函数内......坏主意,我知道......)
python - 并行 Python:4 个线程与 2 个线程具有相同的速度
我正在使用Parallel Python在多个内核上执行计算繁重的代码。我有一个i7-4600M处理器,它有 2 个内核和 4 个线程。
有趣的是,如果我使用 2 或 4 个线程,计算时间几乎相同。我写了一个小示例代码,演示了这种现象。
这是运行程序和cpu使用率的简短视频:https ://www.screenr.com/1ULN当我使用2个线程时,cpu有50%的使用率,如果我使用4个线程,它使用100%。但它只是稍微快一点。使用 2 个线程,我获得了 1.8 倍的加速,使用 3 个线程获得了 1.9 倍的加速,使用 4 个线程获得了 2 倍的加速。
如果代码太快,请使用n = 10
or n = 11
。但要小心,复杂度是6^n
. 所以n = 10
将需要 6 倍的时间n = 9
。
python - 在并行python(pp)中检索结果太慢了
为了在我的 4 核笔记本电脑上执行串行并行处理,我使用了并行 python (pp) 包。这是用于完成这项工作的脚本的快速摘要。在初始化并行 python 对象后,我将我的任务分成 4 个作业并将它们检索到一个列表中。
我注意到 for 循环的性能相当快(几秒钟内),但检索过程(results = [job() for job in jobs])花费的时间太长(大约 10 分钟)。
有人可以解释为什么会这样并推荐一种解决此问题的方法吗?谢谢你。
python - 并行 Python:限制每个核心的进程数
我正在使用具有两个内核的计算机中的并行 python 中的下一个代码(这只是完整代码的一部分)
该local_sched
函数太大,无法在此处指定,但它的作用是使用 gurobipy 解决优化问题。当我指定 2 个核心 ( )时,每个核心number_core = 2
只能运行 12 个进程,因此即使有 100 个进程,我也只能运行 24 个进程;之后,python 停止工作,即使在 windows 任务管理器中说 python 仍在运行。发生这种情况时,我必须使用 de windows 任务管理器停止进程才能再次使用 de 命令提示符。如果我指定 3 个核心,那么我可以运行 100 个进程中的 36 个,依此类推。据我所知,这不应该发生。有谁知道为什么会这样?
python - 如何在python中实现单程序多数据(spmd)
我阅读了多处理文档。在python中发现可以将任务分配给不同的cpu核心。我喜欢并行运行以下代码(作为开始)。
现在我得到输出为 1 2 3,然后是 1 ....6。但我需要像 1 1 2 2 一样工作,即我想并行运行 proc1 和 proc2(不是一个接一个)。
python - 在并行python中的进程之间共享信号量对象时出现问题
当与并行 python 一起使用时,我在将任何信号量对象或将事件、管道、队列等对象同步到子进程时遇到问题,当我将队列传递给子进程时出现以下错误。'通过继承' % type(self).__name__ RuntimeError: 队列对象只能通过继承在进程之间共享
当我使用多处理库时没有看到任何问题