无法获得多重处理

2024-03-28 12:37:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须实现一个并行的软件来计算大规模的距离矩阵。你知道吗

这是我写的代码:

subset = #[list of proper objects]
nthreads = 10

def compute_distance_corcoeff(geneset, offset, q):
    for i in range(offset, len(geneset), nthreads):
        g1 = geneset[i]
        dvect = [np.corrcoef(g1.expr, g2.expr)[0,1] for g2 in geneset]
        q.put((i,dvect))

queue = Queue()
processes = []
for off in range(nthreads):
    processes.append(Process(target=compute_distance_corcoeff, args=(subset, off, queue)))

for p in processes:
    p.start()
for p in processes:
    p.join()

然后我将从队列中收集部分结果。你知道吗

不幸的是,看起来什么都没有发生。它似乎被困在join()。你知道吗

我错过了什么?你知道吗


Tags: inforrangeoffsetdistanceprocessescomputesubset