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

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions