使用 Python 编写科学代码时遇到以下问题:
- 通常你迭代地编写代码,作为执行一些计算的脚本。
- 最后,它起作用了;现在您希望使用多个输入和参数运行它,但发现它花费了太多时间。
- 回想一下您在一家优秀的学术机构工作并可以使用大约 100 个 CPU 的机器,您不知道如何获得这种能力。您首先准备小型 shell 脚本,这些脚本运行具有不同输入的原始代码并手动运行它们。
作为一名工程师,我知道所有正确的架构(工作项排队,工作线程或进程,工作结果排队并写入持久存储);但我不想自己实现这一点。最成问题的问题是由于代码更改或临时系统问题(例如内存不足)而需要重新运行。
我想找到一些框架,我将向其提供所需的输入(例如,每次运行一个文件),然后我将能够启动一些框架提供的代理的多个实例,这些代理将运行我的代码。如果运行出现问题(例如临时系统问题或由于错误引发的异常),我将能够删除结果并运行更多代理。如果我占用太多资源,我将能够杀死一些代理而不用担心数据不一致,而其他代理会在他们找到时间时拿起工作项。
任何现有的解决方案?有人愿意分享他的代码吗?谢谢!