-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.gradle
132 lines (106 loc) · 6 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
plugins {
// TODO actually need this plugin?
id 'com.github.johnrengelman.shadow' version '5.2.0' apply false
id "me.champeau.gradle.jmh" version "0.5.0" apply true
id 'java-library' apply true
// to find unused dependencies
//id "ca.cutterslade.analyze" version "1.4.1" apply true
}
apply from: 'gradle/dependencies.gradle'
apply from: 'gradle/version.gradle'
group 'org.florentind'
version '1.0-SNAPSHOT'
description = 'Benchmark GraphBLAS in Java'
repositories {
mavenLocal()
mavenCentral()
gradlePluginPortal()
// for pregel-bootstrap
flatDir {
dirs 'libs'
}
}
dependencies {
annotationProcessor group: 'org.neo4j.gds', name: 'annotations', version: ver.gds
annotationProcessor group: 'org.neo4j.gds', name: 'config-generator', version: ver.gds
annotationProcessor group: 'org.immutables', name: 'builder', version: ver.'immutables'
annotationProcessor group: 'org.immutables', name: 'value', version: ver.'immutables'
annotationProcessor group: 'org.neo4j', name: 'annotations', version: ver.'neo4j'
compileOnly group: 'org.immutables', name: 'builder', version: ver.'immutables'
compileOnly group: 'org.immutables', name: 'value-annotations', version: ver.'immutables'
compileOnly group: 'org.jetbrains', name: 'annotations', version: ver.'jetbrains-annotations'
compileOnly group: 'org.ejml', name: 'ejml-all', version: ver.ejml
// TODO: this is locally installed !
implementation group: 'com.github.fabianmurariu', name: 'graphblas-package', version: ver.'graphblas-package'
implementation group: 'org.jgrapht', name: 'jgrapht-core', version: ver.jgrapht
implementation group: 'org.jgrapht', name: 'jgrapht-opt', version: ver.jgrapht
implementation group: 'org.neo4j.gds', name: 'core', version: ver.gds
implementation group: 'org.neo4j.gds', name: 'proc', version: ver.gds
implementation group: 'org.neo4j.gds', name: 'proc-embeddings', version: ver.gds
implementation group: 'org.neo4j.gds', name: 'alpha-embeddings', version: ver.gds
// TODO: find out why this is needed for the benchmarks
implementation group: 'org.neo4j.gds', name: 'test-utils', version: ver.gds
// jmh dependencies
// TODO: try out which ones can be removed
jmhAnnotationProcessor group: 'org.neo4j.gds', name: 'annotations', version: ver.gds
jmhAnnotationProcessor group: 'org.immutables', name: 'value', version: ver.'immutables'
jmhCompileOnly group: 'org.immutables', name: 'builder', version: ver.'immutables'
jmhCompileOnly group: 'org.immutables', name: 'value-annotations', version: ver.'immutables'
jmhImplementation group: 'org.neo4j.gds', name: 'proc', version: ver.gds
jmhImplementation group: 'org.neo4j.gds', name: 'proc-embeddings', version: ver.gds
jmhImplementation group: 'org.neo4j.gds', name: 'alpha-algo', version: ver.gds
jmhImplementation group: 'org.neo4j.gds', name: 'alpha-embeddings', version: ver.gds
// jmhImplementation group: 'org.neo4j.gds', name: 'core', version: ver.gds
//jmhImplementation group: 'org.neo4j.gds', name: 'neo4j-kernel-adapter', version: ver.gds
// jmhCompile name: 'pregel-bootstrap'
jmhCompile group: 'org.neo4j.gds', name: 'algo', version: ver.gds
jmh group: 'com.github.rvesse', name: 'airline', version: ver.'airline'
jmh group: 'net.jodah', name: 'failsafe', version: ver.'failsafe'
jmh group: 'commons-configuration', name: 'commons-configuration', version: '1.10'
jmh("org.openjdk.jmh:jmh-core:${ver.jmh}")
jmh("org.openjdk.jmh:jmh-generator-annprocess:${ver.jmh}")
testCompile (
platform(dep.junit5bom),
dep.junit5jupiter
)
testImplementation group: 'org.ejml', name: 'ejml-all', version: ver.'ejml'
testCompileOnly group: 'org.immutables', name: 'value-annotations', version: ver.'immutables'
testCompileOnly group: 'org.immutables', name: 'builder', version: ver.'immutables'
testCompileOnly group: 'org.jetbrains', name: 'annotations', version: ver.'jetbrains-annotations'
testCompileOnly group: 'org.neo4j.gds', name: 'test-utils', version: ver.gds
testCompileOnly group: 'org.neo4j.gds', name: 'algo', version: ver.gds
// pregel/jmh tests (should be moved to a seperate jmhTest folder?!)
testCompile name: 'pregel-bootstrap'
}
test {
useJUnitPlatform {
includeEngines 'junit-jupiter'
}
}
jmhJar {
manifest {
attributes([
'Implementation-Version': ver.'neo4j'
])
}
}
jmh {
zip64 = true
forceGC = true
// regExp which benchmarks to run
// ejmlSparseBfsLevel
include = ['.*jGraphTBfsLevel*']
exclude = ['.*GraphImpl.*']
// TODO actually avoid duplicate dependencies
duplicateClassesStrategy = 'exclude'
// ! increase -Xmx and set -Xms to equal value on server if needed .. f.i. "-Xmx32g"
jvmArgs = ["-Xms32g", "-Xmx32g", "-XX:+UseSuperWord"]
}
task simpleBenchmark(type:JavaExec) {
classpath = sourceSets.jmh.runtimeClasspath
String datasetDir = project.hasProperty("datasetDir") ? getProperty("datasetDir") : ""
environment "GRB_JAVA_DATASETS", datasetDir
maxHeapSize="32G"
minHeapSize="32G"
main = project.hasProperty("mainClass") ? getProperty("mainClass") : "NULL"
}