From 91033f5cae6797cf1c057a4609c5279f7700a82a Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Fri, 2 Dec 2022 11:29:28 -0600 Subject: [PATCH 01/29] initial commit --- perf/specjbb/build.xml | 45 +++++++++++++++++++++++++++++++++ perf/specjbb/getSpecjbbSuite.sh | 6 +++++ 2 files changed, 51 insertions(+) create mode 100644 perf/specjbb/build.xml create mode 100644 perf/specjbb/getSpecjbbSuite.sh diff --git a/perf/specjbb/build.xml b/perf/specjbb/build.xml new file mode 100644 index 0000000000..0fe890fb2b --- /dev/null +++ b/perf/specjbb/build.xml @@ -0,0 +1,45 @@ + + + + + + + Specjbb suite + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/perf/specjbb/getSpecjbbSuite.sh b/perf/specjbb/getSpecjbbSuite.sh new file mode 100644 index 0000000000..2e38734c02 --- /dev/null +++ b/perf/specjbb/getSpecjbbSuite.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + + +echo "HELLO THERE!!!" + +echo "The value of FOO is... $FOO" From 9edb5b6b3c31787eb7d56587bb56efa557de82d8 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Fri, 2 Dec 2022 17:26:31 -0600 Subject: [PATCH 02/29] complete build config for specjbb --- perf/specjbb/build.xml | 27 +++++++++-- perf/specjbb/getSpecjbbSuite.sh | 82 ++++++++++++++++++++++++++++++++- 2 files changed, 104 insertions(+), 5 deletions(-) diff --git a/perf/specjbb/build.xml b/perf/specjbb/build.xml index 0fe890fb2b..0a5509f55d 100644 --- a/perf/specjbb/build.xml +++ b/perf/specjbb/build.xml @@ -27,10 +27,31 @@ - - + + + + + + + + + + + + + + - + + + + + + + + + + diff --git a/perf/specjbb/getSpecjbbSuite.sh b/perf/specjbb/getSpecjbbSuite.sh index 2e38734c02..ebff563ba9 100644 --- a/perf/specjbb/getSpecjbbSuite.sh +++ b/perf/specjbb/getSpecjbbSuite.sh @@ -1,6 +1,84 @@ #!/usr/bin/env bash -echo "HELLO THERE!!!" +SUCCESS=0 +ERROR=1 + +exists() { + local specjbb_dir=$1 + return $(test -f "${specjbb_dir}/${SPECJBB_JAR}") +} + +isRunnable() { + local specjbb_dir=$1 + #result=$(${JAVA_BIN} -jar ${specjbb_dir}/${SPECJBB_JAR} -v > /dev/null 2>&1 | grep -q "SPECjbb2015") > /dev/null 2>&1 + result=$(${JAVA_BIN} -jar ${specjbb_dir}/${SPECJBB_JAR} -v | grep -q "SPECjbb2015") > /dev/null 2>&1 + return $result +} + +dirIsValid(){ + local specjbb_dir=$1 + + if exists $specjbb_dir; then + if isRunnable $specjbb_dir; then + return $SUCCESS + fi + fi + + return $ERROR +} + +dstIsValid(){ + echo "##### Validating destination suite" + return $(dirIsValid $SPECJBB_DEST) +} + +srcIsValid(){ + echo "##### Validating source suite" + return $(dirIsValid $SPECJBB_SRC) +} + +syncSrcAndDst(){ + echo "##### Syncing destination with source" + rsync -a $SPECJBB_SRC/ $SPECJBB_DEST +} + +succeed(){ + echo "##### SUCCESS" + exit $SUCCESS +} + +fail(){ + echo "##### FAIL" + exit $ERROR +} + +main(){ + if dstIsValid; then + succeed + fi + + echo "##### Destination suite is not valid" + + if srcIsValid; then + syncSrcAndDst + if dstIsValid; then + succeed + fi + else + echo "##### Source suite is not valid" + fi + + fail +} + +printInput(){ + echo "++ SPECJBB_SRC ${SPECJBB_SRC}" + echo "++ SPECJBB_DEST ${SPECJBB_DEST}" + echo "++ SPECJBB_JAR ${SPECJBB_JAR}" + echo "++ JAVA_BIN ${JAVA_BIN}" +} + +printInput +main -echo "The value of FOO is... $FOO" From f260e08cd1e8ae78599794929f2f3b14397c7732 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 13 Dec 2022 10:33:59 -0600 Subject: [PATCH 03/29] add run scripts --- .../run/options/specjbb-multijvm-simple.sh | 18 +++++ perf/specjbb/run/run_multi.sh | 78 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 perf/specjbb/run/options/specjbb-multijvm-simple.sh create mode 100755 perf/specjbb/run/run_multi.sh diff --git a/perf/specjbb/run/options/specjbb-multijvm-simple.sh b/perf/specjbb/run/options/specjbb-multijvm-simple.sh new file mode 100644 index 0000000000..2e526a2e08 --- /dev/null +++ b/perf/specjbb/run/options/specjbb-multijvm-simple.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +export GROUP_COUNT=1 +export TI_JVM_COUNT=1 +export NUM_OF_RUNS=1 + +export SPEC_OPTS_C="-Dspecjbb.group.count=$GROUP_COUNT -Dspecjbb.txi.pergroup.count=$TI_JVM_COUNT" +export SPEC_OPTS_TI="" +export SPEC_OPTS_BE="" + +export JAVA_OPTS_C="-Xms2g -Xmx2g -Xmn1536m -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:CICompilerCount=4" +export JAVA_OPTS_TI="${JAVA_OPTS_C}" +export JAVA_OPTS_BE="-Xms4g -Xmx4g -Xmn3g -XX:+UseParallelGC -XX:ParallelGCThreads=4 -XX:-UseAdaptiveSizePolicy" + +export MODE_ARGS_C="" +export MODE_ARGS_TI="" +export MODE_ARGS_BE="" + diff --git a/perf/specjbb/run/run_multi.sh b/perf/specjbb/run/run_multi.sh new file mode 100755 index 0000000000..5b210976d5 --- /dev/null +++ b/perf/specjbb/run/run_multi.sh @@ -0,0 +1,78 @@ +#!/bin/bash + + +echo "Backend opts: $JAVA_OPTS_BE" +echo "Number of runs: ${NUM_OF_RUNS}" +echo "Results dir: ${RESULTS_DIR}" + +for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do + + # Create result directory + temp="${RESULTS_DIR%\"}" + temp="${temp#\"}" + timestamp=$(date '+%y-%m-%d_%H%M%S') + result="${temp}/${timestamp}" + mkdir -pv $result + + + # Copy current config to the result directory + cp -r $SPECJBB_CONFIG $result + + cd $result + + echo "Run $n: $timestamp" + echo "Launching SPECjbb2015 in MultiJVM mode..." + echo + + echo "Start Controller JVM" + $JAVA $JAVA_OPTS_C $SPEC_OPTS_C -jar $SPECJBB_JAR -m MULTICONTROLLER $MODE_ARGS_C 2>controller.log > controller.out & + + CTRL_PID=$! + echo "Controller PID = $CTRL_PID" + + sleep 3 + + for ((gnum=1; $gnum<$GROUP_COUNT+1; gnum=$gnum+1)); do + + GROUPID=Group$gnum + echo -e "\nStarting JVMs from $GROUPID:" + + for ((jnum=1; $jnum<$TI_JVM_COUNT+1; jnum=$jnum+1)); do + + JVMID=txiJVM$jnum + TI_NAME=$GROUPID.TxInjector.$JVMID + + echo " Start $TI_NAME" + $JAVA $JAVA_OPTS_TI $SPEC_OPTS_TI -jar $SPECJBB_JAR -m TXINJECTOR -G=$GROUPID -J=$JVMID $MODE_ARGS_TI > $TI_NAME.log 2>&1 & + echo -e "\t$TI_NAME PID = $!" + sleep 1 + done + + JVMID=beJVM + BE_NAME=$GROUPID.Backend.$JVMID + + #TODO + JAVA_OPTS_BE_WITH_GC_LOG="$JAVA_OPTS_BE -Xlog:gc*:file=${BE_NAME}_gc.log" + echo " Start $BE_NAME" + $JAVA $JAVA_OPTS_BE_WITH_GC_LOG $SPEC_OPTS_BE -jar $SPECJBB_JAR -m BACKEND -G=$GROUPID -J=$JVMID $MODE_ARGS_BE > $BE_NAME.log 2>&1 & + echo -e "\t$BE_NAME PID = $!" + sleep 1 + + done + + echo + echo "SPECjbb2015 is running..." + echo "Please monitor $result/controller.out for progress" + + wait $CTRL_PID + echo + echo "Controller has stopped" + + echo "SPECjbb2015 has finished" + echo + + cd $WORKING_DIR + +done + +exit 0 From 70e3c94f367a6684ce5fd51dc6f2216bef196da1 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 13 Dec 2022 10:35:32 -0600 Subject: [PATCH 04/29] move build script and update locations in build file --- perf/specjbb/build.xml | 12 ++++++------ perf/specjbb/{ => build}/getSpecjbbSuite.sh | 0 2 files changed, 6 insertions(+), 6 deletions(-) rename perf/specjbb/{ => build}/getSpecjbbSuite.sh (100%) diff --git a/perf/specjbb/build.xml b/perf/specjbb/build.xml index 0a5509f55d..15d4a39e3a 100644 --- a/perf/specjbb/build.xml +++ b/perf/specjbb/build.xml @@ -29,10 +29,10 @@ - - + + - + @@ -41,7 +41,7 @@ - + @@ -55,8 +55,8 @@ - - + + diff --git a/perf/specjbb/getSpecjbbSuite.sh b/perf/specjbb/build/getSpecjbbSuite.sh similarity index 100% rename from perf/specjbb/getSpecjbbSuite.sh rename to perf/specjbb/build/getSpecjbbSuite.sh From b18ffb317fc706e95ad1a05b5ff7fe204aa79dd7 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 13 Dec 2022 10:36:59 -0600 Subject: [PATCH 05/29] add playlist file for specjbb --- perf/specjbb/playlist.xml | 28 ++++++++++++++++++++++++++++ perf/specjbb/testenv.mk | 10 ++++++++++ 2 files changed, 38 insertions(+) create mode 100644 perf/specjbb/playlist.xml create mode 100644 perf/specjbb/testenv.mk diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml new file mode 100644 index 0000000000..74bced7133 --- /dev/null +++ b/perf/specjbb/playlist.xml @@ -0,0 +1,28 @@ + + + + testenv.mk + + specjbb-multijvm-simple + + source $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) + + extended + + + perf + + + diff --git a/perf/specjbb/testenv.mk b/perf/specjbb/testenv.mk new file mode 100644 index 0000000000..b6d290d763 --- /dev/null +++ b/perf/specjbb/testenv.mk @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +SPECJBB_BUILD=$(JVM_TEST_ROOT)/perf/specjbb + +export JAVA=$(JAVA_COMMAND) +export SPECJBB_JAR=$(SPECJBB_BUILD)/suite/specjbb2015.jar +export SPECJBB_CONFIG=$(SPECJBB_BUILD)/suite/config +export RUN_SCRIPTS=$(SPECJBB_BUILD)/run +export RUN_OPTIONS=$(SPECJBB_BUILD)/run/options +export RESULTS_DIR=$(REPORTDIR) From 69fb268878646e2779953c0395dd12ff6b5b81a9 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 13 Dec 2022 11:38:08 -0600 Subject: [PATCH 06/29] remove comment --- perf/specjbb/playlist.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index 74bced7133..832e6d8369 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -16,7 +16,6 @@ testenv.mk specjbb-multijvm-simple - source $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) extended From 9e8cef204c60cebe38e5fbb9003e86245d114a3d Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 13 Dec 2022 11:38:56 -0600 Subject: [PATCH 07/29] remove quotes from JAVA env var --- perf/specjbb/run/run_multi.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/perf/specjbb/run/run_multi.sh b/perf/specjbb/run/run_multi.sh index 5b210976d5..7460dd28c6 100755 --- a/perf/specjbb/run/run_multi.sh +++ b/perf/specjbb/run/run_multi.sh @@ -24,6 +24,8 @@ for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do echo "Launching SPECjbb2015 in MultiJVM mode..." echo + JAVA="${JAVA%\"}" + JAVA="${JAVA#\"}" echo "Start Controller JVM" $JAVA $JAVA_OPTS_C $SPEC_OPTS_C -jar $SPECJBB_JAR -m MULTICONTROLLER $MODE_ARGS_C 2>controller.log > controller.out & From 90dd9fa93807d910c74cd096bd5d392ec36f4128 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Mon, 23 Jan 2023 16:46:33 -0600 Subject: [PATCH 08/29] move test env make file into run dir --- perf/specjbb/playlist.xml | 2 +- perf/specjbb/{ => run}/testenv.mk | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename perf/specjbb/{ => run}/testenv.mk (100%) diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index 832e6d8369..c55c6211a8 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -13,7 +13,7 @@ # limitations under the License. --> - testenv.mk + run/testenv.mk specjbb-multijvm-simple source $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) diff --git a/perf/specjbb/testenv.mk b/perf/specjbb/run/testenv.mk similarity index 100% rename from perf/specjbb/testenv.mk rename to perf/specjbb/run/testenv.mk From 22205ea7e45cb3e8bcf8f3ec64c1e05eb36b9bef Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Wed, 25 Jan 2023 14:13:23 -0600 Subject: [PATCH 09/29] update perf readme to include specjbb --- perf/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/perf/README.md b/perf/README.md index b36c4584b2..6471bf0d53 100644 --- a/perf/README.md +++ b/perf/README.md @@ -49,4 +49,7 @@ Liberty benchmarks from https://github.com/OpenLiberty - including liberty-dt7-s #### renaissance Renaissance benchmarks from https://github.com/renaissance-benchmarks/renaissance - including renaissance-akka-uct, renaissance-als, renaissance-chi-square, renaissance-db-shootout, renaissance-dec-tree, renaissance-finagle-chirper, renaissance-finagle-http, renaissance-fj-kmeans, renaissance-future-genetic, renaissance-gauss-mix, renaissance-log-regression, renaissance-mnemonics, renaissance-movie-lens, renaissance-naive-bayes, renaissance-par-mnemonics, renaissance-philosophers and renaissance-scala-kmeans +#### specjbb [licence required] +SPECjbb 2015 benchmark from https://www.spec.org/jbb2015/ + Additional benchmarks are being reviewed for addition and if you wish to include more, please comment in the open performance benchmarks [issue 1112](https://github.com/adoptium/aqa-tests/issues/1112). From 33ab2aa6fe4996a32fa8dad9dc937f3fc691c9ef Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Wed, 25 Jan 2023 18:04:02 -0600 Subject: [PATCH 10/29] add a readme for the specjbb benchmark --- perf/specjbb/README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 perf/specjbb/README.md diff --git a/perf/specjbb/README.md b/perf/specjbb/README.md new file mode 100644 index 0000000000..44d6fa05a4 --- /dev/null +++ b/perf/specjbb/README.md @@ -0,0 +1,34 @@ + + + +## SPECjbb 2015 + +SPECjbb is a Java Client/Server performance testing benchmark. +Please visit its product page for more information, including a user guide: https://www.spec.org/jbb2015/ + + +## Prerequisites +Since SPECjbb requires a license to run, this aqa-test config requires that a licensed copy of the benchmark already exists on the machine that you are running on. + +## Setup + +Set the `SPECJBB_SRC` environment variable to the absolute path of your SPECjbb benchmark directory +``` +export SPECJBB_SRC=/Users/aqa-tester/SPECjbb2015-1.03 +``` + +## Run + +The configuration currently includes one group, `extended`, and that group contains one test, `specjbb-multijvm-simple`. You can use the following commands to run it: +``` +make _testList TESTLIST=specjbb-multijvm-simple +``` \ No newline at end of file From 611148e365a5730b65886f5c62e69c0b49698d3c Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 31 Jan 2023 18:25:25 -0600 Subject: [PATCH 11/29] fix formatting for xml files --- perf/specjbb/build.xml | 42 +++++++++++++++++++-------------------- perf/specjbb/playlist.xml | 18 ++++++++--------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/perf/specjbb/build.xml b/perf/specjbb/build.xml index 15d4a39e3a..1b770ad4de 100644 --- a/perf/specjbb/build.xml +++ b/perf/specjbb/build.xml @@ -15,19 +15,19 @@ --> - - Specjbb suite + + Specjbb suite - - - - - - - + + + + + + + + + - - @@ -42,8 +42,8 @@ - - + + @@ -51,16 +51,16 @@ - - - + + + - - + + - - - + + + diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index c55c6211a8..e2f4aaaac3 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -14,14 +14,14 @@ --> run/testenv.mk - - specjbb-multijvm-simple + + specjbb-multijvm-simple source $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) - - extended - - - perf - - + + extended + + + perf + + From 4a1324d7b8afeedc5a6e3aae54d50bcad3284f69 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 31 Jan 2023 18:48:26 -0600 Subject: [PATCH 12/29] clean up shell script comments --- perf/specjbb/build/getSpecjbbSuite.sh | 1 - perf/specjbb/run/run_multi.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/perf/specjbb/build/getSpecjbbSuite.sh b/perf/specjbb/build/getSpecjbbSuite.sh index ebff563ba9..585a766adb 100644 --- a/perf/specjbb/build/getSpecjbbSuite.sh +++ b/perf/specjbb/build/getSpecjbbSuite.sh @@ -11,7 +11,6 @@ exists() { isRunnable() { local specjbb_dir=$1 - #result=$(${JAVA_BIN} -jar ${specjbb_dir}/${SPECJBB_JAR} -v > /dev/null 2>&1 | grep -q "SPECjbb2015") > /dev/null 2>&1 result=$(${JAVA_BIN} -jar ${specjbb_dir}/${SPECJBB_JAR} -v | grep -q "SPECjbb2015") > /dev/null 2>&1 return $result } diff --git a/perf/specjbb/run/run_multi.sh b/perf/specjbb/run/run_multi.sh index 7460dd28c6..5c2c04a7cd 100755 --- a/perf/specjbb/run/run_multi.sh +++ b/perf/specjbb/run/run_multi.sh @@ -53,7 +53,7 @@ for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do JVMID=beJVM BE_NAME=$GROUPID.Backend.$JVMID - #TODO + # Add GC logging to the backend's JVM options JAVA_OPTS_BE_WITH_GC_LOG="$JAVA_OPTS_BE -Xlog:gc*:file=${BE_NAME}_gc.log" echo " Start $BE_NAME" $JAVA $JAVA_OPTS_BE_WITH_GC_LOG $SPEC_OPTS_BE -jar $SPECJBB_JAR -m BACKEND -G=$GROUPID -J=$JVMID $MODE_ARGS_BE > $BE_NAME.log 2>&1 & From 80595548725225ad45297fb4a7d70ba32113dcd2 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Wed, 1 Feb 2023 15:56:42 -0600 Subject: [PATCH 13/29] remove unnessasary step of checking current dst since the build dir is always new --- perf/specjbb/build/getSpecjbbSuite.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/perf/specjbb/build/getSpecjbbSuite.sh b/perf/specjbb/build/getSpecjbbSuite.sh index 585a766adb..0d6294bd08 100644 --- a/perf/specjbb/build/getSpecjbbSuite.sh +++ b/perf/specjbb/build/getSpecjbbSuite.sh @@ -53,12 +53,6 @@ fail(){ } main(){ - if dstIsValid; then - succeed - fi - - echo "##### Destination suite is not valid" - if srcIsValid; then syncSrcAndDst if dstIsValid; then From a8666dbb9c831507203efa0e672d01c8f1860619 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Wed, 1 Feb 2023 17:03:53 -0600 Subject: [PATCH 14/29] change rsync command to cp since we always start with a clean build dir --- perf/specjbb/build/getSpecjbbSuite.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/perf/specjbb/build/getSpecjbbSuite.sh b/perf/specjbb/build/getSpecjbbSuite.sh index 0d6294bd08..4910f4078e 100644 --- a/perf/specjbb/build/getSpecjbbSuite.sh +++ b/perf/specjbb/build/getSpecjbbSuite.sh @@ -37,9 +37,9 @@ srcIsValid(){ return $(dirIsValid $SPECJBB_SRC) } -syncSrcAndDst(){ - echo "##### Syncing destination with source" - rsync -a $SPECJBB_SRC/ $SPECJBB_DEST +copySrcToDst(){ + echo "##### Copying contents of source SPECjbb dir to destination SPECjbb dir" + cp -a $SPECJBB_SRC/. $SPECJBB_DEST } succeed(){ @@ -54,7 +54,7 @@ fail(){ main(){ if srcIsValid; then - syncSrcAndDst + copySrcToDst if dstIsValid; then succeed fi From 46dce7961f8039e0e9598857e67f8800440b071d Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Wed, 1 Feb 2023 17:20:04 -0600 Subject: [PATCH 15/29] change SPEC_OPTS to SPECJBB_OPTS --- perf/specjbb/run/options/specjbb-multijvm-simple.sh | 6 +++--- perf/specjbb/run/run_multi.sh | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/perf/specjbb/run/options/specjbb-multijvm-simple.sh b/perf/specjbb/run/options/specjbb-multijvm-simple.sh index 2e526a2e08..5bf6181744 100644 --- a/perf/specjbb/run/options/specjbb-multijvm-simple.sh +++ b/perf/specjbb/run/options/specjbb-multijvm-simple.sh @@ -4,9 +4,9 @@ export GROUP_COUNT=1 export TI_JVM_COUNT=1 export NUM_OF_RUNS=1 -export SPEC_OPTS_C="-Dspecjbb.group.count=$GROUP_COUNT -Dspecjbb.txi.pergroup.count=$TI_JVM_COUNT" -export SPEC_OPTS_TI="" -export SPEC_OPTS_BE="" +export SPECJBB_OPTS_C="-Dspecjbb.group.count=$GROUP_COUNT -Dspecjbb.txi.pergroup.count=$TI_JVM_COUNT" +export SPECJBB_OPTS_TI="" +export SPECJBB_OPTS_BE="" export JAVA_OPTS_C="-Xms2g -Xmx2g -Xmn1536m -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:CICompilerCount=4" export JAVA_OPTS_TI="${JAVA_OPTS_C}" diff --git a/perf/specjbb/run/run_multi.sh b/perf/specjbb/run/run_multi.sh index 5c2c04a7cd..51b7ddc169 100755 --- a/perf/specjbb/run/run_multi.sh +++ b/perf/specjbb/run/run_multi.sh @@ -27,7 +27,7 @@ for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do JAVA="${JAVA%\"}" JAVA="${JAVA#\"}" echo "Start Controller JVM" - $JAVA $JAVA_OPTS_C $SPEC_OPTS_C -jar $SPECJBB_JAR -m MULTICONTROLLER $MODE_ARGS_C 2>controller.log > controller.out & + $JAVA $JAVA_OPTS_C $SPECJBB_OPTS_C -jar $SPECJBB_JAR -m MULTICONTROLLER $MODE_ARGS_C 2>controller.log > controller.out & CTRL_PID=$! echo "Controller PID = $CTRL_PID" @@ -45,7 +45,7 @@ for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do TI_NAME=$GROUPID.TxInjector.$JVMID echo " Start $TI_NAME" - $JAVA $JAVA_OPTS_TI $SPEC_OPTS_TI -jar $SPECJBB_JAR -m TXINJECTOR -G=$GROUPID -J=$JVMID $MODE_ARGS_TI > $TI_NAME.log 2>&1 & + $JAVA $JAVA_OPTS_TI $SPECJBB_OPTS_TI -jar $SPECJBB_JAR -m TXINJECTOR -G=$GROUPID -J=$JVMID $MODE_ARGS_TI > $TI_NAME.log 2>&1 & echo -e "\t$TI_NAME PID = $!" sleep 1 done @@ -56,7 +56,7 @@ for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do # Add GC logging to the backend's JVM options JAVA_OPTS_BE_WITH_GC_LOG="$JAVA_OPTS_BE -Xlog:gc*:file=${BE_NAME}_gc.log" echo " Start $BE_NAME" - $JAVA $JAVA_OPTS_BE_WITH_GC_LOG $SPEC_OPTS_BE -jar $SPECJBB_JAR -m BACKEND -G=$GROUPID -J=$JVMID $MODE_ARGS_BE > $BE_NAME.log 2>&1 & + $JAVA $JAVA_OPTS_BE_WITH_GC_LOG $SPECJBB_OPTS_BE -jar $SPECJBB_JAR -m BACKEND -G=$GROUPID -J=$JVMID $MODE_ARGS_BE > $BE_NAME.log 2>&1 & echo -e "\t$BE_NAME PID = $!" sleep 1 From eb61386319f338c74b7ce15e9d2d163e402f72a8 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Wed, 1 Feb 2023 17:41:02 -0600 Subject: [PATCH 16/29] reword comments to match the action that they are describing --- perf/specjbb/build/getSpecjbbSuite.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/perf/specjbb/build/getSpecjbbSuite.sh b/perf/specjbb/build/getSpecjbbSuite.sh index 4910f4078e..f90864e6ee 100644 --- a/perf/specjbb/build/getSpecjbbSuite.sh +++ b/perf/specjbb/build/getSpecjbbSuite.sh @@ -28,12 +28,12 @@ dirIsValid(){ } dstIsValid(){ - echo "##### Validating destination suite" + echo "##### Validating destination SPECjbb dir" return $(dirIsValid $SPECJBB_DEST) } srcIsValid(){ - echo "##### Validating source suite" + echo "##### Validating source SPECjbb dir" return $(dirIsValid $SPECJBB_SRC) } From 44cd1dfafb6b49f0f5dcf2dacc86f6c0a843a4fe Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Wed, 1 Feb 2023 17:54:55 -0600 Subject: [PATCH 17/29] add comments to describe shell scripts --- perf/specjbb/build/getSpecjbbSuite.sh | 2 +- perf/specjbb/run/options/specjbb-multijvm-simple.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/perf/specjbb/build/getSpecjbbSuite.sh b/perf/specjbb/build/getSpecjbbSuite.sh index f90864e6ee..4c5d37afaa 100644 --- a/perf/specjbb/build/getSpecjbbSuite.sh +++ b/perf/specjbb/build/getSpecjbbSuite.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash - +# Validate and copy the directory containing the SPECjbb jar file SPECJBB_SRC to the build directory SPECJBB_DEST SUCCESS=0 ERROR=1 diff --git a/perf/specjbb/run/options/specjbb-multijvm-simple.sh b/perf/specjbb/run/options/specjbb-multijvm-simple.sh index 5bf6181744..f3e812a4a3 100644 --- a/perf/specjbb/run/options/specjbb-multijvm-simple.sh +++ b/perf/specjbb/run/options/specjbb-multijvm-simple.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# This will configure a basic run of SPECjbb in multi-jvm mode +# Therefore, the topography of the run includes 1 group consisting of +# 1 TransactionInjector and 1 Backend export GROUP_COUNT=1 export TI_JVM_COUNT=1 From a5b33effddbc58e3cd4a6a3b6b098cc903772bab Mon Sep 17 00:00:00 2001 From: George Adams Date: Thu, 2 Mar 2023 15:36:22 +0000 Subject: [PATCH 18/29] update SpecJBB job from initial TRSS testing (#5) * update SpecJBB job from initial TRSS testing * fix bug * fixup * rewrite getSpecjbbSuite.sh using antfile --- perf/specjbb/README.md | 4 +- perf/specjbb/build.xml | 86 ++++++++++++++++++++------- perf/specjbb/build/getSpecjbbSuite.sh | 77 ------------------------ perf/specjbb/playlist.xml | 4 +- perf/specjbb/run/run_multi.sh | 2 +- 5 files changed, 71 insertions(+), 102 deletions(-) delete mode 100644 perf/specjbb/build/getSpecjbbSuite.sh diff --git a/perf/specjbb/README.md b/perf/specjbb/README.md index 44d6fa05a4..978ea6334c 100644 --- a/perf/specjbb/README.md +++ b/perf/specjbb/README.md @@ -28,7 +28,7 @@ export SPECJBB_SRC=/Users/aqa-tester/SPECjbb2015-1.03 ## Run -The configuration currently includes one group, `extended`, and that group contains one test, `specjbb-multijvm-simple`. You can use the following commands to run it: +The configuration currently includes one group, `extended`, and that group contains one test, `SPECjbb2015-multijvm-simple`. You can use the following commands to run it: ``` -make _testList TESTLIST=specjbb-multijvm-simple +make _testList TESTLIST=SPECjbb2015-multijvm-simple ``` \ No newline at end of file diff --git a/perf/specjbb/build.xml b/perf/specjbb/build.xml index 1b770ad4de..cde6290d9b 100644 --- a/perf/specjbb/build.xml +++ b/perf/specjbb/build.xml @@ -21,38 +21,84 @@ + + + + + - - - - - - - - - + + + + + + + + - - - - - - + + + - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + diff --git a/perf/specjbb/build/getSpecjbbSuite.sh b/perf/specjbb/build/getSpecjbbSuite.sh deleted file mode 100644 index 4c5d37afaa..0000000000 --- a/perf/specjbb/build/getSpecjbbSuite.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash -# Validate and copy the directory containing the SPECjbb jar file SPECJBB_SRC to the build directory SPECJBB_DEST - -SUCCESS=0 -ERROR=1 - -exists() { - local specjbb_dir=$1 - return $(test -f "${specjbb_dir}/${SPECJBB_JAR}") -} - -isRunnable() { - local specjbb_dir=$1 - result=$(${JAVA_BIN} -jar ${specjbb_dir}/${SPECJBB_JAR} -v | grep -q "SPECjbb2015") > /dev/null 2>&1 - return $result -} - -dirIsValid(){ - local specjbb_dir=$1 - - if exists $specjbb_dir; then - if isRunnable $specjbb_dir; then - return $SUCCESS - fi - fi - - return $ERROR -} - -dstIsValid(){ - echo "##### Validating destination SPECjbb dir" - return $(dirIsValid $SPECJBB_DEST) -} - -srcIsValid(){ - echo "##### Validating source SPECjbb dir" - return $(dirIsValid $SPECJBB_SRC) -} - -copySrcToDst(){ - echo "##### Copying contents of source SPECjbb dir to destination SPECjbb dir" - cp -a $SPECJBB_SRC/. $SPECJBB_DEST -} - -succeed(){ - echo "##### SUCCESS" - exit $SUCCESS -} - -fail(){ - echo "##### FAIL" - exit $ERROR -} - -main(){ - if srcIsValid; then - copySrcToDst - if dstIsValid; then - succeed - fi - else - echo "##### Source suite is not valid" - fi - - fail -} - -printInput(){ - echo "++ SPECJBB_SRC ${SPECJBB_SRC}" - echo "++ SPECJBB_DEST ${SPECJBB_DEST}" - echo "++ SPECJBB_JAR ${SPECJBB_JAR}" - echo "++ JAVA_BIN ${JAVA_BIN}" -} - -printInput -main - diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index e2f4aaaac3..b28f6ba7d1 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -15,8 +15,8 @@ run/testenv.mk - specjbb-multijvm-simple - source $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) + SPECjbb2015-multijvm-simple + . $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) extended diff --git a/perf/specjbb/run/run_multi.sh b/perf/specjbb/run/run_multi.sh index 51b7ddc169..90df2b5b3d 100755 --- a/perf/specjbb/run/run_multi.sh +++ b/perf/specjbb/run/run_multi.sh @@ -27,7 +27,7 @@ for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do JAVA="${JAVA%\"}" JAVA="${JAVA#\"}" echo "Start Controller JVM" - $JAVA $JAVA_OPTS_C $SPECJBB_OPTS_C -jar $SPECJBB_JAR -m MULTICONTROLLER $MODE_ARGS_C 2>controller.log > controller.out & + $JAVA $JAVA_OPTS_C $SPECJBB_OPTS_C -jar $SPECJBB_JAR -m MULTICONTROLLER $MODE_ARGS_C 2>controller.log 2>&1 | tee controller.out & CTRL_PID=$! echo "Controller PID = $CTRL_PID" From 41d868fd080e7e2de71635d2d9ea5a0f0e15292e Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin <36454324+ahmedmuhsin@users.noreply.github.com> Date: Thu, 2 Mar 2023 10:59:13 -0600 Subject: [PATCH 19/29] elaborate on the reasoning for the jvm options that were used --- perf/specjbb/playlist.xml | 3 +++ perf/specjbb/run/options/specjbb-multijvm-simple.sh | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index b28f6ba7d1..f3742acf49 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -15,6 +15,9 @@ run/testenv.mk + + + SPECjbb2015-multijvm-simple . $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) diff --git a/perf/specjbb/run/options/specjbb-multijvm-simple.sh b/perf/specjbb/run/options/specjbb-multijvm-simple.sh index f3e812a4a3..5f0743f1f0 100644 --- a/perf/specjbb/run/options/specjbb-multijvm-simple.sh +++ b/perf/specjbb/run/options/specjbb-multijvm-simple.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash + # This will configure a basic run of SPECjbb in multi-jvm mode # Therefore, the topography of the run includes 1 group consisting of # 1 TransactionInjector and 1 Backend @@ -11,6 +12,11 @@ export SPECJBB_OPTS_C="-Dspecjbb.group.count=$GROUP_COUNT -Dspecjbb.txi.pergroup export SPECJBB_OPTS_TI="" export SPECJBB_OPTS_BE="" +# The Controller, TransactionInjector, and Backend (aka System Under Test; SUT) are configured to meet the minimum +# hardware requirements suggested by SPECjbb +# (see the SPECjbb 2015 user guide, section 2.3 'Minimum hardware requirements', for more details) +# +# This implies that a machine should have atleast 8GB of memory and 8 CPU cores to run this test export JAVA_OPTS_C="-Xms2g -Xmx2g -Xmn1536m -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:CICompilerCount=4" export JAVA_OPTS_TI="${JAVA_OPTS_C}" export JAVA_OPTS_BE="-Xms4g -Xmx4g -Xmn3g -XX:+UseParallelGC -XX:ParallelGCThreads=4 -XX:-UseAdaptiveSizePolicy" From 9e4ed3fb595b0cc78f2e2da5a9241a3c11724eb2 Mon Sep 17 00:00:00 2001 From: Martijn Verburg Date: Fri, 3 Mar 2023 07:27:33 +1300 Subject: [PATCH 20/29] Update perf/specjbb/README.md --- perf/specjbb/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/perf/specjbb/README.md b/perf/specjbb/README.md index 978ea6334c..efeff15354 100644 --- a/perf/specjbb/README.md +++ b/perf/specjbb/README.md @@ -15,7 +15,6 @@ See the License for the specific language governing permissions and SPECjbb is a Java Client/Server performance testing benchmark. Please visit its product page for more information, including a user guide: https://www.spec.org/jbb2015/ - ## Prerequisites Since SPECjbb requires a license to run, this aqa-test config requires that a licensed copy of the benchmark already exists on the machine that you are running on. From 14e7a27982efa2acba562605d8713bfccd458d37 Mon Sep 17 00:00:00 2001 From: Martijn Verburg Date: Fri, 3 Mar 2023 07:27:43 +1300 Subject: [PATCH 21/29] Update perf/specjbb/README.md --- perf/specjbb/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/perf/specjbb/README.md b/perf/specjbb/README.md index efeff15354..662d449827 100644 --- a/perf/specjbb/README.md +++ b/perf/specjbb/README.md @@ -21,6 +21,7 @@ Since SPECjbb requires a license to run, this aqa-test config requires that a li ## Setup Set the `SPECJBB_SRC` environment variable to the absolute path of your SPECjbb benchmark directory + ``` export SPECJBB_SRC=/Users/aqa-tester/SPECjbb2015-1.03 ``` From 5e28714c3df37ba204f87936a63aa98be8fbf9f6 Mon Sep 17 00:00:00 2001 From: Martijn Verburg Date: Fri, 3 Mar 2023 07:27:51 +1300 Subject: [PATCH 22/29] Update perf/specjbb/README.md --- perf/specjbb/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/specjbb/README.md b/perf/specjbb/README.md index 662d449827..44d6b1af6a 100644 --- a/perf/specjbb/README.md +++ b/perf/specjbb/README.md @@ -22,7 +22,7 @@ Since SPECjbb requires a license to run, this aqa-test config requires that a li Set the `SPECJBB_SRC` environment variable to the absolute path of your SPECjbb benchmark directory -``` +```sh export SPECJBB_SRC=/Users/aqa-tester/SPECjbb2015-1.03 ``` From 090be8a40b99359d81cc109cfa2c556e50758ffc Mon Sep 17 00:00:00 2001 From: Martijn Verburg Date: Fri, 3 Mar 2023 07:28:24 +1300 Subject: [PATCH 23/29] Update perf/specjbb/run/run_multi.sh --- perf/specjbb/run/run_multi.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/perf/specjbb/run/run_multi.sh b/perf/specjbb/run/run_multi.sh index 90df2b5b3d..0a8fbe777f 100755 --- a/perf/specjbb/run/run_multi.sh +++ b/perf/specjbb/run/run_multi.sh @@ -14,7 +14,6 @@ for ((n=1; $n<=$NUM_OF_RUNS; n=$n+1)); do result="${temp}/${timestamp}" mkdir -pv $result - # Copy current config to the result directory cp -r $SPECJBB_CONFIG $result From 55f5568d36ae31a8f2e785f1801cf16e0f5edf5c Mon Sep 17 00:00:00 2001 From: Martijn Verburg Date: Sun, 5 Mar 2023 08:40:25 +1300 Subject: [PATCH 24/29] Update perf/specjbb/run/run_multi.sh Co-authored-by: George Adams --- perf/specjbb/run/run_multi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/specjbb/run/run_multi.sh b/perf/specjbb/run/run_multi.sh index 0a8fbe777f..c89c34f222 100755 --- a/perf/specjbb/run/run_multi.sh +++ b/perf/specjbb/run/run_multi.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash echo "Backend opts: $JAVA_OPTS_BE" From a81df4810f3a23823b3ea255e90b483942f05db9 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin <36454324+ahmedmuhsin@users.noreply.github.com> Date: Mon, 6 Mar 2023 15:33:14 -0600 Subject: [PATCH 25/29] update perf/specjbb/README.md Co-authored-by: Shelley Lambert --- perf/specjbb/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/specjbb/README.md b/perf/specjbb/README.md index 44d6b1af6a..c55efff9ec 100644 --- a/perf/specjbb/README.md +++ b/perf/specjbb/README.md @@ -30,5 +30,5 @@ export SPECJBB_SRC=/Users/aqa-tester/SPECjbb2015-1.03 The configuration currently includes one group, `extended`, and that group contains one test, `SPECjbb2015-multijvm-simple`. You can use the following commands to run it: ``` -make _testList TESTLIST=SPECjbb2015-multijvm-simple +make _SPECjbb2015-multijvm-simple ``` \ No newline at end of file From 7d7d63eaf2aebb30a6ec10a684089673bfe73fa4 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin <36454324+ahmedmuhsin@users.noreply.github.com> Date: Mon, 6 Mar 2023 15:35:49 -0600 Subject: [PATCH 26/29] add test to the dev level so it will never get included as a necessary test to run as part of AQAvit verification Co-authored-by: Shelley Lambert --- perf/specjbb/playlist.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index f3742acf49..14d2cae73c 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -21,7 +21,7 @@ SPECjbb2015-multijvm-simple . $(RUN_OPTIONS)/specjbb-multijvm-simple.sh; bash $(RUN_SCRIPTS)/run_multi.sh; $(TEST_STATUS) - extended + dev perf From d06909c613dbad06cee2c6c6309ac34128f7d2da Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin <36454324+ahmedmuhsin@users.noreply.github.com> Date: Mon, 6 Mar 2023 15:40:10 -0600 Subject: [PATCH 27/29] update perf/specjbb/README.md Co-authored-by: Shelley Lambert --- perf/specjbb/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/specjbb/README.md b/perf/specjbb/README.md index c55efff9ec..4667d0735e 100644 --- a/perf/specjbb/README.md +++ b/perf/specjbb/README.md @@ -28,7 +28,7 @@ export SPECJBB_SRC=/Users/aqa-tester/SPECjbb2015-1.03 ## Run -The configuration currently includes one group, `extended`, and that group contains one test, `SPECjbb2015-multijvm-simple`. You can use the following commands to run it: +This test target is part of the `dev` level, and the test target name is, `SPECjbb2015-multijvm-simple`. You can use the following commands to run it: ``` make _SPECjbb2015-multijvm-simple ``` \ No newline at end of file From 1c35d715c1d4c7f9c66edf594e99103754506f99 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin <36454324+ahmedmuhsin@users.noreply.github.com> Date: Mon, 6 Mar 2023 16:22:28 -0600 Subject: [PATCH 28/29] specify microsoft as the vendor that this test should run for Co-authored-by: Shelley Lambert --- perf/specjbb/playlist.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index 14d2cae73c..ff24c79054 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -26,5 +26,8 @@ perf + + microsoft + From 02ddaca799e489005dab31819d2d7249c5db2165 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin <36454324+ahmedmuhsin@users.noreply.github.com> Date: Mon, 6 Mar 2023 16:23:19 -0600 Subject: [PATCH 29/29] fix playlist.xml formatting --- perf/specjbb/playlist.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/specjbb/playlist.xml b/perf/specjbb/playlist.xml index ff24c79054..1629feec65 100644 --- a/perf/specjbb/playlist.xml +++ b/perf/specjbb/playlist.xml @@ -28,6 +28,6 @@ microsoft - +