[SciPy-dev] parallelizing cKDTRee
Sturla Molden
sturla at molden.no
Wed Jan 7 09:58:41 EST 2009
Speed is very important when searching kd-trees; otherwise we should not
be using kd-trees but brute force. Thus exploiting multiple processors
are important as well.
1. Multiprocessing:
Must add support for pickling and unpickling to cKDTree (i.e. __reduce__
and __setstate__ methods). This would be useful for saving to disk as well.
2. Multithreading (Python):
cKDTree.query calls cKDTree.__query with the GIL released (i.e. a 'with
nogil:' block). I think this will be safe.
3. Multithreading (Cython):
We could simply call cKDTree.__query in parallel using OpenMP pragmas.
It would be a simple and quite portable hack.
Which do you prefer? All three?
(Forgive me for cross-posting. I did not know which list is the more
appropriate.)
Regards,
Sturla Molden
More information about the SciPy-Dev
mailing list