Skip to content

Commit ea26692

Browse files
authored
Adjust some microbenmarks (#1973)
* align binary_tree * grow fft * grow soli * fixup! align binary_tree * more
1 parent 230a237 commit ea26692

File tree

8 files changed

+56
-59
lines changed

8 files changed

+56
-59
lines changed

benchmarks/sources/js/binary_trees.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function bottomUpTree(item,depth){
2828

2929

3030
var minDepth = 4;
31-
var n = 0; //arguments[0];
31+
var n = 17; //arguments[0];
3232
var maxDepth = Math.max(minDepth + 2, n);
3333
var stretchDepth = maxDepth + 1;
3434

benchmarks/sources/js/fft.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,4 +174,4 @@ function test (np) {
174174
if (Math.abs( zr) <= 1e-8 && Math.abs( zi) <= 1e-8) {} else throw "ERROR";
175175
}
176176

177-
var np = 16; for (var i = 1; i<= 16; i++) { test (np); np = np*2; }
177+
var np = 16; for (var i = 1; i<= 19; i++) { test (np); np = np*2; }

benchmarks/sources/js/raytrace.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -903,4 +903,4 @@ function renderScene(){
903903
raytracer.renderScene(scene, null, 0);
904904
}
905905

906-
for (var i = 1; i <= 100; i++) { renderScene(); };
906+
for (var i = 1; i <= 2000; i++) { renderScene(); };

benchmarks/sources/ml/binary_trees.ml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ let rec check = function
2424
let min_depth = 4
2525

2626
let max_depth =
27-
let n = try int_of_string Sys.argv.(1) with _ -> 10 in
27+
let n = try int_of_string Sys.argv.(1) with _ -> 17 in
2828
max (min_depth + 2) n
2929

3030
let stretch_depth = max_depth + 1
@@ -38,25 +38,26 @@ let () =
3838

3939
let long_lived_tree = make 0 max_depth
4040

41-
let loop_depths d =
42-
for i = 0 to ((max_depth - d) / 2) + 1 - 1 do
43-
let d = d + (i * 2) in
44-
let niter = 1 lsl (max_depth - d + min_depth) in
41+
let rec loop_depths depth max_depth =
42+
if depth <= max_depth
43+
then (
44+
let niter = 1 lsl (max_depth - depth + min_depth) in
4545
let c = ref 0 in
4646
for i = 1 to niter do
47-
c := !c + check (make i d) + check (make (-i) d)
47+
c := !c + check (make i depth) + check (make (-i) depth)
4848
done;
4949
( (*
5050
Printf.printf "%i\t trees of depth %i\t check: %i\n" (2 * niter) d !c;
51-
*) )
52-
done
51+
*) );
52+
loop_depths (depth + 2) max_depth)
5353

5454
let () =
5555
(*
5656
flush stdout;
5757
*)
58-
loop_depths min_depth;
59-
( (*
60-
Printf.printf "long lived tree of depth %i\t check: %i\n"
61-
max_depth (check long_lived_tree)
62-
*) )
58+
loop_depths min_depth max_depth
59+
(* Printf.printf
60+
"long lived tree of depth %i\t check: %i\n"
61+
max_depth
62+
(check long_lived_tree)
63+
*)

benchmarks/sources/ml/fft.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ let test np =
173173

174174
let _ =
175175
let np = ref 16 in
176-
for _ = 1 to 16 do
176+
for _ = 1 to 19 do
177177
test !np;
178178
np := !np * 2
179179
done

benchmarks/sources/ml/quicksort.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ let test_sort sort_fun size =
102102
(*print_string "failed"; print_newline()*)
103103

104104
let main () =
105-
test_sort qsort 500000;
106-
test_sort qsort2 500000
105+
test_sort qsort 2_000_000;
106+
test_sort qsort2 2_000_000
107107

108108
let _ = main ()
109109

benchmarks/sources/ml/raytrace.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,6 @@ let render_scene () =
510510
Engine.render_scene engine scene None
511511

512512
let _ =
513-
for _ = 0 to 99 do
513+
for _ = 1 to 2000 do
514514
render_scene ()
515515
done

benchmarks/sources/ml/soli.ml

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,18 @@ type peg =
1717
| Empty
1818
| Peg
1919

20-
let board =
21-
[| [| Out; Out; Out; Out; Out; Out; Out; Out; Out |]
22-
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
23-
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
24-
; [| Out; Peg; Peg; Peg; Peg; Peg; Peg; Peg; Out |]
25-
; [| Out; Peg; Peg; Peg; Empty; Peg; Peg; Peg; Out |]
26-
; [| Out; Peg; Peg; Peg; Peg; Peg; Peg; Peg; Out |]
27-
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
28-
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
29-
; [| Out; Out; Out; Out; Out; Out; Out; Out; Out |]
30-
|]
31-
32-
(*
3320
let print_peg = function
34-
Out -> print_string "."
21+
| Out -> print_string "."
3522
| Empty -> print_string " "
3623
| Peg -> print_string "$"
3724

38-
3925
let print_board board =
40-
for i=0 to 8 do
41-
for j=0 to 8 do
42-
print_peg board.(i).(j)
43-
done;
44-
print_newline()
45-
done
46-
*)
26+
for i = 0 to 8 do
27+
for j = 0 to 8 do
28+
print_peg board.(i).(j)
29+
done;
30+
print_newline ()
31+
done
4732

4833
type direction =
4934
{ dx : int
@@ -60,13 +45,9 @@ type move =
6045
; y2 : int
6146
}
6247

63-
let moves = Array.make 31 { x1 = 0; y1 = 0; x2 = 0; y2 = 0 }
64-
65-
let counter = ref 0
66-
6748
exception Found
6849

69-
let rec solve m =
50+
let rec solve board moves counter m =
7051
counter := !counter + 1;
7152
if m = 31
7253
then
@@ -75,11 +56,6 @@ let rec solve m =
7556
| _ -> false
7657
else
7758
try
78-
(*
79-
if !counter mod 500 = 0 then begin
80-
print_int !counter; print_newline()
81-
end;
82-
*)
8359
for i = 1 to 7 do
8460
for j = 1 to 7 do
8561
match board.(i).(j) with
@@ -95,15 +71,10 @@ let rec solve m =
9571
| Peg -> (
9672
match board.(i2).(j2) with
9773
| Empty ->
98-
(*
99-
print_int i; print_string ", ";
100-
print_int j; print_string ") dir ";
101-
print_int k; print_string "\n";
102-
*)
10374
board.(i).(j) <- Empty;
10475
board.(i1).(j1) <- Empty;
10576
board.(i2).(j2) <- Peg;
106-
if solve (m + 1)
77+
if solve board moves counter (m + 1)
10778
then (
10879
moves.(m) <- { x1 = i; y1 = j; x2 = i2; y2 = j2 };
10980
raise Found);
@@ -119,4 +90,29 @@ let rec solve m =
11990
false
12091
with Found -> true
12192

122-
let _ = if solve 0 then ( (*print_string "\n"; print_board board*) ) else assert false
93+
let solve () =
94+
let board =
95+
[| [| Out; Out; Out; Out; Out; Out; Out; Out; Out |]
96+
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
97+
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
98+
; [| Out; Peg; Peg; Peg; Peg; Peg; Peg; Peg; Out |]
99+
; [| Out; Peg; Peg; Peg; Empty; Peg; Peg; Peg; Out |]
100+
; [| Out; Peg; Peg; Peg; Peg; Peg; Peg; Peg; Out |]
101+
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
102+
; [| Out; Out; Out; Peg; Peg; Peg; Out; Out; Out |]
103+
; [| Out; Out; Out; Out; Out; Out; Out; Out; Out |]
104+
|]
105+
in
106+
let moves = Array.make 31 { x1 = 0; y1 = 0; x2 = 0; y2 = 0 } in
107+
let counter = ref 0 in
108+
solve board moves counter 0, board
109+
110+
let _ =
111+
for _ = 0 to 200 do
112+
let solved, board = solve () in
113+
if solved
114+
then ()
115+
else (
116+
print_string "Failed:\n";
117+
print_board board)
118+
done

0 commit comments

Comments
 (0)