问题标签 [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 - 将 Parallel Python 代码迁移到云端
在听说科学计算项目(碰巧是这里描述的随机牵引成像方法)后,我目前正在为一名调查员竞选需要 4 个月的时间在我们的 50 节点集群上,调查员要求我检查其他选项。该项目目前正在使用并行 python 将 4d 数组的块分配给不同的集群节点,并将处理后的块重新组合在一起。
我目前正在处理的工作可能过于粗粒度,(5 秒到 10 分钟,我不得不增加并行 python 中的超时默认值),我估计我可以通过重写它来加快 2-4 倍的过程为了更好地利用资源(拆分和重新组合数据花费的时间太长,也应该并行化)。大部分工作由 numpy 数组完成。
假设 2-4 次是不够的,我决定从我们的本地硬件中获取代码。对于像这样的高吞吐量计算,我的商业选择是什么?我需要如何修改代码?
parallel-python - 将 ppserver 与并行 python 一起使用
我正在使用并行 python 在 Modelica 中进行蒙特卡罗模拟。如果我在具有 8 个 ncpus 的单台计算机上工作,一切都会完美运行,但是,我无法将 ppservers 添加到所需的 job_server。
我在要添加的计算机上启动 ppserver.py,但在我的工作计算机上使用 ip 地址,但计算机无法使用服务器,仅在我自己的计算机上使用 cpus。由于 ppserver.py 几乎没有提供任何信息,有人可以给我一些提示以使其付诸实践吗?
R
erlang - Python 用于新的分布式计算项目?
我需要编写一个计算密集型模拟程序。我尝试编写该程序的多线程版本,但它花费了太多时间。现在我计划扩展到多个节点(可能通过 Amazon EC2 节点)。
我已经熟悉 Python。如果我关心速度,Python配备一些并行模块是一个可行的选择,还是我最好选择其他一些框架/语言,比如 Erlang?
你甚至可以用 Erlang 写一个模拟程序吗?
该项目更多是关于划分计算而不是划分数据集,所以我没有考虑基于map reduce的框架
python - 在 ParallelPython 中,对象 (object.func()) 的方法无法操作对象 (object.value) 的变量
使用parallelpython,我正在尝试将旧的串行代码转换为并行代码,这在很大程度上依赖于具有更改该对象变量的方法的对象。一个剥离的例子,我为了简单而省略了语法:
我将此方法称为:代码:
这项工作已完成,并且我知道发生了长时间的计算,因此我推测我的代码已运行。
问题是,我是 parallelpython 的新手,我期待在调用该方法时,变量 net2.equilibria 会被相应地写入,我会得到一个修改后的对象 (net2) 。这就是我的代码的工作方式,独立对象具有作用于对象变量的方法。
相反,尽管计算是显而易见的,并且时间合理,但变量 net2.equilibria 保持不变。好像 PP 只接受函数和对象,在别处计算它,但从不返回对象,所以我只剩下旧的了。
我想念什么?
提前致谢。
python - ppmap/parallel python 中是否存在隐藏的可能死锁?
我在使用 map 的并行版本(ppmap包装器,由 Kirk Strauser 实现)时遇到了一些麻烦。
我试图并行运行的函数对大量字符串(蛋白质序列)运行简单的正则表达式搜索,这些字符串是使用 BioPython 的 SeqIO 从文件系统中解析的。每个函数调用都使用自己的文件。
如果我使用法线贴图运行该函数,一切都会按预期工作。然而,当使用 ppmap 时,一些运行简单的冻结,没有 CPU 使用,主程序甚至没有对 KeyboardInterrupt 做出反应。此外,当我查看正在运行的进程时,工作人员仍然在那里(但不再使用任何 CPU)。
例如
此外,工作人员似乎没有冻结任何特定的数据输入 - 如果我手动终止进程并重新运行执行,它会在不同的点停止。(所以我暂时采取了保留已完成条目的列表并多次重新启动程序)。
有什么办法可以看出问题出在哪里?
我正在运行的代码示例:
如果我使用简单的地图而不是 ppmap,一切正常:
python - 并行 python 工作者优雅失败
在使用 pp 并行化一个非常复杂的机器学习问题时,我发现自己不得不相当广泛地依赖质量参差不齐的第三方库。特别是在不同的数据集上密集使用时,会出现大量的边缘情况崩溃。我最终将不得不解决这些问题,但在短期内,尝试修复我和他们的错误太多了——而这个库确实是最好的。
我的问题是:是否有一种既定模式可用于允许 pp 中本地工作进程正常失败?
我看到的选项是:
- 不要使用任何本地工作进程,只使用远程工作人员 - 然后依赖套接字超时。
- Shell 都运行到一个辅助 python 脚本,我将它包装并作为一个单独的进程执行,然后只需使用退出代码来检查崩溃。这可能还必须与超时结合起来以防止非段错误故障情况。
我在这里错过了什么吗?我一直在查看 pp.py ,据我所知,工作进程没有退出检测。
python - 在 Parallel Python 中使用回调更新数据库
我正在尝试对使用 SQLAlchemy 访问的 SQlite 数据库中的大约 200,000 个条目进行一些文本处理。我想将它并行化(我正在查看 Parallel Python),但我不确定该怎么做。
我想在每次处理条目时提交会话,这样如果我需要停止脚本,我就不会丢失它已经完成的工作。但是,当我尝试将 session.commit() 命令传递给回调函数时,它似乎不起作用。
会话是从 导入的assignDB
。我没有收到任何错误,只是没有更新数据库。
谢谢你的帮助。
更新 这是模糊子字符串的代码
我从这里得到的:Fuzzy Substring。就我而言,“needle”是大约 8000 种可能的选择之一,而 haystack 是我要匹配的原始字符串。我遍历所有可能的“针”并选择得分最高的一根。
parallel-python - 必须使用命令行选项或配置文件设置机密
我已经在 python 中编写了一个并行编程代码。我为此使用了 pp 模块。
job_server = pp.Server(ncpus, ppservers=ppservers)
其中 ncpus=8 不是。我系统中的核心。
蟒蛇版本:2.6.5。
pp版本:1.6.2。
但我面临如下错误,
python - 并行 Python - RuntimeError:通信管道读取错误
我正在使用并行 python 使用名为 OrcFxAPI 的模块运行多个动态模拟。如果该程序在我的机器上作为 python 程序运行,则该程序可以完美运行,但是如果我使用 py2exe 将其转换为 exe 文件然后运行,则会出现以下错误:
它在我的程序中的这一行失败:
但我认为这可能与提交作业时用于导入 OrcFxAPI 模块的路径有关:
parallel-processing - 并行python中的缓存错误
使用并行 python 模块时,我遇到了透明缓存问题。我更改了由并行代码调用的模块中的方法签名。当我执行代码时,它给了我一个错误,说它需要旧的方法签名。
我删除了 .pyc 文件,以防它正在使用它们,但仍然没有乐趣。当我将模块重命名为其他内容时,它又开始工作了,所以我只能假设并行 python 正在某处存储模块的旧副本。我检查了文档,但它没有提到缓存是如何工作的。有什么办法可以清除缓存吗?任何帮助将不胜感激!