【问题标题】:How to use multiprocessing in a loop in python to generate solutions quickly?如何在python的循环中使用多处理快速生成解决方案?
【发布时间】:2023-04-03 13:17:01
【问题描述】:

我以前没有在我的任何程序中使用过多处理,我想了解它是如何实现的。我可以使用具有 24 个内核的机器,并且目前正在进行优化项目。

def compute_euclidean_distance_matrix(locations):
"""Creates callback to return distance between points."""
distances = {}
for from_counter, from_node in enumerate(locations):
    distances[from_counter] = {}
    for to_counter, to_node in enumerate(locations):
        if from_counter == to_counter:
            distances[from_counter][to_counter] = 0
        else:
            # Euclidean distance
            distances[from_counter][to_counter] = (int(
                math.hypot((from_node[0] - to_node[0]),
                           (from_node[1] - to_node[1]))))
return distances

这是我目前用来构建距离时间矩阵的代码。对于 1000 点左右的数据集,它会很快生成输出,但是假设我有一个 50000 点的数据集,如何使用我 PC 上的所有内核快速计算?

【问题讨论】:

    标签:
    python
    multithreading
    python-multiprocessing
    or-tools