#13580: Parallel map reduce on SearchForest
-------------------------------------+-------------------------------------
       Reporter:  hivert             |        Owner:  hivert
           Type:  enhancement        |       Status:  positive_review
       Priority:  major              |    Milestone:  sage-6.4
      Component:  combinatorics      |   Resolution:
       Keywords:  map-reduce,        |    Merged in:
  days57, days77                     |    Reviewers:  Sébastien Labbé,
        Authors:  Florent Hivert,    |  Jean-Baptiste Priez
  Jean-Baptiste Priez, Nathann       |  Work issues:
  Cohen                              |       Commit:
Report Upstream:  N/A                |  134c1fad85dd50fa28528adc343bad759b174cc6
         Branch:                     |     Stopgaps:
  u/hivert/ticket/13580              |
   Dependencies:                     |
-------------------------------------+-------------------------------------

Comment (by hivert):

 Replying to [comment:96 tscrim]:
 > I am wondering what else is currently needed for this ticket before a
 positive review?

 Sebastien is currently rereading it. I think he is very close to put a
 positive review.

 > Also, what are the current plans to cythonize `SearchForest` and the
 parallel reduce map?

 Concerning Cythonization of map-reduce, my current opinion is that, the
 code
 is designed for case where the computation of the children is costly. In
 this
 case the cost of the current code should be negligible. There are a lot of
 function calls, I'm using Python synchronization primitive, but most
 importantly, communication is are by pickling/unpickling which is very
 slow. So the idea is to reduce at most at possible the communication, but
 without drastically changing the technology, I don't think you get a large
 improvement without great effort. You'll need to rewrite all the
 communication
 primitive and to inline the function call to the client code.

 On the other hand, If you are allowed to write the code directly in C/C++
 (which is the case for small basic objects), then the Cilk extension of C
 is
 wonderful. It's a small extension which is supported by GCC since version
 5,
 ICC and in recent CLANG (https://cilkplus.github.io/). I've several code
 where
 I've been able to have very large speedup. See
 e.g. https://hal.archives-ouvertes.fr/hal-00823339/file/article.pdf if you
 are
 curious.

 Now if you have a specific use case, I'll be happy to experiment.

--
Ticket URL: <http://trac.sagemath.org/ticket/13580#comment:98>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to