【发布时间】:2013-04-03 02:18:00
【问题描述】:
背景
我有一组用于构建和执行 Verilog-AMS 测试台的 Python 脚本。整体设计是在考虑线程的情况下构建的,因为每个主要测试用例都是它自己的测试平台,并且我为每个实例分别提供了所有支持文件/数据输出。唯一共享的项目将是启动器脚本和我的数据提取脚本。我面临的问题是我的 Verilog-AMS 模拟器本身不支持多线程,并且对于我的测试用例,它需要大量时间才能完成。
问题
我正在运行它的机器有 32GiB 的 RAM 和 8 个“核心”可供我使用,我可能能够访问具有 32 个的机器。我想利用可用的计算能力并同时执行模拟.最好的方法是什么?
我目前使用subprocess.call 来执行我的模拟。我想一次最多执行n 命令,每个命令都在单独的线程上执行/作为单独的进程。一旦模拟完成,队列中的下一个(如果存在)将执行。
我对 Python 还很陌生,还没有真正编写过线程应用程序。我想要一些关于我应该如何进行的建议。我看到this 的问题,我认为multiprocessing 模块可能更适合我的需求。
你们都推荐什么?
【问题讨论】:
标签: python multithreading multiprocessing verilog