#11187: Implementation of finite reflection groups
-------------------------------------+-------------------------------------
       Reporter:  stumpc5            |        Owner:  tbd
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-7.2
      Component:  combinatorics      |   Resolution:
       Keywords:  reflection group,  |    Merged in:
  days49, days 64.5                  |    Reviewers:
        Authors:  Christian Stump    |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  e2f919fa6529b2444dbec4cfffde671b8927d1b7
  u/vripoll/11187-new                |     Stopgaps:
   Dependencies:  #20107             |
-------------------------------------+-------------------------------------
Changes (by tscrim):

 * cc: hivert (added)
 * commit:  3da1ebb8a47bdd4ff2c36761b15e663c6d2485fe =>
     e2f919fa6529b2444dbec4cfffde671b8927d1b7
 * milestone:  sage-7.1 => sage-7.2


Comment:

 Continuing the discussion from #13580.

 Replying to [ticket:13580comment:102 hivert]:
 > Replying to [ticket:13580comment:101 tscrim]:
 > > Christian, Vivien, and I are working on trying to speed up the
 iteration of
 > > finite Coxeter groups by using (subgroups of) permutation groups and
 the
 > > iterator method of generic Coxeter groups, which uses a `SearchForest`
 (see
 > > #11187 and the `CoxeterGroups` category). Our goal is to try and match
 or
 > > beat GAP3 iteration time (which we are about ~30x slower).
 >
 > I'll be both very happy and interested to have usecase for this code.

 This will have the more serious use case I know of (the code in the
 generic Coxeter groups iterator, e.g., via `CoxeterGroup`, has not had any
 serious optimization attempts AFAIK).

 > > We are in the process pushing our successor computation code to Cython
 and
 > > some of our other methods, but we would appreciate any insights you
 have.
 >
 > Do you have a typical example relying on {{{SearchForest}}} of code on
 top of
 > #11187 that I can profile ? Note that I included in the documentation of
 > map_reduce.py a guide on how to profile the parallel code. I'd like to
 measure
 > the proportion of time that is spend on Coxeter code one one hand and on
 the
 > parallel infrastructure on the other.

 Our current test cases are B,,6,, (~0.5s) and E,,7,, (~1m).

 > Now, concerning coxeter group, I'm quite sure that rewriting part of the
 code
 > in C/C++ and using advanced parallel stuff (AVX instruction set + SIMD)
 you
 > can get speedup a large as several hundreds and even thousand ! As a
 witness
 > on https://github.com/hivert/IVMPG I wrote a code whose goal is to
 enumerate
 > integer vector modulo permutation group. Compared to the code we have in
 Sage
 > which has been Cythonized and optimized by Simon King I manage to get
 speedup
 > a large as x2000 ! I need help on the build system to be able to
 distribute
 > it. I'm pretty sure the code there is very similar to what you need in
 Coxeter
 > groups.

 One of the thoughts I'm bouncing around is doing a full C/C++ version
 using arrays, and then using Cython (mainly `PermutationGroupElement`) as
 a transfer layer to Sage/GAP. In which case it probably should be split
 off as a little specialized spkg.

 That is quite an impressive speedup. I know a little bit about build
 systems (and its on my todo to learn more for fixing up coxeter3/LiE too),
 but, e.g., Jeroen or François are good people to ask. Although if you need
 GCC 5.x, then we will need to do some changes to Sage. Yet, I think moving
 to GCC 5.x is something that we want and are going to do soon...
 ----
 New commits:
 
||[http://git.sagemath.org/sage.git/commit/?id=e2f919fa6529b2444dbec4cfffde671b8927d1b7
 e2f919f]||{{{New iterator for real reflection groups.}}}||

--
Ticket URL: <http://trac.sagemath.org/ticket/11187#comment:134>
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