函数并行化Python

我的代码的目标是对由称为biopython的生物信息软件提供的xml文件进行一些计算。该程序生成一个如下所示的迭代器:

<Bio.Blast.Record.Blast object at 0x00000174AF383E80>

对于迭代器的每个元素,我都会进行一些计算并将结果上传到mysql数据库。当我打电话时,元素看起来像这样:

from Bio.Blast import NCBIXML
import pymysql
result_handle = open(*file*)
blast_records = NCBIXML.parse(result_handle)

*start sql connection

def calculation(blast_record):
      # do calculation
      # upload to sql

for blast record in blast_records:
    calculation(blast_record)

我的代码如下:

processes = [mp.Process(target=calculation,args=(blast_record)) for blast_record in blast_records]

我尝试使用类似于以下的列表理解功能,将其与joblib和多处理工具并行化:

joblib

但是使用 multiprocessing ,我得到了一个错误:PicklingError:无法腌制任务以将其发送给工人

使用 {{1}} ,代码将无限期运行

任何有关如何构造代码以使函数的每个输入并行化的帮助吗?

j5210 回答:函数并行化Python

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3105097.html

大家都在问