Sie sehen keine Beschleunigung, wenn Sie C ++ - Code in Python multiprocessing?C++

Programme in C++. Entwicklerforum
Anonymous
 Sie sehen keine Beschleunigung, wenn Sie C ++ - Code in Python multiprocessing?

Post by Anonymous »

Ich habe einen Python -Code, der sich auf ein Stück C ++ - Code stützt, der im Wesentlichen eine große Baumsuche durchführt. Ich muss diese Baumsuche n -mal in einer für die Schleife durchführen, und da jede Iteration einige Sekunden dauerte, dachte ich, dass dies ein offensichtlicher Ort wäre, um in Python eine Multiprozessierung hinzuzufügen, um die Dinge zu beschleunigen. Meine Multiprozessierung ist ziemlich Standard: < /p>
with Pool() as pool:
probs = pool.starmap(self._probs_multi, zip(self.features, self.scales, repeat(labels), repeat(nr_classes)))
< /code>
Ich kann sehen, dass ich, wenn ich es ausführte, N -Kerne erhalte, die bei 100% Last arbeiten (wenn N kleiner als meine Anzahl von Kernen ist), im Gegensatz zu dem aufeinanderfolgenden Fall, in dem ich 1 Kern bei 100% Last betrieben habe. Die Gesamtlaufzeit der für die Schleife dauert jedoch immer noch die gleiche Zeit!import ctypes
import numpy.ctypeslib as ctl
libfile = os.path.dirname(__file__) + '/km_dict_lib.so'
lib = ctypes.cdll.LoadLibrary(libfile)

py_km_tree_multi = lib.build_km_tree_multi
# say which inputs the function expects
py_km_tree_multi.argtypes = [ctl.ndpointer(ctypes.c_double, flags="C_CONTIGUOUS"),
ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.c_int,
ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.c_int,
ctypes.c_bool,
ctl.ndpointer(ctypes.c_double, flags="C_CONTIGUOUS")]
py_km_tree_multi(image, rows, cols, channels, n_im,
self.patch_size, self.number_layers, self.branching_factor,
number_training_patches, self.normalization, self.tree)
< /code>
Ich kann mir zwei Gründe vorstellen, warum der sequentielle Lauf so schnell ist wie der Multiprozessor -Lauf. Der erste Grund ist, dass der Job nicht tatsächlich von der CPU gebunden ist, sondern auf Speichergebundene. Ich denke, dies könnte bei einer Baumsuche der Fall sein. Dies ist unzureichend.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post