Skip to content

Sims1/2 doesn't seem to work when number_of_threads() > 1 #417

@james-d-mitchell

Description

@james-d-mitchell

In v1.4.3, I am seeing:

In [1]: from libsemigroups_pybind11 import *
In [2]: p = Presentation("ab")
In [3]: p.contains_empty_word(True)
Out[3]: <monoid presentation with 2 letters, 0 rules, and length 0>
In [4]: p.rules =["aaaa", "", "ababb", "ba"]
In [5]: s = Sims1(to(p, rtype=(Presentation, list[int])))
In [6]: foo = lambda wg:  word_graph.number_of_nodes_reachable_from(wg, 0) > 32
In [7]: s.find_if(64, foo)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#0: Sims1: STARTING with 0 additional threads . . .
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#0: Sims1: ≤ 64 classes for ⟨A|R⟩ with:
#0: Sims1: |A| = 2, |R| = 2, |u| + |v| ∈ [4, 7], ∑(|u| + |v|) = 11
#1: Sims1: total              6 (cong.)   |  31,855,221 (nodes)
#1: Sims1: diff              +6 (cong.)   | +31,855,221 (nodes)
#1: Sims1: mean               5 (cong./s) |  31,819,654 (node/s)
#1: Sims1: time last s.   166ms (/cong.)  |        31ns (/node)
#1: Sims1: mean time      166ms (/cong.)  |        31ns (/node)
#1: Sims1: time          1.001s (total)   |
#1: Sims1: total             10 (cong.)   |  65,476,509 (nodes)
#1: Sims1: diff              +4 (cong.)   | +33,620,309 (nodes)
#1: Sims1: mean               4 (cong./s) |  32,637,337 (node/s)
#1: Sims1: time last s.   251ms (/cong.)  |        29ns (/node)
#1: Sims1: mean time      200ms (/cong.)  |        30ns (/node)
#1: Sims1: time          2.006s (total)   |
#0: Sims1: total             16 (cong.)   |  90,847,201 (nodes)
#0: Sims1: diff              +6 (cong.)   | +25,369,991 (nodes)
#0: Sims1: mean               5 (cong./s) |  32,966,461 (node/s)
#0: Sims1: time last s.   124ms (/cong.)  |        29ns (/node)
#0: Sims1: mean time      172ms (/cong.)  |        30ns (/node)
#0: Sims1: time          2.756s (total)   |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#0: Sims1: FINISHED!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Out[7]: <WordGraph with 64 nodes, 70 edges, & out-degree 2>
In [10]: s.number_of_threads(2)
Out[10]: <Sims1 object over <monoid presentation with 2 letters, 2 rules, and length 11> with 2 thread(s)>
In [11]: s.find_if(64, foo)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#0: Sims1: STARTING with 2 / 14 additional threads . . .
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#0: Sims1: ≤ 64 classes for ⟨A|R⟩ with:
#0: Sims1: |A| = 2, |R| = 2, |u| + |v| ∈ [4, 7], ∑(|u| + |v|) = 11
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          1.004s (total)   |
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          2.008s (total)   |
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          3.012s (total)   |
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          4.017s (total)   |
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          5.021s (total)   |
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          6.026s (total)   |
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          7.030s (total)   |
#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)
#1: Sims1: time          8.035s (total)   |
^C#1: Sims1: total              0 (cong.)   |           0 (nodes)
#1: Sims1: diff              +0 (cong.)   |          +0 (nodes)
#1: Sims1: mean               0 (cong./s) |           0 (node/s)
#1: Sims1: time last s.       - (/cong.)  |           - (/node)
#1: Sims1: mean time          - (/cong.)  |           - (/node)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions