python - 云计算:使用 docker 的努力何时合理?
问题描述
我有一个运行时间很长的 python 脚本,它不能被并行化(所以它是单线程的 = 只运行一个进程)。
- 这项工作在我自己的电脑上运行了几天。
- 它不会受益于任何 GPU 支持。
- 为了分析和参数优化,我假设运行这个工作多次;可能 10 - 20 次,每次使用不同的参数。
- 由于我自己现有的计算机资源有限,我想使用强大的云 CPU 来完成这项任务。
- 如果我意识到云 CPU 真的比我自己的 CPU 快得多,我可能会将工作从 AWS EC2(亚马逊网络服务)迁移到像 Hetzner 这样更便宜的统一费率解决方案。
有了这个用例:将我的设置放在 docker 容器中有意义吗?
还是这项任务不能证明在 docker / docker compose 等中进行工程设计和学习曲线的努力是合理的?
解决方案
好吧,当然你不需要为此使用 docker,因为我将在这里列出一些元素:
- Docker 的使用有理由在封装环境中使用,以获得安全性,并且主要是容器进程之间的受控访问。
- Docker 的另一个常见吸引力是容器开发的持续集成/复制方面,例如,使用 Kubernetes 创建 Docker 容器以进行扩展或使用 Jenkins 轻松部署是非常好的。
- 您可以在此处阅读更多相关信息:https ://www.linode.com/docs/applications/containers/when-and-why-to-use-docker/
现在,由于您的应用程序不需要它,因此 Docker 不是办法。还有一个建议,如果您需要多次运行它,而这些执行之间只有参数差异,那么并行它以享受强大的 CPU 对您来说真的很好。