Skip to content

Commit a5112d1

Browse files
authored
Merge pull request #285 from renaissance-benchmarks/topic/release-notes
Release announcement for version 0.12.0
2 parents 523617e + 2033129 commit a5112d1

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
layout: mainpost
3+
projectname: Renaissance Suite
4+
title: "Renaissance 0.12 Released"
5+
author: Lubomír Bulej
6+
---
7+
8+
We are pleased to announce a new release of the Renaissance benchmark
9+
suite.
10+
11+
Apart from a number of internal cleanups, most changes in this release
12+
focused on improving compatibility with modern platforms. Most notably,
13+
we have moved away from Scala 2.11, Scala 2.12, and Spark 2 towards
14+
Scala 2.12, Scala 2.13 and Spark 3. Some benchmarks were unaffected,
15+
some needed just dependency updates, and some needed a bit more work.
16+
17+
The workloads, as implemented by the benchmarks, are largely unchanged,
18+
but the code being executed as a result of the benchmark workload may
19+
differ substantially from previous version of Renaissance, mainly due to
20+
substantial dependency updates in some of the benchmarks. See the
21+
sections below for more details.
22+
23+
On the platform compatibility front, the suite supports JDK8 and JDK11
24+
on Linux, MacOS X, and Windows. While most benchmarks also run on more
25+
recent JDK versions, some of them have dependencies that limit their
26+
compatibility to a particular range of JDK versions.
27+
28+
29+
We welcome any comments and contributions.
30+
31+
Happy benchmarking!
32+
33+
34+
### Harness changes
35+
36+
The harness now automatically excludes benchmarks that are known to be
37+
incompatible with the JVM on which it executes. This can be disabled
38+
using the `--no-jvm-check` option on the command line.
39+
40+
The harness now allows using a specific base directory for scratch
41+
files. The current directory is still the default, but it can be changed
42+
using the `--scratch-base` option on the command line. For debugging
43+
purposes, the `--keep-scratch` option disables deleting the scratch
44+
directories when the harness terminates.
45+
46+
Finally, to make experimentation with benchmarks a bit easier, the
47+
harness allows overriding benchmark parameters using the `--override`
48+
command line option.
49+
50+
51+
### Spark benchmark changes
52+
53+
The Spark benchmarks moved from Spark 2.0.0 on Scala 2.11.8 to Spark
54+
3.1.2 on Scala 2.12.14, which is a major change in the underlying
55+
libraries. In addition to various cleanups and compatibility fixes for
56+
Windows, there have been several changes that may influence the overall
57+
performance.
58+
59+
- The number of threads used by the Spark local executor is now
60+
[limited](https://github.com/renaissance-benchmarks/renaissance/pull/284)
61+
to reflect the parallelism of a particular workload, which prevents
62+
scalability issues on huge machines with tens of cores. The limit is
63+
configured using the `spark_thread_limit` parameter. - All workloads
64+
use the default partitioning of input data and limit the storage level
65+
of input data to memory only.
66+
- `als` and `movie-lens` also limit the storage level of intermediate
67+
data sets to memory only to avoid benchmarking storage IO.
68+
- `log-regression` now avoids repeated conversion from an RDD to
69+
DataFrame.
70+
- `naive-bayes` now uses ML classes from the `org.apache.spark.ml`
71+
package because classes from the `org.apache.spark.mllib` package only
72+
served as wrappers, introducing unnecessary conversion from RDD to
73+
DataFrame.
74+
75+
76+
### Benchmarks using Scala 2.13.6
77+
78+
The following lists Java bencharks with a simple Scala wrapper or Scala
79+
benchmarks that have been updated to use Scala 2.13.6, along with
80+
notable changes in some of them:
81+
82+
- `akka-uct` (previously Scala 2.11.8)
83+
- Updated `akka-actor` dependency (2.3.11 -> 2.6.12)
84+
- Very minor benchmark update for the 2.6.x API.
85+
- `db-shootout` (Java)
86+
- Maximum supported JVM version set to 11.
87+
- `dotty` (previously Scala 2.12.8)
88+
- Updated Dotty compiler (0.12.0 -> 3.0.0)
89+
- Compiles `scalap` sources instead of "type-system puzzles".
90+
- Adds hash-based validation of generated Tasty files.
91+
- `fj-kmeans`, `future-genetic` (Java)
92+
- `mnemonics`, `par-mnemonics`, `scrabble` (Java)
93+
- `rx-scrabble` (Java)
94+
- `scala-kmeans` (previously Scala 2.12.8)
95+
- `scala-doku` (previously Scala 2.11.7)
96+
- Bundled `cafesat` dependency updated (0.01 -> (0.01-28-gd0edeaa)[https://github.com/renaissance-benchmarks/dependency-cafesat/tree/renaissance/export]) and cleaned up for Scala 2.13
97+
- Bundled `scala-smtlib` dependency updated (0.1 -> (0.2.1-52-ga71d6b0)[https://github.com/renaissance-benchmarks/dependency-scala-smtlib/tree/renaissance/export]) and cleaned up for Scala 2.13
98+
99+
100+
### Benchmarks using Scala 2.12.14
101+
102+
The following lists benchmarks that use Scala 2.12.14, along with
103+
notable changes in some them:
104+
105+
- `finagle-chirper`, `finagle-http` (previously Scala 2.11.8)
106+
- `neo4j-analytics` (previously Scala 2.12.8)
107+
- Benchmark ported to Neo4J 4.x API
108+
- Updated `org.neo4j.neo4j` dependency (3.5.12 -> 4.2.4)
109+
- Updated `net.liftweb.lift-json` dependency (3.2.0 -> 3.4.3)
110+
- Requires JVM versions between 11 and 15, inclusive (Neo4J requirements).
111+
- `philosophers`, `scala-stm-bench7` (previously Scala 2.12.3)
112+
- `reactors` (previously Scala 2.11.8)
113+
- `io.reactors.reactors-core` updated (0.7 -> (0.9-e605e145-60-g9838414)[https://github.com/renaissance-benchmarks/dependency-reactors/tree/renaissance/export]) and cleaned up for Scala 2.12
114+
- Spark workloads (previously Scala 2.11.8)
115+
- See **Spark benchmark changes** above.

0 commit comments

Comments
 (0)