首页 > 其他分享 >快速使用 ThreadPoolExecutor 并行加速

快速使用 ThreadPoolExecutor 并行加速

时间:2024-06-08 20:11:49浏览次数:15  
标签:files process 并行 result file executor 加速 ThreadPoolExecutor

总览

一般的 Python 脚本只会用上单线程。对于 IO 密集型任务,用多线程加速会快得多。

本文会给出一个模板,使用 ThreadPoolExecutor 进行并行加速。

注意,由于 GIL 的存在,对于 CPU 密集型任务 ProcessPoolExecutor 是更好的选择。

快速使用 ThreadPoolExecutor

请看以下模板。

from concurrent.futures import ThreadPoolExecutor

def process_file(file):
    with Image.open(file) as img:
        ···
    return result

files = [···]
with ThreadPoolExecutor() as executor:
    for result in executor.map(process_file, files):
        ···
  • process_file() 是需要多线程执行的函数
  • files 装着若干 process_file() 的输入。会以此生成若干个 process_file() 任务
  • executor.map() 返回一个迭代器

就这样,with ThreadPoolExecutor() as executor: 以内的代码会阻塞主线程,直到所有任务运行完毕。而 executor.map(process_file, files) 所生成的任务会并行运行,每次的运行结果会按顺序装入 result,用于遍历结果。

标签:files,process,并行,result,file,executor,加速,ThreadPoolExecutor
From: https://www.cnblogs.com/chirp/p/18238899

相关文章

  • Block Transformer:通过全局到局部的语言建模加速LLM推理
    在基于transformer的自回归语言模型(LMs)中,生成令牌的成本很高,这是因为自注意力机制需要关注所有之前的令牌,通常通过在自回归解码过程中缓存所有令牌的键值(KV)状态来解决这个问题。但是,加载所有先前令牌的KV状态以计算自注意力分数则占据了LMs的推理的大部分成本。在这篇论文中,作者......
  • 【精选】矩阵加速
    大家好,我是Weekoder!今天要讲的内容是矩阵加速!这时候就有人说了:\(\tiny{\texttt{Weekoder这么蒻,怎么会矩阵啊。还给我们讲,真是十恶不赦!}}\)不不不,容我解释。在经过我的研究后,我发现基本的矩阵运算和矩阵加速都并没有那么难。只要继续往下看,相信你也能学会!注意:以下内容的学习......
  • 袋鼠云产品功能更新报告10期|智能进化,近百项功能升级加速数智化转型
    欢迎查阅袋鼠云第10期产品功能更新报告。本期,我们精心推出了72项新增和优化功能,致力于在数字化浪潮中为您提供更高效、更智能的服务。我们相信,这些新特性将为您的业务注入新活力,确保您在数字化转型的每一步都坚实而有力。以下为袋鼠云产品功能更新报告第10期内容,更多探索,请继续阅......
  • 197、加速Django应用:性能优化全攻略
    Python开发框架Django之性能优化:提高应用程序的运行速度本文将为大家介绍如何使用Python开发框架Django进行性能优化,以提高应用程序的运行速度。我们将探讨一系列的技巧和最佳实践,帮助你优化Django应用程序的性能,从而提供更好的用户体验。1.概述在当今的数字化时代,应用......
  • Simd库——图像处理领域的CPU指令集加速库
    Simd库是一个免费的开源图像处理和机器学习库,专为C和C++程序员设计。它为图像处理提供了许多有用的高性能算法,例如:像素格式转换,图像缩放和过滤,从图像中提取统计信息,运动检测,对象检测(HAAR和LBP分类器级联)和分类,神经网络。官网 SimdLibrary(ermig1979.github.io),可以下载编译,函......
  • 英特尔发布了性能最强的新一代Gaudi3 Al算力加速芯片
    英特尔发布的性能最强的新一代Gaudi3AI加速芯片具有显著的性能提升和多项优势。以下是关于该芯片的详细信息和特点:性能提升:与NVIDIAH100GPU相比,Gaudi3在推理速度上提高了50%,效率提高了40%。在算力训练性能方面,与NVIDIAH100相比,Gaudi3提高了170%。FP8AI计算性能是......
  • 2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
    总是这样要加载好久好久才能完成构建我们可以添加阿里云镜像下载镜像是一个包含完整文件系统的容器运行环境的静态快照。它包含了运行某个应用程序所需的所有内容:代码、运行时、库、环境变量和配置文件等。镜像可以被用来创建容器实例,即容器是镜像的运行时实例。在容器化......
  • AMD的旗舰AI加速器推出MI325X对标Nvidia H200
    ​AMD计划于今年晚些时候推出旗舰AI加速器MI325X,提供更高的带宽。这次发布意味着AMD正在跟随Nvidia的模式,转向了“Instinct”加速器系列的年度发布节奏。据目前了解的信息,InstinctMI325X与Nvidia的H200非常相似,是AMD在去年12月AdvancingAI活动中详细介绍的GPU的HBM3e增强版。......
  • 华为matebook 14s笔记本,Chrome浏览器开启硬件加速,屏幕闪屏,黑框,页面屏幕卡死,解决
    解决办法使用了https://zhuanlan.zhihu.com/p/644296061这个连接下的最后一个折中办法解决!一、现象Chrome开启“硬件加速模式”后,在观看视频时,尤其是全屏时,会出现短暂黑屏或黑块或闪屏。如果关闭“硬件加速”,则会造成播放某些高清视频(例如HEVC)视频或弹幕卡顿(似乎还好)。Edge......
  • Python并发 :ThreadPoolExecutor
    concurrent.futures是Python中执行异步编程的重要工具,它提供了以下两个类: 1.ThreadPoolExecutorfromconcurrent.futuresimportThreadPoolExecutordeftest(num):print("Threads"num)#新建ThreadPoolExecutor对象并指定最大的线程数量withThreadPoolExecutor(......