[PATCH] Adding NAS Parallel Benchmarks (NPB) as client test
This new autotest module implements a benchmark for parallel processing (SMP) systems. Besides the traditional benchmarking, some sanity checks are made, in order to test effectively the SMP implementation of virtual machines. So this module at the same time is a regular benchmark, but it can be also used as a functional test for virtualization. V3: Implemented suggestions made during review of the module. Binary diff removed, this is for the sake of documentation. Signed-off-by: Cao, Chen k...@redhat.com --- client/tests/kvm/autotest_control/npb.control | 28 +++ client/tests/kvm/kvm_tests.cfg.sample |4 + client/tests/npb/NPB3.3.tar.gz| Bin 0 - 615658 bytes client/tests/npb/control | 28 +++ client/tests/npb/enable-all-tests.patch | 233 + client/tests/npb/npb.py | 145 +++ 6 files changed, 438 insertions(+), 0 deletions(-) create mode 100644 client/tests/kvm/autotest_control/npb.control create mode 100644 client/tests/npb/NPB3.3.tar.gz create mode 100644 client/tests/npb/control create mode 100644 client/tests/npb/enable-all-tests.patch create mode 100644 client/tests/npb/npb.py diff --git a/client/tests/kvm/autotest_control/npb.control b/client/tests/kvm/autotest_control/npb.control new file mode 100644 index 000..2a8a8bb --- /dev/null +++ b/client/tests/kvm/autotest_control/npb.control @@ -0,0 +1,28 @@ +NAME = NAS Parallel Benchmarks +AUTHOR = Cao, Chen k...@redhat.com +TEST_TYPE = CLIENT +TEST_CLASS = HARDWARE +TEST_CATEGORY = BENCHMARK +TIME = MEDIUM +DOC = \ +Using NPB, OpenMP implementation. + +See http://www.nas.nasa.gov/Software/NPB/ + + +# Supported tests (benchmarks): +# bt.A bt.B bt.C bt.D bt.E bt.S bt.W +# cg.A cg.B cg.C cg.S cg.W +# dc.A dc.B dc.S dc.W +# ep.A ep.B ep.C ep.D ep.E ep.S ep.W +# ft.A ft.B ft.S ft.W +# is.A is.B is.C is.S is.W +# lu.A lu.B lu.C lu.S lu.W +# mg.A mg.B mg.S mg.W +# sp.A sp.B sp.C sp.D sp.E sp.S sp.W +# ua.A ua.B ua.C ua.S ua.W +# +# Please refer to npb.py for more infomation about +# the arguments. +job.run_test(url='npb', tests='ep.A ep.B') + diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample index ceda7b3..fa4dd12 100644 --- a/client/tests/kvm/kvm_tests.cfg.sample +++ b/client/tests/kvm/kvm_tests.cfg.sample @@ -96,6 +96,9 @@ variants: # control file and set this timeout appropriately. test_timeout = 3900 test_control_file = cerberus.control +- npb: +test_name = npb +test_control_file = npb.control - linux_s3: install setup type = linux_s3 @@ -639,6 +642,7 @@ linux_s3: variants: - @up: +no autotest.npb - smp2: extra_params += -smp 2 diff --git a/client/tests/npb/control b/client/tests/npb/control new file mode 100644 index 000..bebd0e9 --- /dev/null +++ b/client/tests/npb/control @@ -0,0 +1,28 @@ +NAME = NAS Parallel Benchmarks +AUTHOR = Cao, Chen k...@redhat.com +TEST_TYPE = CLIENT +TEST_CLASS = HARDWARE +TEST_CATEGORY = BENCHMARK +TIME = MEDIUM +DOC = \ +Using NPB, OpenMP implementation. + +See http://www.nas.nasa.gov/Software/NPB/ + + +# Supported tests (benchmarks): +# bt.A bt.B bt.C bt.D bt.E bt.S bt.W +# cg.A cg.B cg.C cg.S cg.W +# dc.A dc.B dc.S dc.W +# ep.A ep.B ep.C ep.D ep.E ep.S ep.W +# ft.A ft.B ft.S ft.W +# is.A is.B is.C is.S is.W +# lu.A lu.B lu.C lu.S lu.W +# mg.A mg.B mg.S mg.W +# sp.A sp.B sp.C sp.D sp.E sp.S sp.W +# ua.A ua.B ua.C ua.S ua.W +# +# Please refer to npb.py for more infomation about +# the arguments. +job.run_test(url='npb', tests='ep.A ep.B bt.S bt.W') + diff --git a/client/tests/npb/enable-all-tests.patch b/client/tests/npb/enable-all-tests.patch new file mode 100644 index 000..f08a9d3 --- /dev/null +++ b/client/tests/npb/enable-all-tests.patch @@ -0,0 +1,233 @@ +diff --git a/NPB3.3-OMP/config/make.def b/NPB3.3-OMP/config/make.def +new file mode 100644 +index 000..afffe7d +--- /dev/null b/NPB3.3-OMP/config/make.def +@@ -0,0 +1,161 @@ ++#--- ++# ++#SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. ++# ++#--- ++ ++#--- ++# Items in this file will need to be changed for each platform. ++#--- ++ ++#--- ++# Parallel Fortran: ++# ++# For CG, EP, FT, MG, LU, SP, BT and UA, which are in Fortran, the following ++# must be defined: ++# ++# F77- Fortran compiler ++# FFLAGS - Fortran compilation arguments ++# F_INC - any -I arguments required for compiling Fortran ++# FLINK -
Re: [Autotest] [PATCH] Adding NAS Parallel Benchmarks(NPB) as client test [1/2] V2
First of all, thanks for this client side module Chen. I believe it might be interesting for quite a lot of people doing performance testing. Here are my remarks found during the review of your code: On Mon, Sep 21, 2009 at 7:01 AM, Cao, Chen k...@redhat.com wrote: - Using NPB OpenMP implementaion. Changes from the original patch: Remove the variant 'extra_params += smp 2', and add a restriction (no autotest.npb) under variant 'up', according to mgoldish's advice. Nevertheless, user can run this test with smp=1, if he/she wants to. Signed-off-by: Cao, Chen k...@redhat.com --- client/tests/kvm/kvm_tests.cfg.sample | 4 + client/tests/npb/control | 28 client/tests/npb/enable-all-tests.patch | 233 +++ client/tests/npb/npb.py | 95 + 4 files changed, 360 insertions(+), 0 deletions(-) create mode 100644 client/tests/npb/control create mode 100644 client/tests/npb/enable-all-tests.patch create mode 100644 client/tests/npb/npb.py diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample index 285a38f..b03b7cd 100644 --- a/client/tests/kvm/kvm_tests.cfg.sample +++ b/client/tests/kvm/kvm_tests.cfg.sample @@ -90,6 +90,9 @@ variants: - disktest: test_name = disktest test_control_file = disktest.control + - npb: + test_name = npb + test_control_file = npb.control - linux_s3: install setup type = linux_s3 @@ -567,6 +570,7 @@ linux_s3: variants: - @up: + no autotest.npb - smp2: extra_params += -smp 2 diff --git a/client/tests/npb/control b/client/tests/npb/control new file mode 100644 index 000..d6c2adb --- /dev/null +++ b/client/tests/npb/control @@ -0,0 +1,28 @@ +NAME = NAS Parallel Benchmarks +AUTHOR = Cao, Chen k...@redhat.com +TEST_TYPE = CLIENT +TEST_CLASS = HARDWARE +TEST_CATEGORY = BENCHMARK +TIME = MEDIUM +DOC = \ +Using NPB, OpenMP implementation. + +See http://www.nas.nasa.gov/Software/NPB/ + + +# Supported tests (benchmarks): +# bt.A bt.B bt.C bt.D bt.E bt.S bt.W +# cg.A cg.B cg.C cg.S cg.W +# dc.A dc.B dc.S dc.W +# ep.A ep.B ep.C ep.D ep.E ep.S ep.W +# ft.A ft.B ft.S ft.W +# is.A is.B is.C is.S is.W +# lu.A lu.B lu.C lu.S lu.W +# mg.A mg.B mg.S mg.W +# sp.A sp.B sp.C sp.D sp.E sp.S sp.W +# ua.A ua.B ua.C ua.S ua.W +# +# Please refer to npb.py for more infomation about +# the arguments. +job.run_test(url='npb', tests='ep.A ep.B', ratio=0.5) + diff --git a/client/tests/npb/enable-all-tests.patch b/client/tests/npb/enable-all-tests.patch new file mode 100644 index 000..f08a9d3 --- /dev/null +++ b/client/tests/npb/enable-all-tests.patch @@ -0,0 +1,233 @@ +diff --git a/NPB3.3-OMP/config/make.def b/NPB3.3-OMP/config/make.def +new file mode 100644 +index 000..afffe7d +--- /dev/null b/NPB3.3-OMP/config/make.def +@@ -0,0 +1,161 @@ ++#--- ++# ++# SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. ++# ++#--- ++ ++#--- ++# Items in this file will need to be changed for each platform. ++#--- ++ ++#--- ++# Parallel Fortran: ++# ++# For CG, EP, FT, MG, LU, SP, BT and UA, which are in Fortran, the following ++# must be defined: ++# ++# F77 - Fortran compiler ++# FFLAGS - Fortran compilation arguments ++# F_INC - any -I arguments required for compiling Fortran ++# FLINK - Fortran linker ++# FLINKFLAGS - Fortran linker arguments ++# F_LIB - any -L and -l arguments required for linking Fortran ++# ++# compilations are done with $(F77) $(F_INC) $(FFLAGS) or ++# $(F77) $(FFLAGS) ++# linking is done with $(FLINK) $(F_LIB) $(FLINKFLAGS) ++#--- ++ ++#--- ++# This is the fortran compiler used for Fortran programs ++#--- ++F77 = gfortran ++# This links fortran programs; usually the same as ${F77} ++FLINK = $(F77) ++ ++#--- ++# These macros are passed to the linker ++#--- ++F_LIB = ++ ++#--- ++# These macros are passed to the compiler
[KVM-AUTOTEST PATCH] Adding NAS Parallel Benchmarks(NPB) as client test [1/2]
- Using NPB OpenMP implementaion. Signed-off-by: Cao, Chen k...@redhat.com --- client/tests/kvm/kvm_tests.cfg.sample |4 + client/tests/npb/control| 28 client/tests/npb/enable-all-tests.patch | 233 +++ client/tests/npb/npb.py | 95 + 4 files changed, 360 insertions(+), 0 deletions(-) create mode 100644 client/tests/npb/control create mode 100644 client/tests/npb/enable-all-tests.patch create mode 100644 client/tests/npb/npb.py diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample index 285a38f..0b2ab37 100644 --- a/client/tests/kvm/kvm_tests.cfg.sample +++ b/client/tests/kvm/kvm_tests.cfg.sample @@ -90,6 +90,10 @@ variants: - disktest: test_name = disktest test_control_file = disktest.control +- npb: +test_name = npb +test_control_file = npb.control +extra_params += -smp 2 - linux_s3: install setup type = linux_s3 diff --git a/client/tests/npb/control b/client/tests/npb/control new file mode 100644 index 000..d6c2adb --- /dev/null +++ b/client/tests/npb/control @@ -0,0 +1,28 @@ +NAME = NAS Parallel Benchmarks +AUTHOR = Cao, Chen k...@redhat.com +TEST_TYPE = CLIENT +TEST_CLASS = HARDWARE +TEST_CATEGORY = BENCHMARK +TIME = MEDIUM +DOC = \ +Using NPB, OpenMP implementation. + +See http://www.nas.nasa.gov/Software/NPB/ + + +# Supported tests (benchmarks): +# bt.A bt.B bt.C bt.D bt.E bt.S bt.W +# cg.A cg.B cg.C cg.S cg.W +# dc.A dc.B dc.S dc.W +# ep.A ep.B ep.C ep.D ep.E ep.S ep.W +# ft.A ft.B ft.S ft.W +# is.A is.B is.C is.S is.W +# lu.A lu.B lu.C lu.S lu.W +# mg.A mg.B mg.S mg.W +# sp.A sp.B sp.C sp.D sp.E sp.S sp.W +# ua.A ua.B ua.C ua.S ua.W +# +# Please refer to npb.py for more infomation about +# the arguments. +job.run_test(url='npb', tests='ep.A ep.B', ratio=0.5) + diff --git a/client/tests/npb/enable-all-tests.patch b/client/tests/npb/enable-all-tests.patch new file mode 100644 index 000..f08a9d3 --- /dev/null +++ b/client/tests/npb/enable-all-tests.patch @@ -0,0 +1,233 @@ +diff --git a/NPB3.3-OMP/config/make.def b/NPB3.3-OMP/config/make.def +new file mode 100644 +index 000..afffe7d +--- /dev/null b/NPB3.3-OMP/config/make.def +@@ -0,0 +1,161 @@ ++#--- ++# ++#SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. ++# ++#--- ++ ++#--- ++# Items in this file will need to be changed for each platform. ++#--- ++ ++#--- ++# Parallel Fortran: ++# ++# For CG, EP, FT, MG, LU, SP, BT and UA, which are in Fortran, the following ++# must be defined: ++# ++# F77- Fortran compiler ++# FFLAGS - Fortran compilation arguments ++# F_INC - any -I arguments required for compiling Fortran ++# FLINK - Fortran linker ++# FLINKFLAGS - Fortran linker arguments ++# F_LIB - any -L and -l arguments required for linking Fortran ++# ++# compilations are done with $(F77) $(F_INC) $(FFLAGS) or ++#$(F77) $(FFLAGS) ++# linking is done with $(FLINK) $(F_LIB) $(FLINKFLAGS) ++#--- ++ ++#--- ++# This is the fortran compiler used for Fortran programs ++#--- ++F77 = gfortran ++# This links fortran programs; usually the same as ${F77} ++FLINK = $(F77) ++ ++#--- ++# These macros are passed to the linker ++#--- ++F_LIB = ++ ++#--- ++# These macros are passed to the compiler ++#--- ++F_INC = ++ ++#--- ++# Global *compile time* flags for Fortran programs ++#--- ++FFLAGS= -O -fopenmp ++ ++#--- ++# Global *link time* flags. Flags for increasing maximum executable ++# size usually go here. ++#--- ++FLINKFLAGS = -O -fopenmp ++ ++ ++#--- ++# Parallel C: ++# ++# For IS and
[KVM-AUTOTEST PATCH] Adding NAS Parallel Benchmarks(NPB) as client test [2/2]
The source code of NPB. Please check the attachment. relative path: client/tests/npb/NPB3.3.tar.gz Thanks. Cao, Chen 2009/09/21 -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [Autotest] [KVM-AUTOTEST PATCH] Adding NAS Parallel Benchmarks(NPB) as client test [1/2]
- Chen Cao k...@redhat.com wrote: - Using NPB OpenMP implementaion. Signed-off-by: Cao, Chen k...@redhat.com --- client/tests/kvm/kvm_tests.cfg.sample |4 + client/tests/npb/control| 28 client/tests/npb/enable-all-tests.patch | 233 +++ client/tests/npb/npb.py | 95 + 4 files changed, 360 insertions(+), 0 deletions(-) create mode 100644 client/tests/npb/control create mode 100644 client/tests/npb/enable-all-tests.patch create mode 100644 client/tests/npb/npb.py diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample index 285a38f..0b2ab37 100644 --- a/client/tests/kvm/kvm_tests.cfg.sample +++ b/client/tests/kvm/kvm_tests.cfg.sample @@ -90,6 +90,10 @@ variants: - disktest: test_name = disktest test_control_file = disktest.control +- npb: +test_name = npb +test_control_file = npb.control +extra_params += -smp 2 up and smp2 variants are defined somewhere further down the config file. It might make more sense to add no autotest.npb to the up variant, which means this test will only run in an SMP configuration. Otherwise, in the SMP variant extra_params will be -smp 2 -smp 2. - linux_s3: install setup type = linux_s3 diff --git a/client/tests/npb/control b/client/tests/npb/control new file mode 100644 index 000..d6c2adb --- /dev/null +++ b/client/tests/npb/control @@ -0,0 +1,28 @@ +NAME = NAS Parallel Benchmarks +AUTHOR = Cao, Chen k...@redhat.com +TEST_TYPE = CLIENT +TEST_CLASS = HARDWARE +TEST_CATEGORY = BENCHMARK +TIME = MEDIUM +DOC = \ +Using NPB, OpenMP implementation. + +See http://www.nas.nasa.gov/Software/NPB/ + + +# Supported tests (benchmarks): +# bt.A bt.B bt.C bt.D bt.E bt.S bt.W +# cg.A cg.B cg.C cg.S cg.W +# dc.A dc.B dc.S dc.W +# ep.A ep.B ep.C ep.D ep.E ep.S ep.W +# ft.A ft.B ft.S ft.W +# is.A is.B is.C is.S is.W +# lu.A lu.B lu.C lu.S lu.W +# mg.A mg.B mg.S mg.W +# sp.A sp.B sp.C sp.D sp.E sp.S sp.W +# ua.A ua.B ua.C ua.S ua.W +# +# Please refer to npb.py for more infomation about +# the arguments. +job.run_test(url='npb', tests='ep.A ep.B', ratio=0.5) + diff --git a/client/tests/npb/enable-all-tests.patch b/client/tests/npb/enable-all-tests.patch new file mode 100644 index 000..f08a9d3 --- /dev/null +++ b/client/tests/npb/enable-all-tests.patch @@ -0,0 +1,233 @@ +diff --git a/NPB3.3-OMP/config/make.def b/NPB3.3-OMP/config/make.def +new file mode 100644 +index 000..afffe7d +--- /dev/null b/NPB3.3-OMP/config/make.def +@@ -0,0 +1,161 @@ ++#--- ++# ++#SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. ++# ++#--- ++ ++#--- ++# Items in this file will need to be changed for each platform. ++#--- ++ ++#--- ++# Parallel Fortran: ++# ++# For CG, EP, FT, MG, LU, SP, BT and UA, which are in Fortran, the following ++# must be defined: ++# ++# F77- Fortran compiler ++# FFLAGS - Fortran compilation arguments ++# F_INC - any -I arguments required for compiling Fortran ++# FLINK - Fortran linker ++# FLINKFLAGS - Fortran linker arguments ++# F_LIB - any -L and -l arguments required for linking Fortran ++# ++# compilations are done with $(F77) $(F_INC) $(FFLAGS) or ++#$(F77) $(FFLAGS) ++# linking is done with $(FLINK) $(F_LIB) $(FLINKFLAGS) ++#--- ++ ++#--- ++# This is the fortran compiler used for Fortran programs ++#--- ++F77 = gfortran ++# This links fortran programs; usually the same as ${F77} ++FLINK = $(F77) ++ ++#--- ++# These macros are passed to the linker ++#--- ++F_LIB = ++ ++#--- ++# These macros are passed to the compiler ++#--- ++F_INC = ++ ++#--- ++# Global *compile time* flags for Fortran programs
[PATCH] Adding NAS Parallel Benchmarks(NPB) as client test [1/2] V2
- Using NPB OpenMP implementaion. Changes from the original patch: Remove the variant 'extra_params += smp 2', and add a restriction (no autotest.npb) under variant 'up', according to mgoldish's advice. Nevertheless, user can run this test with smp=1, if he/she wants to. Signed-off-by: Cao, Chen k...@redhat.com --- client/tests/kvm/kvm_tests.cfg.sample |4 + client/tests/npb/control| 28 client/tests/npb/enable-all-tests.patch | 233 +++ client/tests/npb/npb.py | 95 + 4 files changed, 360 insertions(+), 0 deletions(-) create mode 100644 client/tests/npb/control create mode 100644 client/tests/npb/enable-all-tests.patch create mode 100644 client/tests/npb/npb.py diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample index 285a38f..b03b7cd 100644 --- a/client/tests/kvm/kvm_tests.cfg.sample +++ b/client/tests/kvm/kvm_tests.cfg.sample @@ -90,6 +90,9 @@ variants: - disktest: test_name = disktest test_control_file = disktest.control +- npb: +test_name = npb +test_control_file = npb.control - linux_s3: install setup type = linux_s3 @@ -567,6 +570,7 @@ linux_s3: variants: - @up: +no autotest.npb - smp2: extra_params += -smp 2 diff --git a/client/tests/npb/control b/client/tests/npb/control new file mode 100644 index 000..d6c2adb --- /dev/null +++ b/client/tests/npb/control @@ -0,0 +1,28 @@ +NAME = NAS Parallel Benchmarks +AUTHOR = Cao, Chen k...@redhat.com +TEST_TYPE = CLIENT +TEST_CLASS = HARDWARE +TEST_CATEGORY = BENCHMARK +TIME = MEDIUM +DOC = \ +Using NPB, OpenMP implementation. + +See http://www.nas.nasa.gov/Software/NPB/ + + +# Supported tests (benchmarks): +# bt.A bt.B bt.C bt.D bt.E bt.S bt.W +# cg.A cg.B cg.C cg.S cg.W +# dc.A dc.B dc.S dc.W +# ep.A ep.B ep.C ep.D ep.E ep.S ep.W +# ft.A ft.B ft.S ft.W +# is.A is.B is.C is.S is.W +# lu.A lu.B lu.C lu.S lu.W +# mg.A mg.B mg.S mg.W +# sp.A sp.B sp.C sp.D sp.E sp.S sp.W +# ua.A ua.B ua.C ua.S ua.W +# +# Please refer to npb.py for more infomation about +# the arguments. +job.run_test(url='npb', tests='ep.A ep.B', ratio=0.5) + diff --git a/client/tests/npb/enable-all-tests.patch b/client/tests/npb/enable-all-tests.patch new file mode 100644 index 000..f08a9d3 --- /dev/null +++ b/client/tests/npb/enable-all-tests.patch @@ -0,0 +1,233 @@ +diff --git a/NPB3.3-OMP/config/make.def b/NPB3.3-OMP/config/make.def +new file mode 100644 +index 000..afffe7d +--- /dev/null b/NPB3.3-OMP/config/make.def +@@ -0,0 +1,161 @@ ++#--- ++# ++#SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. ++# ++#--- ++ ++#--- ++# Items in this file will need to be changed for each platform. ++#--- ++ ++#--- ++# Parallel Fortran: ++# ++# For CG, EP, FT, MG, LU, SP, BT and UA, which are in Fortran, the following ++# must be defined: ++# ++# F77- Fortran compiler ++# FFLAGS - Fortran compilation arguments ++# F_INC - any -I arguments required for compiling Fortran ++# FLINK - Fortran linker ++# FLINKFLAGS - Fortran linker arguments ++# F_LIB - any -L and -l arguments required for linking Fortran ++# ++# compilations are done with $(F77) $(F_INC) $(FFLAGS) or ++#$(F77) $(FFLAGS) ++# linking is done with $(FLINK) $(F_LIB) $(FLINKFLAGS) ++#--- ++ ++#--- ++# This is the fortran compiler used for Fortran programs ++#--- ++F77 = gfortran ++# This links fortran programs; usually the same as ${F77} ++FLINK = $(F77) ++ ++#--- ++# These macros are passed to the linker ++#--- ++F_LIB = ++ ++#--- ++# These macros are passed to the compiler ++#--- ++F_INC = ++ ++#--- ++# Global *compile time* flags for Fortran programs ++#--- ++FFLAGS= -O -fopenmp ++ ++#---