Hi Travis, 
please try if setting OMP_NUM_THREADS=4 or smaller fixes this problem. 
This is something that I have to do in the CI scripts for Normaliz also 
(https://github.com/Normaliz/Normaliz/blob/master/.travis-build.sh#L7)
Best,
Matthias

On Saturday, May 13, 2017 at 12:45:46 PM UTC-7, Travis Scrimshaw wrote:
>
> For the combinat/rigged_configurations, I recently changed the iteration 
> method to use lattice point counting using normaliz (if installed). 
> However, when running the doctests in parallel with normaliz installed, 
> this causes a significant slowdown:
>
> travis@apricot:~/sage-build$ ./sage -tp 2 src/sage/combinat/
> rigged_configurations/*
> too many failed tests, not using stored timings
> Running doctests with ID 2017-05-13-14-41-00-970329a3.
> Git branch: public/crystals/speedup_rigged_configurations-TBA
> Using 
> --optional=coxeter3,database_gap,gambit,libbraiding,libhomfly,meataxe,mpir,normaliz,ore_algebra,pynormaliz,python2,sage,sirocco
> Sorting sources by runtime so that slower doctests are run first....
> Doctesting 24 files using 2 threads.
> sage -t src/sage/combinat/rigged_configurations/kr_tableaux.py
>     [238 tests, 9.41 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_B.py
>     [41 tests, 5.29 s]
> sage -t 
> src/sage/combinat/rigged_configurations/rigged_configuration_element.py
>     [268 tests, 17.18 s]
> sage -t 
> src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py
>     [75 tests, 5.61 s]
> sage -t src/sage/combinat/rigged_configurations/rigged_configurations.py
>     [214 tests, 15.21 s]
> sage -t src/sage/combinat/rigged_configurations/rc_infinity.py
>     [105 tests, 2.07 s]
> sage -t 
> src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py
>     [91 tests, 4.31 s]
> sage -t src/sage/combinat/rigged_configurations/bij_infinity.py
>     [44 tests, 1.87 s]
> sage -t src/sage/combinat/rigged_configurations/rc_crystal.py
>     [83 tests, 1.13 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_E67.py
>     [68 tests, 2.95 s]
> sage -t src/sage/combinat/rigged_configurations/bij_abstract_class.py
>     [66 tests, 0.77 s]
> sage -t src/sage/combinat/rigged_configurations/kleber_tree.py
>     [218 tests, 37.54 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_D.py
>     [79 tests, 0.77 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_D_twisted.py
>     [29 tests, 0.57 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_C.py
>     [28 tests, 0.54 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A2_dual.py
>     [19 tests, 0.48 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A2_odd.py
>     [19 tests, 0.49 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_D_tri.py
>     [19 tests, 0.48 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A2_even.py
>     [19 tests, 0.48 s]
> sage -t src/sage/combinat/rigged_configurations/bijection.py
>     [6 tests, 0.35 s]
> sage -t src/sage/combinat/rigged_configurations/rigged_partition.py
>     [58 tests, 0.46 s]
> sage -t src/sage/combinat/rigged_configurations/__init__.py
>     [0 tests, 0.00 s]
> sage -t src/sage/combinat/rigged_configurations/all.py
>     [0 tests, 0.00 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A.py
>     [19 tests, 0.36 s]
> ----------------------------------------------------------------------
> All tests passed!
> ----------------------------------------------------------------------
> Total time for all tests: 54.9 seconds
>     cpu time: 367.9 seconds
>     cumulative wall time: 108.3 seconds
>
>
>
> Compare when run in series:
>
> travis@apricot:~/sage-build$ ./sage -t src/sage/combinat/
> rigged_configurations/*
> too many failed tests, not using stored timings
> Running doctests with ID 2017-05-13-14-39-54-6e47b138.
> Git branch: public/crystals/speedup_rigged_configurations-TBA
> Using 
> --optional=coxeter3,database_gap,gambit,libbraiding,libhomfly,meataxe,mpir,normaliz,ore_algebra,pynormaliz,python2,sage,sirocco
> Doctesting 24 files.
> sage -t src/sage/combinat/rigged_configurations/all.py
>     [0 tests, 0.00 s]
> sage -t src/sage/combinat/rigged_configurations/bij_abstract_class.py
>     [66 tests, 0.56 s]
> sage -t src/sage/combinat/rigged_configurations/bijection.py
>     [6 tests, 0.33 s]
> sage -t src/sage/combinat/rigged_configurations/bij_infinity.py
>     [44 tests, 0.70 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A2_dual.py
>     [19 tests, 0.43 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A2_even.py
>     [19 tests, 0.42 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A2_odd.py
>     [19 tests, 0.43 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_A.py
>     [19 tests, 0.32 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_B.py
>     [41 tests, 1.85 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_C.py
>     [28 tests, 0.46 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_D.py
>     [79 tests, 0.55 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_D_tri.py
>     [19 tests, 0.42 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_D_twisted.py
>     [29 tests, 0.52 s]
> sage -t src/sage/combinat/rigged_configurations/bij_type_E67.py
>     [68 tests, 0.61 s]
> sage -t src/sage/combinat/rigged_configurations/__init__.py
>     [0 tests, 0.00 s]
> sage -t src/sage/combinat/rigged_configurations/kleber_tree.py
>     [218 tests, 1.56 s]
> sage -t src/sage/combinat/rigged_configurations/kr_tableaux.py
>     [238 tests, 5.16 s]
> sage -t src/sage/combinat/rigged_configurations/rc_crystal.py
>     [83 tests, 0.62 s]
> sage -t src/sage/combinat/rigged_configurations/rc_infinity.py
>     [105 tests, 1.41 s]
> sage -t 
> src/sage/combinat/rigged_configurations/rigged_configuration_element.py
>     [268 tests, 3.48 s]
> sage -t src/sage/combinat/rigged_configurations/rigged_configurations.py
>     [214 tests, 1.46 s]
> sage -t src/sage/combinat/rigged_configurations/rigged_partition.py
>     [58 tests, 0.40 s]
> sage -t 
> src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py
>     [75 tests, 1.50 s]
> sage -t 
> src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py
>     [91 tests, 0.94 s]
> ----------------------------------------------------------------------
> All tests passed!
> ----------------------------------------------------------------------
> Total time for all tests: 25.0 seconds
>     cpu time: 34.8 seconds
>     cumulative wall time: 24.1 seconds
>
> I have 4 physical cores with 8 logical (i.e., hyperthreading), and when I 
> run using 2 threads, all of my CPU cores start working. However, running in 
> series, I only see 1 core being used (and not nearly with the same load). 
> It only gets worse when I add threads and this is not related to the branch 
> I am currently working on as I also get it on develop. So I suspect there 
> some kind of thrashing or lock collisions going on between normaliz (which 
> uses parallel computing IIRC for the lattice point enumeration) and the 
> Sage doctesting framework.
>
> Any thoughts about what to do?
>
> Best,
> Travis
>
>

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

Reply via email to