Joblib, если jobs = 1, это работает, но с заданиями = 2 нет - PullRequest
0 голосов
/ 22 апреля 2020

я новичок и только начал использовать joblib. Программа выдает результат, но не вырабатывает нагрузку на 2 ядра. Пожалуйста, помогите пожалуйста! Приблизительный код программы:

    G={}

def boundary_foo(x,y):
        return x**2+y**2

def para(y_start, x_start):

        Iterations = 100
        Width = 10
        Height = 10
        X_base = -5
        Y_base = -5
        G_sum = 0

        m = map.map(Width, Height, X_base, Y_base, Iterations, x_start, y_start);
        m.start()

        point_stat = m.stat()

        for point in point_stat:
                (_point, x_str, y_str) = point.split()

                x = int(x_str)
                y = int(y_str)

                G_point = boundary_foo(x,y) * point_stat[point] / Iterations

                G_sum += G_point

        G['Point ' + str(x_start) + str(y_start)] = G_sum
if __name__ == '__main__':
        Parallel(n_jobs=1)(delayed(para)(y_start, x_start) \
                           for y_start in range( Y_base, -(Y_base-1) ) \
                           for x_start in range( X_base, -(X_base-1) ))
print(G)

После работы программы с n_jobs = 1 я получаю:

{'Point -5-5': 50.0, 'Point -4-5': 41.0, 'Point -3-5': 34.0, 'Point -2-5': 29.0, 'Point -1-5': 26.0, 'Point 0-5': 25.0, 'Point 1-5': 26.0, 'Point 2-5': 29.0, 'Point 3-5': 34.0, 'Point 4-5': 41.0, 'Point 5-5': 50.0, ... 'Point -45': 41.0, 'Point -35': 34.0, 'Point -25': 29.0, 'Point -15': 26.0, 'Point 05': 25.0, 'Point 15': 26.0, 'Point 25': 29.0, 'Point 35': 34.0, 'Point 45': 41.0, 'Point 55': 50.0}

А после работы с n_jobs = 2:

{}

Помогите кто чем может, пожалуйста!

...