Skip to content

Commit

Permalink
upd. benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
Sasha Demin committed Jan 12, 2024
1 parent 20c8f99 commit 27b8e65
Show file tree
Hide file tree
Showing 16 changed files with 517 additions and 76 deletions.
50 changes: 43 additions & 7 deletions benchmark/benchmark_systems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ function get_benchmark_suite(id)
benchmark_set_6()
elseif id == 7
benchmark_set_7()
elseif id == 8
benchmark_set_8()
end
end

Expand Down Expand Up @@ -71,7 +73,11 @@ function benchmark_set_1()
("reimer 6", Groebner.reimern(6, k=ground_field)),
("reimer 7", Groebner.reimern(7, k=ground_field)),
("reimer 8", Groebner.reimern(8, k=ground_field)),
("reimer 9", Groebner.reimern(9, k=ground_field))
("reimer 9", Groebner.reimern(9, k=ground_field)),
("chandra 11", Groebner.chandran(11, k=ground_field)),
("chandra 12", Groebner.chandran(12, k=ground_field)),
("chandra 13", Groebner.chandran(13, k=ground_field)),
("chandra 14", Groebner.chandran(14, k=ground_field))
]

(name="Integers modulo 2^30 + 3", field=ground_field, systems=systems)
Expand All @@ -98,13 +104,19 @@ function benchmark_set_2()
("noon 8", Groebner.noonn(8, k=ground_field)),
("noon 9", Groebner.noonn(9, k=ground_field)),
("noon 10", Groebner.noonn(10, k=ground_field)),
("noon 11", Groebner.noonn(11, k=ground_field)),
("henrion 5", Groebner.henrion5(k=ground_field)),
("henrion 6", Groebner.henrion6(k=ground_field)),
("henrion 7", Groebner.henrion7(k=ground_field)),
("henrion 8", Groebner.henrion8(k=ground_field)),
("reimer 6", Groebner.reimern(6, k=ground_field)),
("reimer 7", Groebner.reimern(7, k=ground_field)),
("reimer 8", Groebner.reimern(8, k=ground_field)),
("reimer 9", Groebner.reimern(9, k=ground_field))
("reimer 9", Groebner.reimern(9, k=ground_field)),
("chandra 11", Groebner.chandran(11, k=ground_field)),
("chandra 12", Groebner.chandran(12, k=ground_field)),
("chandra 13", Groebner.chandran(13, k=ground_field)),
("chandra 14", Groebner.chandran(14, k=ground_field))
]

(name="Integers modulo 1031", field=ground_field, systems=systems)
Expand All @@ -129,9 +141,11 @@ function benchmark_set_3()
("reimer 6", Groebner.reimern(6, k=ground_field)),
("reimer 7", Groebner.reimern(7, k=ground_field)),
("reimer 8", Groebner.reimern(8, k=ground_field)),
("chandra 4", Groebner.chandran(4, k=ground_field, ordering=:degrevlex)),
("chandra 5", Groebner.chandran(5, k=ground_field, ordering=:degrevlex)),
("chandra 6", Groebner.chandran(6, k=ground_field, ordering=:degrevlex)),
("chandra 9", Groebner.chandran(9, k=ground_field, ordering=:degrevlex)),
("chandra 10", Groebner.chandran(10, k=ground_field, ordering=:degrevlex)),
("chandra 11", Groebner.chandran(11, k=ground_field, ordering=:degrevlex)),
("chandra 12", Groebner.chandran(12, k=ground_field, ordering=:degrevlex)),
("chandra 13", Groebner.chandran(13, k=ground_field, ordering=:degrevlex)),
("reimer 7", Groebner.reimern(7, k=ground_field)),
("reimer 8", Groebner.reimern(8, k=ground_field)),
("ipp", Groebner.ipp(k=ground_field, tol=0.0, ordering=:degrevlex))
Expand Down Expand Up @@ -175,14 +189,36 @@ end
function benchmark_set_7()
ground_field = AbstractAlgebra.QQ
systems = [
("chandra 5", Groebner.chandran(5, ordering=:degrevlex, k=ground_field)),
("chandra 6", Groebner.chandran(6, ordering=:degrevlex, k=ground_field)),
("chandra 7", Groebner.chandran(7, ordering=:degrevlex, k=ground_field)),
("chandra 8", Groebner.chandran(8, ordering=:degrevlex, k=ground_field)),
("chandra 9", Groebner.chandran(9, ordering=:degrevlex, k=ground_field)),
("chandra 10", Groebner.chandran(10, ordering=:degrevlex, k=ground_field)),
("chandra 11", Groebner.chandran(11, ordering=:degrevlex, k=ground_field)),
("chandra 12", Groebner.chandran(12, ordering=:degrevlex, k=ground_field)),
("chandra 13", Groebner.chandran(13, ordering=:degrevlex, k=ground_field)),
("chandra 14", Groebner.chandran(14, ordering=:degrevlex, k=ground_field)),
("boon", Groebner.boon(ordering=:degrevlex, k=ground_field)),
("rps10", Groebner.rps10(ordering=:degrevlex, k=ground_field)),
("ipp", Groebner.ipp(ordering=:degrevlex, k=ground_field))
]

(name="HC", field=ground_field, systems=systems)
end

function benchmark_set_8()
ground_field = AbstractAlgebra.GF(2^30 + 3)
systems = [
("chandra 5", Groebner.chandran(5, ordering=:degrevlex, k=ground_field)),
("chandra 6", Groebner.chandran(6, ordering=:degrevlex, k=ground_field)),
("chandra 7", Groebner.chandran(7, ordering=:degrevlex, k=ground_field)),
("chandra 8", Groebner.chandran(8, ordering=:degrevlex, k=ground_field)),
("chandra 9", Groebner.chandran(9, ordering=:degrevlex, k=ground_field)),
("chandra 10", Groebner.chandran(10, ordering=:degrevlex, k=ground_field)),
("chandra 11", Groebner.chandran(11, ordering=:degrevlex, k=ground_field)),
("chandra 12", Groebner.chandran(12, ordering=:degrevlex, k=ground_field)),
("chandra 13", Groebner.chandran(13, ordering=:degrevlex, k=ground_field)),
("chandra 14", Groebner.chandran(14, ordering=:degrevlex, k=ground_field))
]

(name="HC modulo 2^30 + 3", field=ground_field, systems=systems)
end
2 changes: 1 addition & 1 deletion benchmark/generate/benchmark_generators.jl
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ function generate_benchmark_source_for_maple(
println(buf, "with(Groebner):")
println(buf, "with(PolynomialIdeals):")
println(buf, "kernelopts(numcpus=1);")
system_repr = join(map(s -> "\t\t" * s, map(repr, system)), ",\n")
system_repr = replace(join(map(s -> "\t\t" * s, map(repr, system)), ",\n"), "//" => "/")
vars_repr = join(map(string, gens(ring)), ", ")
println(buf, "")
println(buf, "runtime := 2^1000:")
Expand Down
6 changes: 3 additions & 3 deletions benchmark/one_script_to_run_them_all.jl
Original file line number Diff line number Diff line change
Expand Up @@ -877,15 +877,15 @@ end
function check_args(args)
backend = args["backend"]
@assert backend in ("groebner", "singular", "maple", "openf4", "msolve", "ALL")
if backend == "openf4" && args["suite"] in [3]
if backend == "openf4" && args["suite"] in [3, 7]
throw("Running benchmarks over the rationals is not possible for openf4")
end
if backend == "msolve" && args["suite"] in [3] && args["validate"] != "no"
if backend == "msolve" && args["suite"] in [3, 7] && args["validate"] != "no"
throw(
"Validating results for msolve over the rationals is not possible. Use command line option --validate=no"
)
end
if backend == "learn_apply" && args in [3]
if backend == "learn_apply" && args in [3, 7]
throw("Cannot learn & apply over the rationals")
end
end
Expand Down
44 changes: 44 additions & 0 deletions benchmark/results/benchmark_result_8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Benchmark results

2024-01-12T09:17:58.879

Benchmarked backends: Any["groebner", "maple", "msolve", "openf4", "singular"]

Benchmark suite: HC modulo 2^30 + 3

- Workers: 4
- Timeout: 1000 s
- Aggregated over: 1 runs

**All timings in seconds.**

|Model|groebner|maple|msolve|openf4|singular|
|:----|---|---|---|---|---|
|chandra 5|0.00|0.01|0.02|0.01|0.00|
|chandra 6|0.00|0.01|0.02|0.03|0.00|
|chandra 7|0.00|0.01|0.03|0.03|0.01|
|chandra 8|0.01|0.02|0.04|0.08|0.06|
|chandra 9|0.04|0.05|0.08|0.56|0.40|
|chandra 10|0.32|0.16|0.20|1.70|2.62|
|chandra 11|0.87|0.81|0.95|9.92|23.09|
|chandra 12|4.65|4.55|5.16|71.29|183.02|
|chandra 13|32.91|26.50|33.15|503.61| - |

*Benchmarking environment:*

* Total RAM (GiB): 188
* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
* Julia version: 1.9.2

Versions of the dependencies:

* Primes : 0.5.5
* TimerOutputs : 0.5.23
* PrecompileTools : 1.2.0
* MultivariatePolynomials : 0.5.3
* Combinatorics : 1.0.2
* AbstractAlgebra : 0.34.7
* Nemo : 0.38.3
* Atomix : 0.1.0
* ExprTools : 0.1.10
* PrettyTables : 2.3.1
50 changes: 28 additions & 22 deletions benchmark/results/groebner/benchmark_result_4.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
## Benchmark results

2024-01-12T06:08:17.235
2024-01-12T08:37:44.375

Benchmarked backend: groebner

Benchmark suite: SIAN modulo 2^30 + 3

- Workers: 16
- Timeout: 5000 s
- Timeout: 1000 s
- Aggregated over: 1 runs

**All timings in seconds.**
Expand All @@ -16,44 +16,50 @@ Benchmark suite: SIAN modulo 2^30 + 3
|:----|---|
|Biohydrogenation|0.00|
|Biohydrogenation_with_weights|0.01|
|ChemicalReactionNetwork|0.33|
|ChemicalReactionNetwork_with_weights|0.51|
|Cholera|65.40|
|Cholera_with_weights|69.96|
|COVID_m1|0.65|
|COVID_m1_with_weights|0.19|
|ChemicalReactionNetwork|0.38|
|ChemicalReactionNetwork_with_weights|0.55|
|Cholera|52.40|
|Cholera_with_weights|57.69|
|DAISY_ex3|0.00|
|DAISY_ex3_with_weights|0.00|
|DAISY_mamil3|0.00|
|DAISY_mamil3_with_weights|0.00|
|DAISY_mamil4|0.32|
|DAISY_mamil4_with_weights|0.34|
|DAISY_mamil4_with_weights|0.31|
|Goodwin| - |
|Goodwin_with_weights|223.73|
|HIV|0.01|
|HIV2|3.35|
|HIV2_with_weights|2.58|
|HIV_with_weights|0.01|
|HIV2|3.14|
|HIV2_with_weights|2.16|
|HIV_with_weights|0.03|
|LV|0.00|
|LV_with_weights|0.00|
|Lipolysis|0.00|
|Lipolysis_with_weights|0.00|
|NFkB|1629.72|
|NFkB_with_weights|559.35|
|NFkB| - |
|NFkB_with_weights|285.44|
|OralGlucose|0.00|
|OralGlucose_with_weights|0.00|
|Pharm| - |
|Pharm_with_weights|1922.79|
|Pharm_with_weights| - |
|SEIR|0.00|
|SEIR2|0.01|
|SEIR2_with_weights|0.05|
|SEIR_with_weights|0.00|
|SIRSForced|0.76|
|SIRSForced_with_weights|0.20|
|SEIR2| - |
|SEIR2_with_weights|0.03|
|SEIRP| - |
|SEIRP_with_weights|34.90|
|SEIR_with_weights| - |
|SIRSForced|0.72|
|SIRSForced_with_weights|0.27|
|SIR_R0|0.00|
|SIR_R0_with_weights|0.00|
|SlowFast|0.00|
|SIR_R0_with_weights|0.02|
|SlowFast| - |
|SlowFast_with_weights|0.00|
|Treatment|0.01|
|Treatment| - |
|Treatment_with_weights|0.03|
|Tumor|0.05|
|Tumor_with_weights|0.21|
|Tumor_with_weights|0.18|

*Benchmarking environment:*

Expand Down
46 changes: 46 additions & 0 deletions benchmark/results/groebner/benchmark_result_7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
## Benchmark results

2024-01-12T09:04:15.474

Benchmarked backend: groebner

Benchmark suite: HC

- Workers: 4
- Timeout: 1200 s
- Aggregated over: 1 runs

**All timings in seconds.**

|Model|Total, s|
|:----|---|
|boon|0.01|
|chandra 5|0.01|
|chandra 6|0.04|
|chandra 7|0.22|
|chandra 8|0.44|
|chandra 9|2.52|
|chandra 10|5.07|
|chandra 11|17.69|
|chandra 12|108.19|
|ipp|185.73|
|rps10| - |

*Benchmarking environment:*

* Total RAM (GiB): 188
* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
* Julia version: 1.9.2

Versions of the dependencies:

* Primes : 0.5.5
* TimerOutputs : 0.5.23
* PrecompileTools : 1.2.0
* MultivariatePolynomials : 0.5.3
* Combinatorics : 1.0.2
* AbstractAlgebra : 0.34.7
* Nemo : 0.38.3
* Atomix : 0.1.0
* ExprTools : 0.1.10
* PrettyTables : 2.3.1
44 changes: 44 additions & 0 deletions benchmark/results/groebner/benchmark_result_8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Benchmark results

2024-01-12T08:50:04.619

Benchmarked backend: groebner

Benchmark suite: HC modulo 2^30 + 3

- Workers: 4
- Timeout: 1000 s
- Aggregated over: 1 runs

**All timings in seconds.**

|Model|Total, s|
|:----|---|
|chandra 5|0.00|
|chandra 6|0.00|
|chandra 7|0.00|
|chandra 8|0.01|
|chandra 9|0.04|
|chandra 10|0.32|
|chandra 11|0.87|
|chandra 12|4.65|
|chandra 13|32.91|

*Benchmarking environment:*

* Total RAM (GiB): 188
* Processor: Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz
* Julia version: 1.9.2

Versions of the dependencies:

* Primes : 0.5.5
* TimerOutputs : 0.5.23
* PrecompileTools : 1.2.0
* MultivariatePolynomials : 0.5.3
* Combinatorics : 1.0.2
* AbstractAlgebra : 0.34.7
* Nemo : 0.38.3
* Atomix : 0.1.0
* ExprTools : 0.1.10
* PrettyTables : 2.3.1
Loading

0 comments on commit 27b8e65

Please sign in to comment.