Skip to main content
 首页 » 编程设计

Python 和 Amazon EC2——使用所有计算单元

2025年05月04日16softidea

我正在用 Python 构建一个科学应用程序,并考虑使用 Amazon EC2 来运行该过程。

我的应用程序既需要内存又需要 CPU,并且可以从提供给它的任何资源中受益。

EC2 的超大实例 提供大约 15GB 的内存,以及 8 个计算单元。

我的问题是,单个 Python 脚本(在 EC2 上运行时)能否利用所有 8 个计算单元?还是我必须运行 8 个独立进程才能充分利用 8 个计算单元?

注意:以防万一,我计划在 EC2 上使用 Linux 实例。

请您参考如下方法:

Python 有一个 GIL,这使得编写充分利用多个内核的多线程应用程序变得复杂。您可以在这里阅读更多相关信息 How do threads work in Python, and what are common Python-threading specific pitfalls?或这里 http://www.dabeaz.com/python/UnderstandingGIL.pdf如果你真的很在意细节。我倾向于只使用 Python 线程来启用各种任务(例如通信)的后台操作,而不是为了获得最佳性能。

正如 Jeremy 所说,使用多处理模块是一个替代选项,或者您可以简单地编写您的脚本,使其处理数据的独立部分,然后启动您喜欢的任意多个副本。