Skip to content

Commit 37c216c

Browse files
authored
Merge branch 'deephaven:main' into column-iteration-benchmarks
2 parents 39ff499 + 17ae7de commit 37c216c

File tree

18 files changed

+64
-6
lines changed

18 files changed

+64
-6
lines changed

src/it/java/io/deephaven/benchmark/tests/standard/by/MedianByTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ void medianBy0Groups() {
2424
}
2525

2626
@Test
27+
@Tag("Iterate")
2728
void medianBy1Group() {
2829
runner.setScaleFactors(12, 11);
2930
var q = "source.median_by(by=['key1'])";

src/it/java/io/deephaven/benchmark/tests/standard/file/ParquetColTypeTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ void readOneStringCol() {
4141

4242
@Test
4343
@Order(5)
44+
@Tag("Iterate")
4445
void writeOneBigDecimalCol() {
4546
runner.setScaleFactors(5, 5);
4647
runner.runParquetWriteTest("ParquetWrite- 1 Big Decimal Col -Static", "NONE", "bigDec10K");
4748
}
4849

4950
@Test
5051
@Order(6)
52+
@Tag("Iterate")
5153
void readOneBigDecimalCol() {
5254
runner.setScaleFactors(5, 5);
5355
runner.runParquetReadTest("ParquetRead- 1 Big Decimal Col -Static");

src/it/java/io/deephaven/benchmark/tests/standard/file/ParquetMultiColTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ void setup() {
1919

2020
@Test
2121
@Order(1)
22+
@Tag("Iterate")
2223
void writeMultiColSnappy() {
2324
runner.runParquetWriteTest("ParquetWrite- Snappy Multi Col -Static", "SNAPPY", usedColumns);
2425
}
@@ -31,6 +32,7 @@ void readMultiColSnappy() {
3132

3233
@Test
3334
@Order(3)
35+
@Tag("Iterate")
3436
void writeMultiColZstd() {
3537
runner.runParquetWriteTest("ParquetWrite- Zstd Multi Col -Static", "ZSTD", usedColumns);
3638
}
@@ -43,6 +45,7 @@ void readMultiColZstd() {
4345

4446
@Test
4547
@Order(5)
48+
@Tag("Iterate")
4649
void writeMultiColLzo() {
4750
runner.runParquetWriteTest("ParquetWrite- Lzo Multi Col -Static", "LZO", usedColumns);
4851
}

src/it/java/io/deephaven/benchmark/tests/standard/formula/InlineFormulaTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,34 +22,39 @@ void setup(int rowFactor, int staticFactor, int incFactor) {
2222
}
2323

2424
@Test
25+
@Tag("Iterate")
2526
void select1Calc1ColFormula() {
2627
setup(6, 22, 8);
2728
var q = "source.select(['num2',${calcs}]).sum_by()".replace("${calcs}", calc1col1);
2829
runner.test("Select-Sum- 1 Calc Using 1 Col", 1, q, "num2");
2930
}
3031

3132
@Test
33+
@Tag("Iterate")
3234
void select1Calc2ColsFormula() {
3335
setup(6, 14, 7);
3436
var q = "source.select(['num1','num2',${calcs}]).sum_by()".replace("${calcs}", calc1cols2);
3537
runner.test("Select-Sum- 1 Calc Using 2 Cols", 1, q, "num1", "num2");
3638
}
3739

3840
@Test
41+
@Tag("Iterate")
3942
void select2Calcs2ColsFormula() {
4043
setup(6, 12, 6);
4144
var q = "source.select(['num1','num2',${calcs}]).sum_by()".replace("${calcs}", calc2cols2);
4245
runner.test("Select-Sum- 2 Calcs Using 2 Cols", 1, q, "num1", "num2");
4346
}
4447

4548
@Test
49+
@Tag("Iterate")
4650
void update1Calc1ColsFormula() {
4751
setup(6, 32, 20);
4852
var q = "source.update([${calcs}]).sum_by()".replace("${calcs}", calc1col1);
4953
runner.test("Update-Sum- 1 Calc Using 1 Col", 1, q, "num2");
5054
}
5155

5256
@Test
57+
@Tag("Iterate")
5358
void update1Calc2ColsFormula() {
5459
setup(6, 22, 16);
5560
var q = "source.update([${calcs}]).sum_by()".replace("${calcs}", calc1cols2);
@@ -86,20 +91,23 @@ void view2Calcs2ColsFormula() {
8691
}
8792

8893
@Test
94+
@Tag("Iterate")
8995
void updateView1Calc1ColFormula() {
9096
setup(6, 37, 35);
9197
var q = "source.update_view([${calcs}]).sum_by()".replace("${calcs}", calc1col1);
9298
runner.test("UpdateView-Sum- 1 Calc Using 1 Col", 1, q, "num2");
9399
}
94100

95101
@Test
102+
@Tag("Iterate")
96103
void updateView1Calc2ColsFormula() {
97104
setup(6, 22, 20);
98105
var q = "source.update_view([${calcs}]).sum_by()".replace("${calcs}", calc1cols2);
99106
runner.test("UpdateView-Sum- 1 Calc Using 2 Cols", 1, q, "num1", "num2");
100107
}
101108

102109
@Test
110+
@Tag("Iterate")
103111
void updateView2Calcs2ColsFormula() {
104112
setup(6, 17, 17);
105113
var q = "source.update_view([${calcs}]).sum_by()".replace("${calcs}", calc2cols2);

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTickTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class EmMaxTickTest {
1616
final Setup setup = new Setup(runner);
1717

1818
@Test
19+
@Tag("Iterate")
1920
void emMaxTick0Group1Col() {
2021
setup.factors(5, 14, 12);
2122
setup.emTick0Groups("emmax_tick");

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTimeTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class EmMaxTimeTest {
1515
final Setup setup = new Setup(runner);
1616

1717
@Test
18+
@Tag("Iterate")
1819
void emMaxTime0Group1Col() {
1920
setup.factors(5, 10, 8);
2021
setup.emTime0Groups("emmax_time");

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTickTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class EmMinTickTest {
1515
final Setup setup = new Setup(runner);
1616

1717
@Test
18+
@Tag("Iterate")
1819
void emMinTick0Group1Col() {
1920
setup.factors(6, 14, 11);
2021
setup.emTick0Groups("emmin_tick");

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTimeTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class EmMinTimeTest {
1616
final Setup setup = new Setup(runner);
1717

1818
@Test
19+
@Tag("Iterate")
1920
void emMinTime0Group1Col() {
2021
setup.factors(5, 10, 8);
2122
setup.emTime0Groups("emmin_time");

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTickTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class EmStdTickTest {
1616
final Setup setup = new Setup(runner);
1717

1818
@Test
19+
@Tag("Iterate")
1920
void emStdTick0Group1Col() {
2021
setup.factors(6, 18, 10);
2122
setup.emTick0Groups("emstd_tick");

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTimeTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class EmStdTimeTest {
1515
final Setup setup = new Setup(runner);
1616

1717
@Test
18+
@Tag("Iterate")
1819
void emStdTime0Group1Col() {
1920
setup.factors(5, 12, 10);
2021
setup.emTime0Groups("emstd_time");

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTickTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class EmsTickTest {
1515
final Setup setup = new Setup(runner);
1616

1717
@Test
18+
@Tag("Iterate")
1819
void emsTick0Group1Col() {
1920
setup.factors(6, 18, 14);
2021
setup.emTick0Groups("ems_tick");

src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTimeTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class EmsTimeTest {
1515
final Setup setup = new Setup(runner);
1616

1717
@Test
18+
@Tag("Iterate")
1819
void emsTime0Group1Col() {
1920
setup.factors(5, 11, 8);
2021
setup.emTime0Groups("ems_time");

src/it/java/io/deephaven/benchmark/tests/standard/where/WhereInTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* Standard tests for the whereIn table operation. Filters rows of data from the source table where the rows match
99
* column values in the filter table.
1010
*/
11+
@Tag("Iterate")
1112
public class WhereInTest {
1213
final StandardTestRunner runner = new StandardTestRunner(this);
1314

@@ -28,7 +29,6 @@ void setup() {
2829
}
2930

3031
@Test
31-
@Tag("Iterate")
3232
void whereIn1Filter() {
3333
runner.setScaleFactors(135, 100);
3434
var q = "source.where_in(where_filter, cols=['key1 = set1'])";

src/it/java/io/deephaven/benchmark/tests/standard/where/WhereNotInTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* Standard tests for the whereNotIn table operation. Filters rows of data from the source table where the rows match
99
* column values in the filter table. Note: These benchmarks do the converse of the ones in WhereInTest
1010
*/
11+
@Tag("Iterate")
1112
public class WhereNotInTest {
1213
final StandardTestRunner runner = new StandardTestRunner(this);
1314

@@ -28,7 +29,6 @@ void setup() {
2829
}
2930

3031
@Test
31-
@Tag("Iterate")
3232
void whereNotIn1Filter() {
3333
runner.setScaleFactors(80, 75);
3434
var q = "source.where_not_in(where_filter, cols=['key1 = set1'])";

src/it/java/io/deephaven/benchmark/tests/standard/where/WhereOneOfTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* Standard tests for the whereOneOf table operation. Filters rows of data from the source table where the rows match
99
* column values in the filter table.
1010
*/
11+
@Tag("Iterate")
1112
public class WhereOneOfTest {
1213
final StandardTestRunner runner = new StandardTestRunner(this);
1314

@@ -18,7 +19,6 @@ void setup() {
1819
}
1920

2021
@Test
21-
@Tag("Iterate")
2222
void whereOneOf1Filter() {
2323
runner.setScaleFactors(365, 300);
2424
var q = """

src/it/java/io/deephaven/benchmark/tests/standard/where/WhereTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
/**
88
* Standard tests for the where table operation. Filters rows of data from the source table.
99
*/
10+
@Tag("Iterate")
1011
public class WhereTest {
1112
final StandardTestRunner runner = new StandardTestRunner(this);
1213

@@ -17,7 +18,6 @@ void setup() {
1718
}
1819

1920
@Test
20-
@Tag("Iterate")
2121
void where1Filter() {
2222
runner.setScaleFactors(330, 310);
2323
var q = """

src/main/resources/io/deephaven/benchmark/run/profile/benchmark_tables.dh.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def normalize_name(name):
1818
# Get the latest GCloud run_ids for the benchmark category up to max_runs
1919
def get_remote_children(parent_uri, category, max_runs=10):
2020
run_ids = []
21-
search_uri = parent_uri + '?delimiter=/&prefix=' + category + '/' + '&max-keys=100000'
21+
search_uri = parent_uri + '?delimiter=/&prefix=' + category + '/' + '&max-keys=10000'
2222
with urlopen(search_uri) as r:
2323
text = r.read().decode()
2424
for run_id in re.findall('<Prefix>{}/([^/><]+)/</Prefix>'.format(category), text, re.MULTILINE):
@@ -45,6 +45,7 @@ def get_children(storage_uri, category, max_runs):
4545
def get_run_paths(storage_uri, category, actor_filter, set_filter, max_sets):
4646
set_matcher = re.compile(set_filter)
4747
actor_matcher = re.compile(actor_filter)
48+
run_matcher = re.compile('run-[0-9A-Za-z]+')
4849
benchmark_sets = []
4950
for actor in get_children(storage_uri, category, 1000):
5051
if actor_matcher.match(actor):
@@ -56,7 +57,8 @@ def get_run_paths(storage_uri, category, actor_filter, set_filter, max_sets):
5657
benchmark_runs = []
5758
for set_path in benchmark_sets:
5859
for run_id in get_children(storage_uri, category + '/' + set_path, 1000):
59-
benchmark_runs.append(set_path + '/' + run_id)
60+
if run_matcher.match(run_id):
61+
benchmark_runs.append(set_path + '/' + run_id)
6062
return benchmark_runs
6163

6264
# Cache an HTTP url into a local directory and return the local path
@@ -152,6 +154,7 @@ def get_default_set_filter(category):
152154
print('Running:', {'storage_uri':storage_uri,'category':category,'max_sets':max_sets,'history_runs':history_runs,
153155
'actor_filter':actor_filter,'set_filter':set_filter,'platform_props':platform_props,'metric_props':metric_props})
154156

157+
155158
run_ids = get_run_paths(storage_uri, category, actor_filter, set_filter, max_sets)
156159
bench_results = merge_run_tables(storage_uri, run_ids, category, 'benchmark-results.csv', convert_result)
157160
bench_metrics = merge_run_tables(storage_uri, run_ids, category, 'benchmark-metrics.csv', convert_metric)
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from deephaven.updateby import rolling_group_tick
2+
from urllib.request import urlopen; import os
3+
4+
score_threshold = 10.0
5+
6+
root = 'file:///nfs' if os.path.exists('/nfs/deephaven-benchmark') else 'https://storage.googleapis.com'
7+
with urlopen(root + '/deephaven-benchmark/benchmark_tables.dh.py') as r:
8+
benchmark_storage_uri_arg = root + '/deephaven-benchmark'
9+
benchmark_max_sets_arg = 100
10+
benchmark_category_arg ='nightly'
11+
exec(r.read().decode(), globals(), locals())
12+
13+
def count_threshold_hits(scores) -> int:
14+
scores = array('d', scores)
15+
hits = 0
16+
for score in scores:
17+
if score <= -score_threshold or score >= score_threshold:
18+
hits = hits + 1
19+
return hits
20+
21+
op_day5 = rolling_group_tick(cols=['op_rates=op_rate','set_op_rates=set_op_rates'], rev_ticks=6, fwd_ticks=-1)
22+
scores = bench_results_sets.sort_descending(['benchmark_name','set_id']) \
23+
.update_by(ops=[op_day5], by="benchmark_name") \
24+
.where(['op_rates.size() > 2']) \
25+
.update(['set_op_rates=(long[])merge_arrays(`long`,set_op_rates)','score=zscore(op_rate, op_rates)',
26+
'var5d=rstd(op_rates)']) \
27+
.group_by(['benchmark_name']) \
28+
.update(['op_rate=avg(op_rate)','var5d=avg(var5d)','score_min=min(score)','score_max=max(score)',
29+
'score_avg=avg(score)','hits=count_threshold_hits(score)']) \
30+
.view(['Benchmark=benchmark_name','Rate=op_rate','Var5d=var5d','ScoreMin=score_min',"ScoreMax=score_max",
31+
'ScoreAvg=score_avg','Hits=hits'
32+
])
33+

0 commit comments

Comments
 (0)