Praca równoległa wielu procesorów Joblib jest wolniejsza niż pojedyncza

Właśnie zacząłem używać modułu Joblib i próbuję zrozumieć, jak działa funkcja równoległa. Poniżej znajduje się przykład, gdzie równoległość prowadzi do dłuższych czasów działania, ale nie rozumiem dlaczego. Mój czas pracy na 1 procesorze wynosił 51 sekund vs. 217 sekund na 2 procesorach.

Przypuszczałem, że równoległe uruchamianie pętli spowoduje skopiowanie list a i b do każdego procesora. Następnie wyślij item_n do jednego procesora i item_n + 1 do drugiego procesora, wykonaj funkcję, a następnie zapisz wyniki z powrotem do listy (w kolejności). Następnie chwyć kolejne 2 przedmioty i tak dalej. Oczywiście czegoś mi brakuje.

Czy to zły przykład lub zastosowanie joblib? Czy po prostu skonstruowałem kod źle?

Oto przykład:

import numpy as np
from matplotlib.path import Path
from joblib import Parallel, delayed

## Create pairs of points for line segments
a = zip(np.random.rand(5000,2),np.random.rand(5000,2))

b = zip(np.random.rand(300,2),np.random.rand(300,2))

## Check if one line segment contains another. 
def check_paths(path, paths):
    for other_path in paths:
        res='no cross'
        chck = Path(other_path)
        if chck.contains_path(path)==1:
            res= 'cross'
            break
    return res

res = Parallel(n_jobs=2) (delayed(check_paths) (Path(points), a) for points in b)

questionAnswers(2)

yourAnswerToTheQuestion