Python使用joblib 库处理计算密集型 (多进程)
【代码】Python使用joblib 库处理计算密集型 (多进程)
·
1、python代码实例代码如下
import time from joblib import Parallel, delayed def process_data(data): # 模拟处理时间 time.sleep(1) # 处理数据的逻辑 result = data * 2 return result if __name__ == '__main__': # 创建需要处理的数据 data_list = range(10) # 开始计时 start_time = time.time() # 使用joblib库进行多进程并行处理 num_cores = 4 # 设置并行处理的核心数目 #tasks = [] # for data in data_list: # task = process_data(data) # tasks.append(task) # 该列表推导式将迭代data_list中的每个元素,并调用process_data函数来处理每个元素。然后,它将处理结果存储在名为tasks的列表中。 # # 在Parallel(n_jobs=num_cores) # 中,我们使用joblib库的Parallel函数来并行执行这些任务。n_jobs参数指定了要使用的并行处理核心数目。这个参数决定了需要启动的进程数量。 # 代码实际上是创建了一个列表,其中的每个元素都是一个要并行处理的任务。 results = Parallel(n_jobs=num_cores)(delayed(process_data)(data) for data in data_list) end_time = time.time() # 计算总的开销时间 elapsed_time = end_time - start_time # 打印处理结果和开销时间 print('处理结果:', results) print('开销时间:', elapsed_time, '秒')
2、运行结果,为3.5S左右,使用单个进程处理最少需要10s
C:\Users\Thinkpad\AppData\Local\Programs\Python\Python39\python.exe C:/Users/Thinkpad/Desktop/Python_K15/jobli00.py 处理结果: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 开销时间: 3.52485990524292 秒 Process finished with exit code 0

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)