【发布时间】:2013-06-01 15:49:02
【问题描述】:
我正在寻找编写一个脚本来探索一些模拟软件中的参数空间。最初,我只想运行模拟脚本,比如 100 次,每次递增一个参数。
这是在不用于其他任何用途的机器上运行,所以理想情况下我会利用它的所有四个内核来加快处理速度。
有人能推荐一种有效的方法吗?
我考虑过生成 100 个 python 脚本,然后将它们放入 bash 脚本中。 或者,我可以编写一个 Python 脚本来在 FOR 循环中执行所有操作。我想我可以使用线程来允许一次执行 4 个操作。如果这看起来很合理,那么将硬编码到软件中以创建和处理 4 个线程的最佳实现方法是,还是 Python 有一种聪明的方法来有效地处理 CPU 使用率?
非常感谢,
【问题讨论】:
-
仅供参考,参考 Python 实现有一个 GIL,这使得在使用
threading模块时几乎不可能利用多个内核。这在 CLR 或 JVM 上不是问题,因为它有 real 线程。 IIRC,像numpy这样的科学库通过将其以本机代码处理一些用例来解决这个问题,但出于所有一般目的,不要太相信CPython中的多线程。跨度>
标签: python multithreading performance