From 878d65d464852a58298d7be60789598a875b8703 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Wed, 20 Jul 2022 20:10:26 +0500 Subject: [PATCH 1/6] Add new version of fannkuchredux and a multicore version Delete old versions of fannkuchredux in the benchmarksgame directory. Add the multicore version in the multicore-numerical directory. Update dune files and also add the necessary tags required to make the benchmarks run. Update config files. --- benchmarks/benchmarksgame/dune | 23 ++- benchmarks/benchmarksgame/fannkuchredux.ml | 177 ++++++++++++------ benchmarks/benchmarksgame/fannkuchredux2.ml | 61 ------ benchmarks/multicore-numerical/dune | 7 +- .../fannkuchredux_multicore.ml | 129 +++++++++++++ multicore_parallel_navajo_run_config.json | 51 +++++ multicore_parallel_run_config.json | 23 +++ run_config.json | 13 -- run_config_byte.json | 9 - 9 files changed, 343 insertions(+), 150 deletions(-) delete mode 100644 benchmarks/benchmarksgame/fannkuchredux2.ml create mode 100644 benchmarks/multicore-numerical/fannkuchredux_multicore.ml diff --git a/benchmarks/benchmarksgame/dune b/benchmarks/benchmarksgame/dune index ae4ecea7e0..7d3b5f237e 100644 --- a/benchmarks/benchmarksgame/dune +++ b/benchmarks/benchmarksgame/dune @@ -1,8 +1,17 @@ -(executables (names binarytrees5 fannkuchredux fannkuchredux2 fasta3 fasta6 +(executables (names binarytrees5 fasta3 fasta6 knucleotide knucleotide3 mandelbrot6 nbody pidigits5 regexredux2 revcomp2 spectralnorm2) - (modes native byte) - (libraries unix str zarith)) + (modules binarytrees5 fasta3 fasta6 + knucleotide knucleotide3 mandelbrot6 nbody pidigits5 + regexredux2 revcomp2 spectralnorm2) + (modes native byte) + (libraries unix str zarith)) + +(executable (names fannkuchredux) + (modules fannkuchredux) + (modes native byte) + (libraries domainslib) + (ocamlopt_flags -noassert -unsafe)) (rule (targets input25000000.txt) @@ -15,16 +24,16 @@ (action (with-stdout-to %{targets} (run %{prog} 5_000_000 > %{targets})))) (alias (name buildbench) - (deps binarytrees5.exe fannkuchredux.exe fannkuchredux2.exe fasta3.exe - fasta6.exe knucleotide.exe knucleotide3.exe mandelbrot6.exe + (deps binarytrees5.exe fasta3.exe + fasta6.exe fannkuchredux.exe knucleotide.exe knucleotide3.exe mandelbrot6.exe nbody.exe pidigits5.exe regexredux2.exe revcomp2.exe spectralnorm2.exe input25000000.txt input5000000.txt)) (alias (name bytebench) - (deps binarytrees5.bc fannkuchredux.bc fannkuchredux2.bc fasta3.bc + (deps binarytrees5.bc fannkuchredux.bc fannkuchredux_multicore.bc fasta3.bc fasta6.bc knucleotide.bc knucleotide3.bc mandelbrot6.bc nbody.bc pidigits5.bc regexredux2.bc revcomp2.bc spectralnorm2.bc input25000000.txt input5000000.txt)) (alias (name multibench_parallel) - (deps binarytrees5.exe mandelbrot6.exe spectralnorm2.exe)) + (deps fannkuchredux_multicore.exe binarytrees5.exe mandelbrot6.exe spectralnorm2.exe)) diff --git a/benchmarks/benchmarksgame/fannkuchredux.ml b/benchmarks/benchmarksgame/fannkuchredux.ml index 565bdedd21..f8531eef20 100644 --- a/benchmarks/benchmarksgame/fannkuchredux.ml +++ b/benchmarks/benchmarksgame/fannkuchredux.ml @@ -1,66 +1,125 @@ -(* The Computer Language Benchmarks Game - https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ +(* + * The Computer Language Benchmarks Game + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ + * + * Contributed by Paolo Ribeca, August 2011 + * + * (Based on the Java version by Oleg Mazurov) + *) - from Scala version by Otto Bommer, August 2010 -*) +let n = try int_of_string Sys.argv.(1) with _ -> 7 -let fannkuch n = - begin - let perm1 = Array.make n 0 in for i = 0 to (n-1) do perm1.(i) <- i done; - let perm = Array.make n 0 in - let count = Array.make n 0 in - let flips = ref 0 - and maxflips = ref 0 - and checksum = ref 0 - and nperm = ref 0 - and r = ref n in - while !r > 0 do -(* Printf.printf "perm="; i := 0; while !i < n do Printf.printf "%d " perm1.(!i); i := !i +1; done; Printf.printf "\n"; *) - for i = 0 to n-1 do perm.(i) <- perm1.(i) done; +let workers = 32 - while !r != 1 do count.(!r-1) <- !r; r := !r - 1; done; - - flips := 0; - let k = ref perm.(0) in - while !k != 0 do - let t = ref 0 in - for i = 0 to !k / 2 do - t := perm.(i); - perm.(i) <- perm.(!k - i); - perm.(!k - i) <- !t; - done; - - k := perm.(0); - flips := !flips + 1; - done; - - maxflips := max !maxflips !flips; - checksum := !checksum + !flips * (1 - (!nperm land 1) lsl 1); - - let go = ref true in - let t = ref 0 in - while !go do - if !r == n then begin go := false; r := 0; end - else - begin - t := perm1.(0); - for i = 0 to !r - 1 do perm1.(i) <- perm1.(i+1) done; - perm1.(!r) <- !t; - - count.(!r) <- count.(!r) - 1; - if count.(!r) > 0 then go := false - else r := !r + 1; - end - done; - - nperm := !nperm + 1; +module Perm = + struct + type t = { p: int array; + pp: int array; + c: int array } + let facts = + let n = 20 in + let res = Array.make (n + 1) 1 in + for i = 1 to n do + res.(i) <- i * res.(i - 1) + done; + res + (* Setting up the permutation based on the given index *) + let setup n idx = + let res = { p = Array.init n (fun i -> i); + pp = Array.make n 1; + c = Array.make n 1 } + and idx = ref idx in + for i = n - 1 downto 0 do + let d = !idx / facts.(i) in + res.c.(i) <- d; + idx := !idx mod facts.(i); + Array.blit res.p 0 res.pp 0 (i + 1); + for j = 0 to i do + res.p.(j) <- if j + d <= i then res.pp.(j + d) else res.pp.(j + d - i - 1) + done + done; + res + (* Getting the next permutation *) + let next { p = p; c = c; _ } = + let plen = Array.length p in + let f = ref p.(1) in + p.(1) <- p.(0); + p.(0) <- !f; + let i = ref 1 in + let aug_c = ref (c.(!i) + 1) in + c.(!i) <- !aug_c; + while !aug_c > !i do + c.(!i) <- 0; + incr i; + let n = p.(1) in + p.(0) <- n; + let red_i = !i - 1 in + for j = 1 to red_i do + if plen > j+1 then begin p.(j) <- p.(j + 1); end else () done; + if plen > !i then begin + p.(!i) <- !f; + f := n; + end else (); + aug_c := c.(!i) + 1; + c.(!i) <- !aug_c + done + (* Counting the number of flips *) + let count { p = p ; pp = pp; _ } = + let f = ref p.(0) and res = ref 1 in + if p.(!f) <> 0 then begin + let len = Array.length p in + let red_len = len - 1 in + for i = 0 to red_len do pp.(i) <- p.(i) done; + while pp.(!f) <> 0 do + incr res; + let lo = ref 1 and hi = ref (!f - 1) in + while !lo < !hi do + let t = pp.(!lo) in + pp.(!lo) <- pp.(!hi); + pp.(!hi) <- t; + incr lo; + decr hi + done; + let ff = !f in + let t = pp.(ff) in + pp.(ff) <- ff; + f := t + done + end; + !res + end - (!maxflips, !checksum); - end +let fr n lo hi = + let p = Perm.setup n lo + and c = ref 0 and m = ref 0 + and red_hi = hi - 1 in + for i = lo to red_hi do let r = Perm.count p in + c := !c + r * (1 - (i land 1) lsl 1); + if r > !m then + m := r; + Perm.next p + done; + (!c, !m) -let _ = - let n = try int_of_string(Sys.argv.(1)) with _ -> 7 in - let (maxflips, checksum) = fannkuch n in - Printf.printf "%d\nPfannkuchen(%d) = %d\n" checksum n maxflips +let main s_n = + let n = s_n in + let chunk_size = Perm.facts.(n) / workers + and rem = Perm.facts.(n) mod workers in + let w = ref (Array.init workers (fun _ -> (0, 0))) in + for i = 0 to (workers-1) do + Printf.printf "%d" i; + let lo = i * chunk_size + min i rem in + let hi = lo + chunk_size + if i < rem then 1 else 0 in + !w.(i) <- fr s_n lo hi + done; + let c = ref 0 and m = ref 0 in + Array.iter + (fun (nc, nm) -> + c := !c + nc; + m := max !m nm) + !w; + Printf.printf "%d\nPfannkuchen(%d) = %d\n" !c n !m +let _ = + main n; diff --git a/benchmarks/benchmarksgame/fannkuchredux2.ml b/benchmarks/benchmarksgame/fannkuchredux2.ml deleted file mode 100644 index 6d218f0c57..0000000000 --- a/benchmarks/benchmarksgame/fannkuchredux2.ml +++ /dev/null @@ -1,61 +0,0 @@ -(* The Computer Language Benchmarks Game - https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ - - contributed by Ethan Burns -*) - - -(** Flip the front [n] pancakes of [a]. *) -let flip n (a : int array) = - for i = 0 to n / 2 do - let t = a.(i) in - let k = n - i in - a.(i) <- a.(k); - a.(k) <- t; - done - -(** Count the number of flips so that pancake 0 is at index 0. *) -let rec count c ary = - let z = ary.(0) in - if z <> 0 then begin - flip z ary; - count (c + 1) ary - end else - c - -(** Rotate the first [n] pancakes of [a]. *) -let rotate n (a : int array) = - let t = a.(0) in - let m = n - 1 in - for i = 1 to m do - a.(i - 1) <- a.(i); - done; - a.(m) <- t - -(** Call [f] on each permutation of [n] numbers in order. *) -let iter_perms n f = - let rec do_iter num perm copy f ht = - if ht = 1 then begin - for i = 0 to n - 1 do copy.(i) <- perm.(i) done; - f !num copy; - incr num; - end else - for i = 1 to ht do - do_iter num perm copy f (ht - 1); - rotate ht perm; - done - in - let perm = Array.init n (fun i -> i) in - let copy = Array.make n 0 in - let num = ref 0 in - do_iter num perm copy f n - -let _ = - let n = int_of_string Sys.argv.(1) in - let csum = ref 0 and m = ref 0 in - iter_perms n (fun num a -> - let c = count 0 a in - (* csum update from Otto Bommer's Scala ver. *) - csum := !csum + c * (1 - (num land 1) lsl 1); - if c > !m then m := c;); - Printf.printf "%d\nPfannkuchen(%d) = %d\n" !csum n !m diff --git a/benchmarks/multicore-numerical/dune b/benchmarks/multicore-numerical/dune index 6439d77296..6c285dff77 100644 --- a/benchmarks/multicore-numerical/dune +++ b/benchmarks/multicore-numerical/dune @@ -113,9 +113,14 @@ (modules evolutionary_algorithm_multicore) (libraries domainslib)) +(executable + (name fannkuchredux_multicore) + (modules fannkuchredux_multicore) + (libraries domainslib)) + (alias (name multibench_parallel) - (deps mandelbrot6_multicore.exe spectralnorm2_multicore.exe quicksort.exe + (deps fannkuchredux.exe mandelbrot6_multicore.exe spectralnorm2_multicore.exe quicksort.exe quicksort_multicore.exe binarytrees5_multicore.exe game_of_life.exe game_of_life_multicore.exe matrix_multiplication.exe matrix_multiplication_multicore.exe diff --git a/benchmarks/multicore-numerical/fannkuchredux_multicore.ml b/benchmarks/multicore-numerical/fannkuchredux_multicore.ml new file mode 100644 index 0000000000..3b94f84069 --- /dev/null +++ b/benchmarks/multicore-numerical/fannkuchredux_multicore.ml @@ -0,0 +1,129 @@ +(* + * The Computer Language Benchmarks Game + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ + * + * Contributed by Paolo Ribeca, August 2011 + * + * (Based on the Java version by Oleg Mazurov) + *) +module T = Domainslib.Task + +let workers = try int_of_string @@ Sys.argv.(1) with _ -> 10 +let n = try int_of_string Sys.argv.(2) with _ -> 7 +let num_domains = workers +let workers = 10 + +module Perm = + struct + type t = { p: int array; + pp: int array; + c: int array } + let facts = + let n = 20 in + let res = Array.make (n + 1) 1 in + for i = 1 to n do + res.(i) <- i * res.(i - 1) + done; + res + (* Setting up the permutation based on the given index *) + let setup n idx = + let res = { p = Array.init n (fun i -> i); + pp = Array.make n 1; + c = Array.make n 1 } + and idx = ref idx in + for i = n - 1 downto 0 do + let d = !idx / facts.(i) in + res.c.(i) <- d; + idx := !idx mod facts.(i); + Array.blit res.p 0 res.pp 0 (i + 1); + for j = 0 to i do + res.p.(j) <- if j + d <= i then res.pp.(j + d) else res.pp.(j + d - i - 1) + done + done; + res + (* Getting the next permutation *) + let next { p = p; c = c; _ } = + let plen = Array.length p in + let f = ref p.(1) in + p.(1) <- p.(0); + p.(0) <- !f; + let i = ref 1 in + let aug_c = ref (c.(!i) + 1) in + c.(!i) <- !aug_c; + while !aug_c > !i do + c.(!i) <- 0; + incr i; + let n = p.(1) in + p.(0) <- n; + let red_i = !i - 1 in + for j = 1 to red_i do + if plen > j+1 then begin p.(j) <- p.(j + 1); end else () + done; + if plen > !i then begin + p.(!i) <- !f; + f := n; + end else (); + aug_c := c.(!i) + 1; + c.(!i) <- !aug_c + done + (* Counting the number of flips *) + let count { p = p ; pp = pp; _ } = + let f = ref p.(0) and res = ref 1 in + if p.(!f) <> 0 then begin + let len = Array.length p in + let red_len = len - 1 in + for i = 0 to red_len do pp.(i) <- p.(i) done; + while pp.(!f) <> 0 do + incr res; + let lo = ref 1 and hi = ref (!f - 1) in + while !lo < !hi do + let t = pp.(!lo) in + pp.(!lo) <- pp.(!hi); + pp.(!hi) <- t; + incr lo; + decr hi + done; + let ff = !f in + let t = pp.(ff) in + pp.(ff) <- ff; + f := t + done + end; + !res + end + +let fr n lo hi = + let p = Perm.setup n lo + and c = ref 0 and m = ref 0 + and red_hi = hi - 1 in + for i = lo to red_hi do let r = Perm.count p in + c := !c + r * (1 - (i land 1) lsl 1); + if r > !m then + m := r; + Perm.next p + done; + (!c, !m) + +let main pool s_n = + let n = s_n in + let chunk_size = Perm.facts.(n) / workers + and rem = Perm.facts.(n) mod workers in + let w = ref (Array.init workers (fun _ -> (0, 0))) in + T.run pool (fun () -> T.parallel_for pool ~start:0 ~finish:(workers-1) ~body:(fun i -> + Printf.printf "par_iter: %d\n" i; + let lo = i * chunk_size + min i rem in + let hi = lo + chunk_size + if i < rem then 1 else 0 in + !w.(i) <- fr s_n lo hi + ) ); + let c = ref 0 and m = ref 0 in + Array.iter + (fun (nc, nm) -> + c := !c + nc; + m := max !m nm) + !w; + Printf.printf "%d\nPfannkuchen(%d) = %d\n" !c n !m + +let _ = + let pool = T.setup_pool ~num_additional_domains:(num_domains - 1) () in + main pool n; + T.teardown_pool pool diff --git a/multicore_parallel_navajo_run_config.json b/multicore_parallel_navajo_run_config.json index 151d8e450e..3f959fef79 100644 --- a/multicore_parallel_navajo_run_config.json +++ b/multicore_parallel_navajo_run_config.json @@ -178,6 +178,57 @@ } ] }, + { + "executable": "benchmarks/benchmarksgame/fannkuchredux.exe", + "name": "fannkuchredux", + "tags": [ + "macro_bench" + ], + "runs": [ + { + "params": "13", + "paramwrapper": "taskset --cpu-list 4" + } + ] + }, + { + "executable": "benchmarks/multicore-numerical/fannkuchredux_multicore.exe", + "name": "fannkuchredux_multicore", + "tags": [ + "macro_bench", + "run_in_ci" + ], + "runs": [ + { + "params": "1 13", + "paramwrapper": "taskset --cpu-list 4" + }, + { + "params": "8 13", + "paramwrapper": "taskset --cpu-list 4-11" + }, + { + "params": "16 13", + "paramwrapper": "taskset --cpu-list 4-19" + }, + { + "params": "32 13", + "paramwrapper": "taskset --cpu-list 4-35" + }, + { + "params": "64 13", + "paramwrapper": "taskset --cpu-list 4-63,68-71" + }, + { + "params": "96 13", + "paramwrapper": "taskset --cpu-list 4-63,68-103" + }, + { + "params": "120 13", + "paramwrapper": "taskset --cpu-list 4-63,68-127" + } + ] + }, { "executable": "benchmarks/multicore-numerical/matrix_multiplication.exe", "name": "matrix_multiplication", diff --git a/multicore_parallel_run_config.json b/multicore_parallel_run_config.json index ce5f69bc59..4bf1c6c0c6 100644 --- a/multicore_parallel_run_config.json +++ b/multicore_parallel_run_config.json @@ -135,6 +135,29 @@ ] }, + { + "executable": "benchmarks/benchmarksgame/fannkuchredux_multicore.exe", + "name": "mandelbrot6", + "tags": ["macro_bench"], + "runs": [ + { "params": "12", "paramwrapper": "taskset --cpu-list 2-13" } + ] + }, + { + "executable": "benchmarks/multicore-numerical/fannkuchredux_multicore.exe", + "name": "fannkuchredux_multicore", + "tags": ["macro_bench"], + "runs": [ + { "params": "1 12", "paramwrapper": "taskset --cpu-list 2-13"}, + { "params": "2 12", "paramwrapper": "taskset --cpu-list 2-13" }, + { "params": "4 12", "paramwrapper": "taskset --cpu-list 2-13" }, + { "params": "8 12", "paramwrapper": "taskset --cpu-list 2-13" }, + { "params": "12 12", "paramwrapper": "taskset --cpu-list 2-13" }, + { "params": "16 12", "paramwrapper": "taskset --cpu-list 2-13,16-27" }, + { "params": "20 12", "paramwrapper": "taskset --cpu-list 2-13,16-27" }, + { "params": "24 12", "paramwrapper": "taskset --cpu-list 2-13,16-27" } + ] + }, { "executable": "benchmarks/multicore-numerical/matrix_multiplication.exe", "name": "matrix_multiplication", diff --git a/run_config.json b/run_config.json index 254e704c6f..1e033e716a 100644 --- a/run_config.json +++ b/run_config.json @@ -303,19 +303,6 @@ } ] }, - { - "executable": "benchmarks/benchmarksgame/fannkuchredux2.exe", - "name": "fannkuchredux2", - "tags": [ - "10s_100s", - "macro_bench" - ], - "runs": [ - { - "params": "12" - } - ] - }, { "executable": "benchmarks/benchmarksgame/fannkuchredux.exe", "name": "fannkuchredux", diff --git a/run_config_byte.json b/run_config_byte.json index ff6f90982f..57ca55885e 100644 --- a/run_config_byte.json +++ b/run_config_byte.json @@ -91,15 +91,6 @@ } ] }, - { - "executable": "benchmarks/benchmarksgame/fannkuchredux2.bc", - "name": "fannkuchredux2.bc", - "runs": [ - { - "params": "12" - } - ] - }, { "executable": "benchmarks/benchmarksgame/fasta3.bc", "name": "fasta3.bc", From 0e095b1a7a3c5874eac21285a0c535f39da47a1f Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Wed, 20 Jul 2022 21:19:21 +0500 Subject: [PATCH 2/6] Fix fannkuchredux stanza --- benchmarks/benchmarksgame/dune | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/benchmarksgame/dune b/benchmarks/benchmarksgame/dune index 7d3b5f237e..80134c3006 100644 --- a/benchmarks/benchmarksgame/dune +++ b/benchmarks/benchmarksgame/dune @@ -7,7 +7,7 @@ (modes native byte) (libraries unix str zarith)) -(executable (names fannkuchredux) +(executable (name fannkuchredux) (modules fannkuchredux) (modes native byte) (libraries domainslib) From e99e5b3795e3ee1b6681ac9df9b1af663e3fadc5 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Wed, 20 Jul 2022 21:51:11 +0500 Subject: [PATCH 3/6] Remove redundant domainslib dependency in fannkuchredux dune stanza --- benchmarks/benchmarksgame/dune | 1 - 1 file changed, 1 deletion(-) diff --git a/benchmarks/benchmarksgame/dune b/benchmarks/benchmarksgame/dune index 80134c3006..c6f59f08d1 100644 --- a/benchmarks/benchmarksgame/dune +++ b/benchmarks/benchmarksgame/dune @@ -10,7 +10,6 @@ (executable (name fannkuchredux) (modules fannkuchredux) (modes native byte) - (libraries domainslib) (ocamlopt_flags -noassert -unsafe)) (rule From d92abec16ad63c2d5ea2c3d4295fd8c919ff89e0 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Wed, 20 Jul 2022 22:47:12 +0500 Subject: [PATCH 4/6] Fix multicore numerical dune file typo --- benchmarks/multicore-numerical/dune | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/multicore-numerical/dune b/benchmarks/multicore-numerical/dune index 6c285dff77..869ee99fee 100644 --- a/benchmarks/multicore-numerical/dune +++ b/benchmarks/multicore-numerical/dune @@ -120,7 +120,7 @@ (alias (name multibench_parallel) - (deps fannkuchredux.exe mandelbrot6_multicore.exe spectralnorm2_multicore.exe quicksort.exe + (deps fannkuchredux_multicore.exe mandelbrot6_multicore.exe spectralnorm2_multicore.exe quicksort.exe quicksort_multicore.exe binarytrees5_multicore.exe game_of_life.exe game_of_life_multicore.exe matrix_multiplication.exe matrix_multiplication_multicore.exe From b5301d283112dd74512896e6a4971c9e8707303f Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Thu, 21 Jul 2022 14:05:16 +0500 Subject: [PATCH 5/6] Remove fannkuchredux_multicore from benchmarksgame dune file --- benchmarks/benchmarksgame/dune | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/benchmarksgame/dune b/benchmarks/benchmarksgame/dune index c6f59f08d1..f20cc07945 100644 --- a/benchmarks/benchmarksgame/dune +++ b/benchmarks/benchmarksgame/dune @@ -29,10 +29,10 @@ spectralnorm2.exe input25000000.txt input5000000.txt)) (alias (name bytebench) - (deps binarytrees5.bc fannkuchredux.bc fannkuchredux_multicore.bc fasta3.bc + (deps binarytrees5.bc fannkuchredux.bc fasta3.bc fasta6.bc knucleotide.bc knucleotide3.bc mandelbrot6.bc nbody.bc pidigits5.bc regexredux2.bc revcomp2.bc spectralnorm2.bc input25000000.txt input5000000.txt)) (alias (name multibench_parallel) - (deps fannkuchredux_multicore.exe binarytrees5.exe mandelbrot6.exe spectralnorm2.exe)) + (deps binarytrees5.exe mandelbrot6.exe spectralnorm2.exe)) From 926f639c01ea6edfc7829f9c9a98f79119513de7 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Mon, 22 Aug 2022 14:29:46 +0500 Subject: [PATCH 6/6] Add hacky compilation flags to the multicore version --- benchmarks/multicore-numerical/dune | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/benchmarks/multicore-numerical/dune b/benchmarks/multicore-numerical/dune index 869ee99fee..fbcdb763d4 100644 --- a/benchmarks/multicore-numerical/dune +++ b/benchmarks/multicore-numerical/dune @@ -116,7 +116,8 @@ (executable (name fannkuchredux_multicore) (modules fannkuchredux_multicore) - (libraries domainslib)) + (libraries domainslib) + (ocamlopt_flags -noassert -unsafe)) (alias (name multibench_parallel)