单个线程脚本使用多个内核的Python 3

时间:2018-09-25 18:58:43

标签: python python-3.x multithreading

我正在使用一个简单的python 3脚本,该脚本编写用于解析一些非常大的文件。这是一个单线程脚本(我什至不知道如何设置多线程python脚本)。

但是,当我运行脚本时,该脚本在我们的计算机群集上使用了30多个核心。

该脚本仅使用argparse模块和另一个名为pyBigWig的模块。如何使用30个内核?

----编辑----

尽管这是我面临的一个实际问题,并尽我最大的努力来描述这个问题,但我不能说我为立即收到这份赞成票感到惊讶。

整个脚本取决于我在文件的每一行中浏览的简单循环:

with open(file, 'r') as fh:
    for line in fh:
    # assign some variables from this line
    # calculate some values from these variables
    # write new values to a new line of a new output file

1 个答案:

答案 0 :(得分:0)

结果证明numpy模块正在使用所有内核。通过将其添加到脚本顶部,我设法限制了这一点:

import os
os.environ["MKL_NUM_THREADS"] = "1" 
os.environ["NUMEXPR_NUM_THREADS"] = "1" 
os.environ["OMP_NUM_THREADS"] = "1"