python-3.x - Python多处理未运行所有项目
问题描述
我正在为基于 matlab 的程序运行测试用例。我有数百个测试用例要运行,由于每个测试用例都使用一个核心,我一直在使用多处理、池和映射来帮助并行完成这项工作
该程序采用命令行参数,我在其中执行 bash 脚本。我已经编写了代码,它创建了一个 bash 命令的 csv 文件,每个测试用例都需要调用这些命令。我将 csv 文件中的每个测试用例读入变量testcase_to_run
,该变量创建了一组单独的列表(需要以这种格式输入到 map 函数中,我相信
我有一台 12 核机器,所以我一次并行运行 (12-1) 个实例。我注意到,对于某些测试用例及其论点,并不是每个测试用例都能运行。我看到多达 20% 的测试用例没有运行(bash 脚本的第一个命令是创建一个新文件来存储结果)
from multiprocessing import Pool
import subprocess
number_to_run_in_parallel = 11
testcase_to_run = ([testcase_1 arguments], [testcase_2 arguments], ....[testcase_250 arguments])
def execute_test_case(work_data):
subprocess.call(work_data, shell=True)
def pool_handler(number_to_run_in_parallel):
p = Pool(number_to_run_in_parallel)
p.map(execute_test_case, test_cases_to_run)
if __name__ == "__main__":
pool_handler(number_to_run_in_parallel)
解决方案
推荐阅读
- php - 为什么在 Laravel 项目中会出现这个插入错误?
- reactjs - 无法分配提交事件类型
- python - 为什么我的代码在尝试使用一些数据创建和填充 Excel 文件时会引发错误?
- python-3.6 - 在 ubuntu 18.4 中重新安装损坏的 python3
- angular - 角度通用导入传单扩展插件
- javascript - 我正在尝试使用删除按钮构建一个购物车,该按钮在每次单击时删除该项目
- ansible - 在 Ansible 剧本中自动包含环境变量
- html - target="_blank" 在 Firefox 的新标签中打开,但不是 chrome (Svelte)
- pine-script - Pine Script 根据新的最高交易量在低/高价上绘制水平线
- selenium - 无法在 Katalon Studio 上滑动和滚动到文本