From 1b29ed15422ed155d23b5524e47ee7e6493aee98 Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 27 Nov 2018 16:43:14 +0100 Subject: [PATCH 1/9] https://github.com/eth-cscs/reframe/issues/601 Signed-off-by: jgp --- .../tools/profiling_and_debugging/gdb4hpc.py | 46 +++++++++++++++++++ .../src/F90/gdb4hpc.in | 33 +++++++++++++ .../src/F90/gdb4hpc.slm | 27 +++++++++++ 3 files changed, 106 insertions(+) create mode 100644 cscs-checks/tools/profiling_and_debugging/gdb4hpc.py create mode 100644 cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in create mode 100644 cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py new file mode 100644 index 0000000000..334969f91f --- /dev/null +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -0,0 +1,46 @@ +import os + +import reframe as rfm +import reframe.utility.sanity as sn + + +@rfm.simple_test +class SbucheckCommandCheck(rfm.RunOnlyRegressionTest): + def __init__(self): + super().__init__() + self.valid_systems = ['daint:login', 'dom:login'] + self.descr = 'Cray parallel debugger' + self.valid_prog_environs = ['PrgEnv-gnu'] + self.modules = ['gdb4hpc'] + + self.executable = 'gdb4hpc -v' + self.executable += ';cd F90; pwd' + self.executable += ";make -j 1 CC='cc' CXX='CC' FC='ftn' NVCC='nvcc' CFLAGS='-g -O2 -fopenmp' CXXFLAGS='-g -O2 -fopenmp' FCFLAGS='-g -O2 -fopenmp'" + self.executable += ';ls -lrt' + self.executable += ';gdb4hpc -b ./gdb4hpc.in &> gdb4hpc.rpt' + + self.variables = { + 'OMP_PROC_BIND': 'true', + 'CRAYPE_LINK_TYPE': 'dynamic' + } + + self.num_tasks = 1 + self.num_tasks_per_node = 1 + self.tags = {'production'} + + self.sanity_patterns = sn.all([ + sn.assert_reference(sn.extractsingle( + r'^tst\{0\}:\s+(?P\d+.\d+[eE]-\d+)', + 'F90/gdb4hpc.rpt', + 'result', float), 2.572e-6, -1e-1, 1.0e-1), + + sn.assert_found(r'gdb4hpc 3.0 - Cray Line Mode Parallel Debugger', + 'F90/gdb4hpc.rpt'), + + sn.assert_found(r'Shutting down debugger and killing application', + 'F90/gdb4hpc.rpt') + ]) + + + self.maintainers = ['JG', 'MK'] + diff --git a/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in new file mode 100644 index 0000000000..112280c454 --- /dev/null +++ b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in @@ -0,0 +1,33 @@ +# this line is mandatory (cray case #224617): +maint set sync on +# 1 MPI * x OpenMP: +launch $tst{1} ./jacobi --sbatch=./gdb4hpc.slm +break _jacobi.F90:90 +# ----1 +continue +list 90,91 +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----2 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----3 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----4 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----5 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +quit + +# can't use printf with gdb4hpc until this cray case is solved: +# CASE #227672 - GDB4HPC: PRINTF SUPPORT +# printf "(_jacobi.F90:90)] residual:%f\n", residual + +# TODO: tracepoints diff --git a/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm new file mode 100644 index 0000000000..d059d3c0a7 --- /dev/null +++ b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm @@ -0,0 +1,27 @@ +#!/bin/bash -l +#SBATCH --job-name="rfm_GDB4HPC_Check_F90_job" +#SBATCH --time=0:1:0 + +#SBATCH --ntasks=1 +#SBATCH --ntasks-per-node=1 +#SBATCH --cpus-per-task=4 +#SBATCH --ntasks-per-core=1 + +#SBATCH --output=o +#SBATCH --error=o +#SBATCH --constraint=gpu + +module load daint-gpu +module unload PrgEnv-cray +module load PrgEnv-gnu +module load gdb4hpc +module list -t + +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK +export ITERATIONS=5 +export OMP_PROC_BIND=true + +#cray_debug_start +srun ./jacobi +#cray_debug_end + From cef0e498d54a0b9d2eb69e9fcf0ef64a358a9de6 Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 27 Nov 2018 16:58:08 +0100 Subject: [PATCH 2/9] https://github.com/eth-cscs/reframe/issues/601 Signed-off-by: jgp --- .../tools/profiling_and_debugging/gdb4hpc.py | 46 +++++++++++++++++++ .../src/F90/gdb4hpc.in | 33 +++++++++++++ .../src/F90/gdb4hpc.slm | 27 +++++++++++ 3 files changed, 106 insertions(+) create mode 100644 cscs-checks/tools/profiling_and_debugging/gdb4hpc.py create mode 100644 cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in create mode 100644 cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py new file mode 100644 index 0000000000..334969f91f --- /dev/null +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -0,0 +1,46 @@ +import os + +import reframe as rfm +import reframe.utility.sanity as sn + + +@rfm.simple_test +class SbucheckCommandCheck(rfm.RunOnlyRegressionTest): + def __init__(self): + super().__init__() + self.valid_systems = ['daint:login', 'dom:login'] + self.descr = 'Cray parallel debugger' + self.valid_prog_environs = ['PrgEnv-gnu'] + self.modules = ['gdb4hpc'] + + self.executable = 'gdb4hpc -v' + self.executable += ';cd F90; pwd' + self.executable += ";make -j 1 CC='cc' CXX='CC' FC='ftn' NVCC='nvcc' CFLAGS='-g -O2 -fopenmp' CXXFLAGS='-g -O2 -fopenmp' FCFLAGS='-g -O2 -fopenmp'" + self.executable += ';ls -lrt' + self.executable += ';gdb4hpc -b ./gdb4hpc.in &> gdb4hpc.rpt' + + self.variables = { + 'OMP_PROC_BIND': 'true', + 'CRAYPE_LINK_TYPE': 'dynamic' + } + + self.num_tasks = 1 + self.num_tasks_per_node = 1 + self.tags = {'production'} + + self.sanity_patterns = sn.all([ + sn.assert_reference(sn.extractsingle( + r'^tst\{0\}:\s+(?P\d+.\d+[eE]-\d+)', + 'F90/gdb4hpc.rpt', + 'result', float), 2.572e-6, -1e-1, 1.0e-1), + + sn.assert_found(r'gdb4hpc 3.0 - Cray Line Mode Parallel Debugger', + 'F90/gdb4hpc.rpt'), + + sn.assert_found(r'Shutting down debugger and killing application', + 'F90/gdb4hpc.rpt') + ]) + + + self.maintainers = ['JG', 'MK'] + diff --git a/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in new file mode 100644 index 0000000000..112280c454 --- /dev/null +++ b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in @@ -0,0 +1,33 @@ +# this line is mandatory (cray case #224617): +maint set sync on +# 1 MPI * x OpenMP: +launch $tst{1} ./jacobi --sbatch=./gdb4hpc.slm +break _jacobi.F90:90 +# ----1 +continue +list 90,91 +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----2 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----3 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----4 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +# ----5 +continue +print residual +#printf "(_jacobi.F90:90)] residual:%f\n", residual +quit + +# can't use printf with gdb4hpc until this cray case is solved: +# CASE #227672 - GDB4HPC: PRINTF SUPPORT +# printf "(_jacobi.F90:90)] residual:%f\n", residual + +# TODO: tracepoints diff --git a/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm new file mode 100644 index 0000000000..d059d3c0a7 --- /dev/null +++ b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.slm @@ -0,0 +1,27 @@ +#!/bin/bash -l +#SBATCH --job-name="rfm_GDB4HPC_Check_F90_job" +#SBATCH --time=0:1:0 + +#SBATCH --ntasks=1 +#SBATCH --ntasks-per-node=1 +#SBATCH --cpus-per-task=4 +#SBATCH --ntasks-per-core=1 + +#SBATCH --output=o +#SBATCH --error=o +#SBATCH --constraint=gpu + +module load daint-gpu +module unload PrgEnv-cray +module load PrgEnv-gnu +module load gdb4hpc +module list -t + +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK +export ITERATIONS=5 +export OMP_PROC_BIND=true + +#cray_debug_start +srun ./jacobi +#cray_debug_end + From 9abcc8611d289afa0fd0e4da131830471b1a8362 Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 27 Nov 2018 18:52:07 +0100 Subject: [PATCH 3/9] fix for @victorusu Signed-off-by: jgp --- .../tools/profiling_and_debugging/gdb4hpc.py | 84 ++++++++++++++----- 1 file changed, 63 insertions(+), 21 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py index 334969f91f..55bf7d211d 100644 --- a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -3,44 +3,86 @@ import reframe as rfm import reframe.utility.sanity as sn +from reframe.core.launchers import LauncherWrapper -@rfm.simple_test -class SbucheckCommandCheck(rfm.RunOnlyRegressionTest): - def __init__(self): + +class Gdb4hpcCheck(rfm.RegressionTest): + def __init__(self, lang, extension): super().__init__() - self.valid_systems = ['daint:login', 'dom:login'] - self.descr = 'Cray parallel debugger' + self.name = 'Gdb4hpcCheck_' + lang.replace('+', 'p') + self.descr = 'Cray gdb4hpc check for %s' % lang + self.lang = lang + self.extension = extension + self.build_system = 'Make' + # NOTE: Restrict concurrency to allow creation of Fortran modules + if lang == 'F90': + self.build_system.max_concurrency = 1 + + #self.executable = './jacobi' + self.executable = 'gdb4hpc -v' + self.sourcesdir = os.path.join('src', lang) self.valid_prog_environs = ['PrgEnv-gnu'] self.modules = ['gdb4hpc'] - - self.executable = 'gdb4hpc -v' - self.executable += ';cd F90; pwd' - self.executable += ";make -j 1 CC='cc' CXX='CC' FC='ftn' NVCC='nvcc' CFLAGS='-g -O2 -fopenmp' CXXFLAGS='-g -O2 -fopenmp' FCFLAGS='-g -O2 -fopenmp'" - self.executable += ';ls -lrt' - self.executable += ';gdb4hpc -b ./gdb4hpc.in &> gdb4hpc.rpt' - - self.variables = { - 'OMP_PROC_BIND': 'true', - 'CRAYPE_LINK_TYPE': 'dynamic' + self.prgenv_flags = { + # 'PrgEnv-cray': ' -O2 -homp', + 'PrgEnv-gnu': ['-g', '-O2', '-fopenmp'], + # 'PrgEnv-intel': ' -O2 -qopenmp', + # 'PrgEnv-pgi': ' -O2 -mp' } +# if self.current_system.name == 'kesch': +# self.exclusive_access = True self.num_tasks = 1 self.num_tasks_per_node = 1 + self.num_cpus_per_task = 4 + self.num_tasks_per_core= 1 + self.time_limit = (0,0,30) + self.num_iterations = 5 + self.variables = { + 'CRAYPE_LINK_TYPE': 'dynamic', + 'OMP_NUM_THREADS': str(self.num_cpus_per_task), + 'ITERATIONS': str(self.num_iterations), + 'OMP_PROC_BIND': 'true', + } + self.maintainers = ['MK', 'JG'] self.tags = {'production'} + # gdb4hpc has its own way to launch a job: + self.post_run = ['gdb4hpc -b ./gdb4hpc.in &> gdb4hpc.rpt'] + + def setup(self, partition, environ, **job_opts): + super().setup(partition, environ, **job_opts) + prgenv_flags = self.prgenv_flags[self.current_environ.name] + self.build_system.cflags = prgenv_flags + self.build_system.cxxflags = prgenv_flags + self.build_system.fflags = prgenv_flags + + +@rfm.required_version('>=2.14') +@rfm.parameterized_test(['F90', 'F90']) +#@rfm.parameterized_test(['F90', 'F90'], ['C', 'c'], ['C++', 'cc']) +class Gdb4hpcCpuCheck(Gdb4hpcCheck): + def __init__(self, lang, extension): + super().__init__(lang, extension) + + self.valid_systems = ['dom:gpu'] +# self.valid_systems = ['daint:gpu', 'daint:mc', +# 'dom:gpu', 'dom:mc'] + +# self.valid_systems.append('kesch:cn') +# if self.current_system.name == 'kesch' and self.lang == 'C': +# self.build_system.ldflags = ['-lm'] + self.sanity_patterns = sn.all([ sn.assert_reference(sn.extractsingle( r'^tst\{0\}:\s+(?P\d+.\d+[eE]-\d+)', - 'F90/gdb4hpc.rpt', + 'gdb4hpc.rpt', 'result', float), 2.572e-6, -1e-1, 1.0e-1), sn.assert_found(r'gdb4hpc 3.0 - Cray Line Mode Parallel Debugger', - 'F90/gdb4hpc.rpt'), + 'gdb4hpc.rpt'), sn.assert_found(r'Shutting down debugger and killing application', - 'F90/gdb4hpc.rpt') + 'gdb4hpc.rpt') ]) - - self.maintainers = ['JG', 'MK'] - From c2d4e30f15d4bdd2ca591c3b1be6dc25e5d0a2af Mon Sep 17 00:00:00 2001 From: jgp Date: Mon, 17 Dec 2018 18:19:17 +0100 Subject: [PATCH 4/9] answering comments --- .../tools/profiling_and_debugging/gdb4hpc.py | 28 ++++--------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py index 55bf7d211d..a28c58a1aa 100644 --- a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -18,25 +18,19 @@ def __init__(self, lang, extension): if lang == 'F90': self.build_system.max_concurrency = 1 - #self.executable = './jacobi' self.executable = 'gdb4hpc -v' self.sourcesdir = os.path.join('src', lang) self.valid_prog_environs = ['PrgEnv-gnu'] self.modules = ['gdb4hpc'] - self.prgenv_flags = { - # 'PrgEnv-cray': ' -O2 -homp', - 'PrgEnv-gnu': ['-g', '-O2', '-fopenmp'], - # 'PrgEnv-intel': ' -O2 -qopenmp', - # 'PrgEnv-pgi': ' -O2 -mp' - } -# if self.current_system.name == 'kesch': -# self.exclusive_access = True + self.prgenv_flags = ['-g -O2 -fopenmp'] + self.build_system.cflags = self.prgenv_flags + self.build_system.cxxflags = self.prgenv_flags + self.build_system.fflags = self.prgenv_flags self.num_tasks = 1 self.num_tasks_per_node = 1 self.num_cpus_per_task = 4 self.num_tasks_per_core= 1 - self.time_limit = (0,0,30) self.num_iterations = 5 self.variables = { 'CRAYPE_LINK_TYPE': 'dynamic', @@ -50,16 +44,10 @@ def __init__(self, lang, extension): # gdb4hpc has its own way to launch a job: self.post_run = ['gdb4hpc -b ./gdb4hpc.in &> gdb4hpc.rpt'] - def setup(self, partition, environ, **job_opts): - super().setup(partition, environ, **job_opts) - prgenv_flags = self.prgenv_flags[self.current_environ.name] - self.build_system.cflags = prgenv_flags - self.build_system.cxxflags = prgenv_flags - self.build_system.fflags = prgenv_flags - @rfm.required_version('>=2.14') @rfm.parameterized_test(['F90', 'F90']) +#@rfm.parameterized_test(['F90', 'F90'], ['C', 'c']) #@rfm.parameterized_test(['F90', 'F90'], ['C', 'c'], ['C++', 'cc']) class Gdb4hpcCpuCheck(Gdb4hpcCheck): def __init__(self, lang, extension): @@ -69,17 +57,13 @@ def __init__(self, lang, extension): # self.valid_systems = ['daint:gpu', 'daint:mc', # 'dom:gpu', 'dom:mc'] -# self.valid_systems.append('kesch:cn') -# if self.current_system.name == 'kesch' and self.lang == 'C': -# self.build_system.ldflags = ['-lm'] - self.sanity_patterns = sn.all([ sn.assert_reference(sn.extractsingle( r'^tst\{0\}:\s+(?P\d+.\d+[eE]-\d+)', 'gdb4hpc.rpt', 'result', float), 2.572e-6, -1e-1, 1.0e-1), - sn.assert_found(r'gdb4hpc 3.0 - Cray Line Mode Parallel Debugger', + sn.assert_found(r'gdb4hpc \d\.\d - Cray Line Mode Parallel Debugger', 'gdb4hpc.rpt'), sn.assert_found(r'Shutting down debugger and killing application', From fc9c716634024d1786a2ba9a1a7b435a1a3396f4 Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 9 Apr 2019 13:39:51 +0200 Subject: [PATCH 5/9] smarter jobfile creation --- .../tools/profiling_and_debugging/gdb4hpc.py | 49 +++++++++++-------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py index a28c58a1aa..ed449230d5 100644 --- a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -3,13 +3,11 @@ import reframe as rfm import reframe.utility.sanity as sn -from reframe.core.launchers import LauncherWrapper - class Gdb4hpcCheck(rfm.RegressionTest): def __init__(self, lang, extension): super().__init__() - self.name = 'Gdb4hpcCheck_' + lang.replace('+', 'p') + self.name = type(self).__name__ + '_' + lang.replace('+', 'p') self.descr = 'Cray gdb4hpc check for %s' % lang self.lang = lang self.extension = extension @@ -18,19 +16,23 @@ def __init__(self, lang, extension): if lang == 'F90': self.build_system.max_concurrency = 1 - self.executable = 'gdb4hpc -v' + self.executable = 'gdb4hpc' + self.executable_opts = ['-v'] + self.target_executable = './jacobi' + self.gdbcmds = './%s.in' % self.executable + self.gdbslm = '%s.slm' % self.executable + self.gdbrpt = '%s.rpt' % self.executable self.sourcesdir = os.path.join('src', lang) self.valid_prog_environs = ['PrgEnv-gnu'] self.modules = ['gdb4hpc'] - self.prgenv_flags = ['-g -O2 -fopenmp'] + self.prgenv_flags = ['-g', '-O2', '-fopenmp'] self.build_system.cflags = self.prgenv_flags self.build_system.cxxflags = self.prgenv_flags self.build_system.fflags = self.prgenv_flags - self.num_tasks = 1 self.num_tasks_per_node = 1 self.num_cpus_per_task = 4 - self.num_tasks_per_core= 1 + self.num_tasks_per_core = 1 self.num_iterations = 5 self.variables = { 'CRAYPE_LINK_TYPE': 'dynamic', @@ -38,35 +40,42 @@ def __init__(self, lang, extension): 'ITERATIONS': str(self.num_iterations), 'OMP_PROC_BIND': 'true', } - self.maintainers = ['MK', 'JG'] + self.maintainers = ['JG'] self.tags = {'production'} + self.pre_run = [ + '#GDB4HPC #cray_debug_start', + '#GDB4HPC srun %s' % self.target_executable, + '#GDB4HPC #cray_debug_end' + ] + def setup(self, partition, environ, **job_opts): + super().setup(partition, environ, **job_opts) # gdb4hpc has its own way to launch a job: - self.post_run = ['gdb4hpc -b ./gdb4hpc.in &> gdb4hpc.rpt'] + self.post_run = [ + 'sed "s-#GDB4HPC --" %s | ' + 'egrep -v "output=|error=|^gdb4hpc" &> %s' % + (self.job.script_filename, self.gdbslm), + 'gdb4hpc -b %s &> %s' % (self.gdbcmds, self.gdbrpt) + ] @rfm.required_version('>=2.14') @rfm.parameterized_test(['F90', 'F90']) -#@rfm.parameterized_test(['F90', 'F90'], ['C', 'c']) -#@rfm.parameterized_test(['F90', 'F90'], ['C', 'c'], ['C++', 'cc']) class Gdb4hpcCpuCheck(Gdb4hpcCheck): def __init__(self, lang, extension): super().__init__(lang, extension) - - self.valid_systems = ['dom:gpu'] -# self.valid_systems = ['daint:gpu', 'daint:mc', -# 'dom:gpu', 'dom:mc'] - + self.valid_systems = ['dom:gpu', 'dom:mc', 'daint:gpu', 'daint:mc'] + # self.valid_systems = ['dom:gpu', 'dom:mc'] + # self.valid_systems = ['daint:gpu', 'daint:mc'] self.sanity_patterns = sn.all([ sn.assert_reference(sn.extractsingle( r'^tst\{0\}:\s+(?P\d+.\d+[eE]-\d+)', - 'gdb4hpc.rpt', - 'result', float), 2.572e-6, -1e-1, 1.0e-1), + 'gdb4hpc.rpt', 'result', float), + 2.572e-6, -1e-1, 1.0e-1), - sn.assert_found(r'gdb4hpc \d\.\d - Cray Line Mode Parallel Debugger', + sn.assert_found(r'gdb4hpc \d\.\d - Cray Line Mode Parallel Debugg', 'gdb4hpc.rpt'), sn.assert_found(r'Shutting down debugger and killing application', 'gdb4hpc.rpt') ]) - From 68a9a609d14b6de5a3678687fd57f6a42e853e1f Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 9 Apr 2019 13:40:40 +0200 Subject: [PATCH 6/9] typo --- cscs-checks/tools/profiling_and_debugging/gdb4hpc.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py index ed449230d5..4a9b2b34e4 100644 --- a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -65,8 +65,6 @@ class Gdb4hpcCpuCheck(Gdb4hpcCheck): def __init__(self, lang, extension): super().__init__(lang, extension) self.valid_systems = ['dom:gpu', 'dom:mc', 'daint:gpu', 'daint:mc'] - # self.valid_systems = ['dom:gpu', 'dom:mc'] - # self.valid_systems = ['daint:gpu', 'daint:mc'] self.sanity_patterns = sn.all([ sn.assert_reference(sn.extractsingle( r'^tst\{0\}:\s+(?P\d+.\d+[eE]-\d+)', From e74ed6f069c4ab23fca1aa2e3d32797349454718 Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 9 Apr 2019 17:08:30 +0200 Subject: [PATCH 7/9] Fix for review --- cscs-checks/tools/profiling_and_debugging/gdb4hpc.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py index 4a9b2b34e4..1ab202f8bd 100644 --- a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -42,6 +42,11 @@ def __init__(self, lang, extension): } self.maintainers = ['JG'] self.tags = {'production'} + # gdb4hpc has its own way to launch a debugging job and needs an + # additional jobscript. The reframe jobscript can be copied for that + # purpose, by adding the cray_debug_ comments around the job launch + # command to be debugged, gdb4hpc is then activated by removing the + # #GDB4HPC comments in the next (post_run) step. self.pre_run = [ '#GDB4HPC #cray_debug_start', '#GDB4HPC srun %s' % self.target_executable, @@ -50,7 +55,7 @@ def __init__(self, lang, extension): def setup(self, partition, environ, **job_opts): super().setup(partition, environ, **job_opts) - # gdb4hpc has its own way to launch a job: + # create extra jobscript for gdb4hpc: self.post_run = [ 'sed "s-#GDB4HPC --" %s | ' 'egrep -v "output=|error=|^gdb4hpc" &> %s' % @@ -71,7 +76,7 @@ def __init__(self, lang, extension): 'gdb4hpc.rpt', 'result', float), 2.572e-6, -1e-1, 1.0e-1), - sn.assert_found(r'gdb4hpc \d\.\d - Cray Line Mode Parallel Debugg', + sn.assert_found(r'gdb4hpc \d\.\d - Cray Line Mode Parallel Debug', 'gdb4hpc.rpt'), sn.assert_found(r'Shutting down debugger and killing application', From 8556b84b12c378a0927b035d2ba45d43173ac2fd Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 9 Apr 2019 17:09:38 +0200 Subject: [PATCH 8/9] pep8 --- cscs-checks/tools/profiling_and_debugging/gdb4hpc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py index 1ab202f8bd..662164b7f6 100644 --- a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -43,9 +43,9 @@ def __init__(self, lang, extension): self.maintainers = ['JG'] self.tags = {'production'} # gdb4hpc has its own way to launch a debugging job and needs an - # additional jobscript. The reframe jobscript can be copied for that - # purpose, by adding the cray_debug_ comments around the job launch - # command to be debugged, gdb4hpc is then activated by removing the + # additional jobscript. The reframe jobscript can be copied for that + # purpose, by adding the cray_debug_ comments around the job launch + # command to be debugged, gdb4hpc is then activated by removing the # #GDB4HPC comments in the next (post_run) step. self.pre_run = [ '#GDB4HPC #cray_debug_start', From 71571e8cf19502fac626833625fd3dabbdce4a11 Mon Sep 17 00:00:00 2001 From: jgp Date: Tue, 9 Apr 2019 17:31:09 +0200 Subject: [PATCH 9/9] removing broken daint (CTI error) --- cscs-checks/tools/profiling_and_debugging/gdb4hpc.py | 2 +- .../tools/profiling_and_debugging/src/F90/gdb4hpc.in | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py index 662164b7f6..125d737fd1 100644 --- a/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py +++ b/cscs-checks/tools/profiling_and_debugging/gdb4hpc.py @@ -69,7 +69,7 @@ def setup(self, partition, environ, **job_opts): class Gdb4hpcCpuCheck(Gdb4hpcCheck): def __init__(self, lang, extension): super().__init__(lang, extension) - self.valid_systems = ['dom:gpu', 'dom:mc', 'daint:gpu', 'daint:mc'] + self.valid_systems = ['dom:gpu', 'dom:mc'] self.sanity_patterns = sn.all([ sn.assert_reference(sn.extractsingle( r'^tst\{0\}:\s+(?P\d+.\d+[eE]-\d+)', diff --git a/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in index 112280c454..843c582094 100644 --- a/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in +++ b/cscs-checks/tools/profiling_and_debugging/src/F90/gdb4hpc.in @@ -7,27 +7,22 @@ break _jacobi.F90:90 continue list 90,91 print residual -#printf "(_jacobi.F90:90)] residual:%f\n", residual # ----2 continue print residual -#printf "(_jacobi.F90:90)] residual:%f\n", residual # ----3 continue print residual -#printf "(_jacobi.F90:90)] residual:%f\n", residual # ----4 continue print residual -#printf "(_jacobi.F90:90)] residual:%f\n", residual # ----5 continue print residual -#printf "(_jacobi.F90:90)] residual:%f\n", residual quit -# can't use printf with gdb4hpc until this cray case is solved: +# can use printf with gdb4hpc only in gdbmode: +# printf "(_jacobi.F90:90)] residual:%f\n", residual # CASE #227672 - GDB4HPC: PRINTF SUPPORT -# printf "(_jacobi.F90:90)] residual:%f\n", residual # TODO: tracepoints