首页 > 解决方案 > 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)

标签: python-3.xparallel-processingpython-multiprocessing

解决方案


推荐阅读