Your task is to measure the time performance of three different implementations of matrix multiplication and compare them:
You probably need to do the following steps:
measurements.json, do not modify this file), and also a file with the results (named: results.json). The results file has to follow the following format (names has to be the ones in the measurements file without the packages): {
"performance": [
{
"impl_name": "measureMultiply",
"average": 274.45720624999996,
"cf_lb": 271.6351655689061,
"cf_ub": 273.27924693109395
},
{
"impl_name": "measureMultiply1D",
...
},
{
"impl_name": "measureMultiplyTrans",
...
}
],
"comparisons": [
{
"impl_1_name": "measureMultiply",
"impl_2_name": "measureMultiply1D",
"ratio": 0.9404346124708851,
"cf_lb": 0.9374657053490532,
"cf_ub": 0.943403519592717
},
{
"impl_1_name": "measureMultiply",
"impl_2_name": "measureMultiplyTrans",
...
},
{
"impl_1_name": "measureMultiply1D",
"impl_2_name": "measureMultiply",
...
},
{
"impl_1_name": "measureMultiply1D",
"impl_2_name": "measureMultiplyTrans",
...
},
{
"impl_1_name": "measureMultiplyTrans",
"impl_2_name": "measureMultiply",
...
},
{
"impl_1_name": "measureMultiplyTrans",
"impl_2_name": "measureMultiply1D",
...
}
]
}
The report should include the following parts:
java -version), etc.
JMH is a Java harness for building, running, and analyzing nano/micro/milli/macro benchmarks written in Java and other languages targetting the JVM.
https://github.com/openjdk/jmh
There is a plenty of tutorials, for example: