针对4核PC的高效Python编程(带线程)?

针对4核PC的高效Python编程(带线程)?,python,multithreading,performance,Python,Multithreading,Performance,我想写一个脚本来探索一些模拟软件中的参数空间。最初,我只想运行模拟脚本,比如说,100次,每次递增一个参数 这是在一台不用于任何其他用途的机器上运行的,因此理想情况下,我会利用它的所有四个内核来加快处理速度 有人能推荐一种有效的方法吗 我考虑生成100个python脚本,然后在一个bash脚本中对它们进行排队。 或者,我可以编写一个python脚本来执行FOR循环中的所有操作。我想我可以使用线程来允许同时执行4个操作。如果这似乎是明智的,那么最好的实现方法是在软件中硬编码以生成和处理4个线程,还

我想写一个脚本来探索一些模拟软件中的参数空间。最初,我只想运行模拟脚本,比如说,100次,每次递增一个参数

这是在一台不用于任何其他用途的机器上运行的,因此理想情况下,我会利用它的所有四个内核来加快处理速度

有人能推荐一种有效的方法吗

我考虑生成100个python脚本,然后在一个bash脚本中对它们进行排队。 或者,我可以编写一个python脚本来执行FOR循环中的所有操作。我想我可以使用线程来允许同时执行4个操作。如果这似乎是明智的,那么最好的实现方法是在软件中硬编码以生成和处理4个线程,还是Python有一种聪明的方法来有效地处理CPU使用


非常感谢,

您应该使用
多处理
模块,而不是
线程


您可以创建多个进程,这取决于系统优化CPU使用。

您应该使用
多处理
模块,而不是
线程


您可以创建多个进程,这取决于系统如何优化CPU使用。

仅供参考,参考Python实现有一个新的内核,这使得您在使用
线程化
模块时几乎不可能使用多个内核。这在CLR或JVM上不是问题,因为它有真正的线程。IIRC,像
numpy
这样的科学库通过在一些用例中使用本机代码来解决这个问题,但是对于所有的一般用途,不要太相信CPython中的多线程。仅供参考,参考Python实现有一个函数,这使得在使用
线程化
模块时几乎不可能使用多个内核。这在CLR或JVM上不是问题,因为它有真正的线程。IIRC,像
numpy
这样的科学库可以通过在一些用例中使用本机代码来解决这个问题,但是对于所有的一般用途,不要太信任CPython中的多线程。注意:创建的进程数量不要超过可用硬件线程的数量。@KarolyHorvath:不总是;视情况而定。如果您的一个进程在I/O上花费了大量时间,那么另一个进程可以偷偷地利用CPU来最大限度地提高吞吐量。是的,但是根据他写的内容,我非常确定它是CPU受限的,不涉及太多I/O。好的,我将对此进行研究,谢谢。是的,我没有I/O,只有一些重负荷方程需要反复求解。注意:创建的进程数不要超过可用硬件线程数。@KarolyHorvath:不总是;视情况而定。如果您的一个进程在I/O上花费了大量时间,那么另一个进程可以偷偷地利用CPU来最大限度地提高吞吐量。是的,但是根据他写的内容,我非常确定它是CPU受限的,不涉及太多I/O。好的,我将对此进行研究,谢谢。是的,我没有输入输出,只有一些重负荷方程需要反复求解。