On Thu, Jun 20, 2019 at 4:56 PM Sébastien Labbé <[email protected]> wrote:
>
> My current sage-8.8.rc1 has normaliz installed:
>
> slabbe@miami ~ $ sage -optional | grep normaliz
> normaliz................................3.7.2 (3.7.2)
> pynormaliz..............................2.7 (2.7)
>
> and my current sage-8.7 has no optional packages installed:
>
> slabbe@miami ~ $ GitBox/sage-8.7/sage -optional | grep normaliz
> normaliz................................3.6.3 (not_installed)
> pynormaliz..............................1.19 (not_installed)
>
> If I do %prun on the first command which takes much longer (90s instead of 
> 5s), I get on both systems, the following:
>
>
> ┌────────────────────────────────────────────────────────────────────┐
> │ SageMath version 8.7, Release Date: 2019-03-23                     │
> │ Using Python 2.7.15. Type "help()" for help.                       │
> └────────────────────────────────────────────────────────────────────┘
> sage: from slabbe import PolyhedronPartition
> sage: from slabbe import PolyhedronExchangeTransformation as PET
> sage: from slabbe import Substitution2d
> sage: z = polygen(QQ, 'z')
> sage: K = NumberField(z**2-z-1, 'phi', embedding=RR(1.6))
> sage: phi = K.gen()
> sage: P0 = PolyhedronPartition.jeandel_rao_tilings_partition()
> sage: Gamma0 = matrix.column([(phi,0), (1,phi+3)])
> sage: fundamental_domain = polytopes.parallelotope([(phi,0), (0,phi+3)])
> sage: R0e2 = PET.toral_translation(Gamma0, vector((0,1)), fundamental_domain)
> sage: y_le_1 = [1, 0, -1]   # syntax for the inequality y <= 1
> sage:
> sage: %time P1,beta0 = R0e2.induced_partition(y_le_1, P0, 
> substitution_type='column')
> CPU times: user 4.6 s, sys: 84 ms, total: 4.68 s
> Wall time: 4.64 s
> sage: %prun P1,beta0 = R0e2.induced_partition(y_le_1, P0, 
> substitution_type='column')
>
>          3059637 function calls (3058959 primitive calls) in 5.373 seconds
>
>    Ordered by: internal time
>
>    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
>      4878    0.619    0.000    1.713    0.000 {method 'right_kernel' of 
> 'sage.matrix.matrix2.Matrix' objects}
>      4184    0.392    0.000    0.489    0.000 {method 'solve_right' of 
> 'sage.matrix.matrix2.Matrix' objects}
>     43084    0.253    0.000    0.280    0.000 matrix_space.py:720(__call__)
>      9756    0.209    0.000    0.294    0.000 number_field.py:3081(_repr_)
>     30698    0.191    0.000    0.253    0.000 
> matrix_space.py:103(get_matrix_class)
>      4184    0.166    0.000    0.182    0.000 {method 'pivots' of 
> 'sage.matrix.matrix0.Matrix' objects}
>      4184    0.166    0.000    0.205    0.000 {method 'pivot_rows' of 
> 'sage.matrix.matrix2.Matrix' objects}
>      5243    0.152    0.000    0.171    0.000 {method 'rank' of 
> 'sage.matrix.matrix0.Matrix' objects}
>      5005    0.146    0.000    0.325    0.000 free_module.py:662(__init__)
>     54383    0.140    0.000    0.200    0.000 
> free_module.py:973(_element_constructor_)
>     14168    0.138    0.000    0.197    0.000 sequence.py:80(Sequence)
>    435687    0.122    0.000    0.122    0.000 {isinstance}
>     35194    0.115    0.000    0.127    0.000 
> representation.py:1181(evaluated_on)
>     30698    0.113    0.000    0.367    0.000 
> matrix_space.py:432(__classcall__)
>      4184    0.106    0.000    1.284    0.000 
> double_description.py:641(initial_pair)
>     54383    0.102    0.000    0.304    0.000 
> free_module.py:5569(_element_constructor_)
>      9637    0.101    0.000    0.312    0.000 
> {sage.modules.free_module_element.vector}
>      8368    0.080    0.000    0.169    0.000 {method 'rows' of 
> 'sage.matrix.matrix1.Matrix' objects}
>     41111    0.072    0.000    0.149    0.000 misc.py:295(cputime)
>     10231    0.070    0.000    0.072    0.000 
> double_description.py:313(R_by_sign)
>     35194    0.066    0.000    0.247    0.000 representation.py:694(contains)
>     41111    0.057    0.000    0.057    0.000 {resource.getrusage}
>     52510    0.051    0.000    0.051    0.000 free_module.py:328(create_key)
>      4593    0.050    0.000    0.112    0.000 {method 'columns' of 
> 'sage.matrix.matrix1.Matrix' objects}
>      4878    0.045    0.000    0.156    0.000 
> free_module.py:1593(basis_matrix)
>      2092    0.043    0.000    0.408    0.000 
> double_description_inhomogeneous.py:273(_extract_Vrep)
>      4878    0.042    0.000    0.443    0.000 free_module.py:5643(__init__)
>     19512    0.038    0.000    0.038    0.000 {method 'sub' of 
> '_sre.SRE_Pattern' objects}
>     14168    0.036    0.000    0.039    0.000 sequence.py:405(__init__)
>      2965    0.036    0.000    0.057    0.000 representation.py:330(_set_data)
>      2092    0.036    0.000    2.732    0.001 
> double_description_inhomogeneous.py:154(__init__)
>     43834    0.032    0.000    0.281    0.000 base.py:587(<genexpr>)
>      1882    0.031    0.000    0.063    0.000 
> number_field.py:1554(_element_constructor_)
>      5005    0.030    0.000    0.042    0.000 
> free_module.py:7218(element_class)
>      6983    0.028    0.000    0.030    0.000 {method 'inner_product' of 
> 'sage.modules.free_module_element.FreeModuleElement' objects}
>     35194    0.028    0.000    0.028    0.000 backend_field.py:92(_is_nonneg)
>      2965    0.028    0.000    0.084    0.000 representation.py:311(__init__)
>     10231    0.024    0.000    0.193    0.000 
> double_description.py:689(add_inequality)
>     41111    0.023    0.000    0.173    0.000 misc.py:525(verbose)
>     19512    0.023    0.000    0.023    0.000 re.py:230(_compile)
>      1882    0.023    0.000    0.025    0.000 
> polynomial_ring.py:320(_element_constructor_)
>      5010    0.022    0.000    0.085    0.000 
> modules.py:112(__classcall_private__)
>       347    0.022    0.000    0.328    0.001 
> point_configuration.py:1827(contained_simplex)
>        31    0.021    0.001    4.147    0.134 
> polyhedron_partition.py:1204(refinement)
>     47132    0.020    0.000    0.020    0.000 
> number_field.py:3792(pari_polynomial)
>      1745    0.019    0.000    3.565    0.002 
> backend_field.py:214(_init_from_Hrepresentation)
>      6276    0.019    0.000    0.020    0.000 
> double_description.py:112(__init__)
>       409    0.018    0.000    0.027    0.000 {method 'inverse' of 
> 'sage.matrix.matrix2.Matrix' objects}
>      7979    0.018    0.000    0.037    0.000 fields.py:63(__contains__)
>      2092    0.018    0.000    0.747    0.000 
> double_description_inhomogeneous.py:451(_init_Vrep)
>        93    0.018    0.000    0.041    0.000 
> point_configuration.py:332(__init__)
>      4878    0.017    0.000    0.481    0.000 free_module.py:3794(span)
>      5629    0.017    0.000    0.017    0.000 {hasattr}
>      9675    0.017    0.000    0.018    0.000 free_module.py:2371(zero_vector)
>
>
>
> ┌────────────────────────────────────────────────────────────────────┐
> │ SageMath version 8.8.rc1, Release Date: 2019-06-13                 │
> │ Using Python 2.7.15. Type "help()" for help.                       │
> └────────────────────────────────────────────────────────────────────┘
> sage: from slabbe import PolyhedronPartition
> sage: from slabbe import PolyhedronExchangeTransformation as PET
> sage: from slabbe import Substitution2d
> sage: z = polygen(QQ, 'z')
> sage: K = NumberField(z**2-z-1, 'phi', embedding=RR(1.6))
> sage: phi = K.gen()
> sage: P0 = PolyhedronPartition.jeandel_rao_tilings_partition()
> sage: Gamma0 = matrix.column([(phi,0), (1,phi+3)])
> sage: fundamental_domain = polytopes.parallelotope([(phi,0), (0,phi+3)])
> sage: R0e2 = PET.toral_translation(Gamma0, vector((0,1)), fundamental_domain)
> sage: y_le_1 = [1, 0, -1]   # syntax for the inequality y <= 1
> sage:
> sage: %time P1,beta0 = R0e2.induced_partition(y_le_1, P0, 
> substitution_type='column')
> CPU times: user 12.9 s, sys: 2.62 s, total: 15.6 s
> Wall time: 1min 27s
> sage: %prun P1,beta0 = R0e2.induced_partition(y_le_1, P0, 
> substitution_type='column')
>
>          4286879 function calls (4284765 primitive calls) in 89.043 seconds
>
>    Ordered by: internal time
>
>    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
>      1388   69.712    0.050   69.712    0.050 {time.sleep}
>      1041    1.724    0.002    1.724    0.002 {posix.read}
>      4878    1.427    0.000    7.762    0.002 {method 'right_kernel' of 
> 'sage.matrix.matrix2.Matrix' objects}
>       347    1.270    0.004    1.270    0.004 {posix.forkpty}
>      9756    0.998    0.000    2.509    0.000 
> number_field.py:2955(gen_embedding)
>     19512    0.998    0.000    1.740    0.000 {method 'format' of 'str' 
> objects}
>      4184    0.671    0.000    0.845    0.000 {method 'solve_right' of 
> 'sage.matrix.matrix2.Matrix' objects}
>     43035    0.554    0.000    0.631    0.000 matrix_space.py:720(__call__)
>    111653    0.521    0.000    0.906    0.000 copy.py:66(copy)
>      1388    0.447    0.000    0.447    0.000 {select.select}
>     30669    0.424    0.000    0.551    0.000 
> matrix_space.py:103(get_matrix_class)
>      4951    0.387    0.000    0.835    0.000 free_module.py:662(__init__)
>      4184    0.320    0.000    0.390    0.000 {method 'pivot_rows' of 
> 'sage.matrix.matrix2.Matrix' objects}
>      4184    0.312    0.000    0.345    0.000 {method 'pivots' of 
> 'sage.matrix.matrix0.Matrix' objects}
>      5243    0.302    0.000    0.334    0.000 {method 'rank' of 
> 'sage.matrix.matrix0.Matrix' objects}
>    530292    0.279    0.000    0.279    0.000 {isinstance}
>     54201    0.270    0.000    0.373    0.000 
> free_module.py:973(_element_constructor_)
>     14168    0.258    0.000    0.365    0.000 sequence.py:80(Sequence)
>     30669    0.250    0.000    0.801    0.000 
> matrix_space.py:432(__classcall__)
>     13844    0.223    0.000    0.231    0.000 
> polynomial_ring.py:320(_element_constructor_)
>     19512    0.214    0.000    0.436    0.000 qqbar.py:4023(interval)
>     11962    0.212    0.000    0.617    0.000 rings.py:845(__getitem__)
>     11962    0.195    0.000    0.338    0.000 
> polynomial_ring_constructor.py:52(PolynomialRing)
>      4184    0.193    0.000    2.282    0.001 
> double_description.py:640(initial_pair)
>     54201    0.186    0.000    0.562    0.000 
> free_module.py:5584(_element_constructor_)
>      9637    0.178    0.000    0.520    0.000 
> {sage.modules.free_module_element.vector}
>     39121    0.172    0.000    0.359    0.000 homset.py:84(Hom)
>     41104    0.147    0.000    0.303    0.000 misc.py:295(cputime)
>       347    0.142    0.000    3.001    0.009 
> point_configuration.py:1829(contained_simplex)
>      8368    0.140    0.000    0.308    0.000 {method 'rows' of 
> 'sage.matrix.matrix1.Matrix' objects}
>     48780    0.137    0.000    0.137    0.000 
> sets_cat.py:974(_element_constructor_from_element_class)
>     35194    0.130    0.000    0.218    0.000 
> representation.py:1200(evaluated_on)
>     10231    0.130    0.000    0.133    0.000 
> double_description.py:313(R_by_sign)
>     41104    0.110    0.000    0.110    0.000 {resource.getrusage}
>      1882    0.108    0.000    0.210    0.000 
> number_field.py:1554(_element_constructor_)
>
>
> I do not know where these sleep calls come from??
>

I guess it's from  posix.forkpty, or related to multi-processing in
some other way.



> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sage-devel.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/618fa213-bef5-4b57-88e3-8a79c784d090%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-devel.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CAAWYfq3YP60fab3B8c0Q5%2BuKzADaSX0PVWu3ZuitON%2BNwMjZXg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to