Skip to content
Snippets Groups Projects
Commit 6ff5d47c authored by Mark Turner's avatar Mark Turner
Browse files

APS and perf-report (COSMA7 and DINE)

parent 64cd6ed4
Branches
Tags
No related merge requests found
__pycache__
*.log
......@@ -24,13 +24,22 @@ site_configuration = {
'max_jobs': 100,
},
{
'name': 'cpu_multi_node',
'name': 'cpu_multi_node_aps',
'descr': 'cpu nodes - multi node',
'scheduler': 'slurm',
'launcher': 'mpirun',
'access': ['-p cosma7', '-A ds007'],
'environs': ['intelcosma7'],
'max_jobs': 100,
},
{
'name': 'cpu_multi_node_perf_report',
'descr': 'cpu nodes - multi node',
'scheduler': 'slurm',
'launcher': 'local',
'access': ['-p cosma7', '-A ds007'],
'environs': ['intelcosma7'],
'max_jobs': 100,
}
]
}
......@@ -39,7 +48,7 @@ site_configuration = {
{
'modules': ['intel_comp/2018', 'intel_mpi/2018',
'parmetis/4.0.3', 'parallel_hdf5/1.10.3',
'gsl/2.4', 'fftw/3.3.8cosma7',
'gsl/2.4', 'fftw/3.3.8epyc',
'python/3.6.5', 'vtune',
'allinea/ddt/20.2.1'],
'name': 'intelcosma7',
......
......@@ -24,13 +24,22 @@ site_configuration = {
'max_jobs': 100,
},
{
'name': 'cpu_multi_node',
'name': 'cpu_multi_node_aps',
'descr': 'cpu nodes - multi node',
'scheduler': 'slurm',
'launcher': 'mpirun',
'access': ['-p bluefield1', '-A durham'],
'environs': ['intel'],
'max_jobs': 100,
},
{
'name': 'cpu_multi_node_perf_report',
'descr': 'cpu nodes - multi node',
'scheduler': 'slurm',
'launcher': 'local',
'access': ['-p bluefield1', '-A durham'],
'environs': ['intel'],
'max_jobs': 100,
}
]
}
......@@ -39,14 +48,15 @@ site_configuration = {
{
'modules': ['intel_comp/2018', 'intel_mpi/2018',
'parmetis/4.0.3', 'parallel_hdf5/1.10.3',
'gsl/2.4', 'fftw/3.3.8cosma7',
'gsl/2.4', 'fftw/3.3.8epyc',
'python/3.6.5', 'vtune',
'allinea/ddt/20.2.1'],
'name': 'intel',
'cc': 'icc',
'cxx': 'icpc',
'ftn': '',
'target_systems': ['dine']
'target_systems': ['dine'],
'variables': [['MPICC','mpiicc'],['I_MPI_FABRICS','shm:tcp'],['MPS_STAT_LEVEL','2']]
}
],
'logging': [
......
env.sh 100644 → 100755
File mode changed from 100644 to 100755
run.sh 100644 → 100755
File mode changed from 100644 to 100755
......@@ -2,17 +2,13 @@ import reframe as rfm
import reframe.utility.sanity as sn
GIT_REV = '0bb2f777a298531d5c60214314a2b2679df1fc6a'
def setup(test, num_tasks, num_tasks_per_node=1):
test.time_limit = '2d'
def setup(test, launcher, num_tasks, num_tasks_per_node=1):
test.time_limit = '1h'
test.num_tasks = num_tasks
test.num_tasks_per_node = num_tasks_per_node
test.num_tasks_per_node = 1
test.valid_prog_environs = ['*']
test.valid_systems = ['cosma7:cpu_single_node',
# 'cosma7:cpu_multi_node',
'dine:cpu_single_node']
test.build_system = 'Autotools'
test.sourcesdir = None
......@@ -20,7 +16,7 @@ def setup(test, num_tasks, num_tasks_per_node=1):
'rm -rf swiftsim',
'git clone git@gitlab:swift/swiftsim.git',
'pushd swiftsim',
f'git checkout {GIT_REV}',
f'git checkout master',
'git clean -x -f -d',
'./autogen.sh'
]
......@@ -29,11 +25,26 @@ def setup(test, num_tasks, num_tasks_per_node=1):
test.sanity_patterns = sn.assert_found(r'main: done. Bye.', test.stdout)
ic_dir = None
if rfm.utility.osext.osuser() == 'dc-turn5' and \
test.current_system.name == 'cosma7':
ic_dir = '/cosma7/data/ds007/dc-turn5/swift_initial_conditions'
elif test.current_system.name == 'cosma7':
ic_dir = '/cosma5/data/do008/dc-fraw1/swift_initial_conditions'
if rfm.utility.osext.osuser() == 'dc-turn5':
if test.current_system.name == 'cosma7':
ic_dir = '/cosma7/data/ds007/dc-turn5/swift_initial_conditions'
if launcher == 'mpirun':
test.valid_systems = ['cosma7:cpu_multi_node_aps']
elif launcher == 'perf-report':
test.valid_systems = ['cosma7:cpu_multi_node_perf_report']
elif test.current_system.name == 'dine':
ic_dir = '/cosma5/data/durham/dc-turn5/swift_initial_conditions'
if launcher == 'mpirun':
test.valid_systems = ['dine:cpu_multi_node_aps']
elif launcher == 'perf-report':
test.valid_systems = ['dine:cpu_multi_node_perf_report']
else:
raise ValueError(f'Need to handle {test.current_system.name} for {rfm.utility.osext.osuser()}')
elif rfm.utility.osext.osuser() == 'dc-fraw1':
if test.current_system.name == 'cosma7' or test.current_system.name == 'dine':
ic_dir = '/cosma5/data/do008/dc-fraw1/swift_initial_conditions'
else:
raise ValueError(f'Need to handle {test.current_system.name} for {rfm.utility.osext.osuser()}')
else:
raise ValueError(f'Need to handle {test.current_system.name} for {rfm.utility.osext.osuser()}')
return ic_dir
......
......@@ -4,24 +4,17 @@ import reframe.core.launchers.mpi
import common
@rfm.parameterized_test(*([tasks, threads, iteration, executable]
for tasks in [8]
for threads in list(reversed([64]))
@rfm.parameterized_test(*([tasks, threads, iteration, launcher]
for tasks in [2]
for threads in list(reversed([56]))
for iteration in [1]
for executable in ['mpirun','perf-report']))
for launcher in ['mpirun','perf-report']))
class PMillenniumTest(rfm.RegressionTest):
def __init__(self, num_tasks, num_threads, iteration, executable):
ic_dir = common.setup(self, num_tasks, num_tasks_per_node=num_tasks)
if num_threads == 64:
self.time_limit = '40m'
else:
self.time_limit = '2h'
def __init__(self, num_tasks, num_threads, iteration, launcher):
ic_dir = common.setup(self, launcher, num_tasks, num_tasks_per_node=num_tasks)
test_dir = 'swiftsim/examples/PMillennium/PMillennium-768'
num_threads = num_threads // num_tasks
# self.cpus_per_task = num_threads #? may still be needed
self.cpus_per_task = 32 # added
print(f'Running with threads : <{num_threads}>')
self.keep_files = [test_dir]
......@@ -31,17 +24,18 @@ class PMillenniumTest(rfm.RegressionTest):
'--with-parmetis'
]
self.prerun_cmds = [f'pushd {test_dir}']
num_iterations = 1
num_iterations = 5
self.executable = executable
if executable == 'mpirun':
self.executable_opts = ['aps', '--collection-mode=mpi,omp']
elif executable == 'perf-report':
self.executable_opts = ['--mpi=intel-mpi']
if launcher == 'mpirun':
self.executable = 'aps'
self.executable_opts = ['--collection-mode=mpi,omp', '../../swift_mpi']
elif launcher == 'perf-report':
self.executable = 'perf-report'
self.executable_opts = ['--mpi=intel-mpi', '../../swift_mpi']
self.time_limit = '2h40m'
self.executable_opts += [
'../../swift_mpi',
'--cosmology',
'--self-gravity',
'-v', '1',
......@@ -52,7 +46,3 @@ class PMillenniumTest(rfm.RegressionTest):
'p-mill-768.yml'
]
#@rfm.run_before('run')
#def set_memory_limit(self):
# self.job.options += [f'--cpus-per-task={self.cpus_per_task}']
import reframe as rfm
import reframe.core.launchers.mpi
import common
@rfm.parameterized_test(*([tasks, threads, iteration, launcher]
for tasks in [2]
for threads in list(reversed([56]))
for iteration in [1]
for launcher in ['mpirun', 'perf-report']))
class SodShock3dTest(rfm.RegressionTest):
def __init__(self, num_tasks, num_threads, iteration, launcher):
ic_dir = common.setup(self, launcher, num_tasks, num_tasks_per_node=num_tasks)
test_dir = 'swiftsim/examples/HydroTests/SodShock_3D'
self.cpus_per_task = 32 # added
print(f'Running with threads : <{num_threads}>')
self.keep_files = [test_dir]
self.build_system.config_opts = [
'--enable-ipo',
'--with-tbbmalloc',
'--with-parmetis'
]
self.prerun_cmds = [f'pushd {test_dir}']
num_iterations = 10000
if launcher == 'mpirun':
self.executable = 'aps'
self.executable_opts = ['--collection-mode=mpi,omp', '../../swift_mpi',
'-P', 'Snapshots:time_first:999999999']
elif launcher == 'perf-report':
self.executable = 'perf-report'
self.executable_opts = ['--mpi=intel-mpi', '../../swift_mpi']
self.time_limit = '2h40m'
self.executable_opts += [
'--hydro',
'-v', '1',
f'--threads={num_threads}',
'-n', f'{num_iterations}',
'-P', 'Restarts:enable:0',
'-P', f'InitialConditions:file_name:{ic_dir}/sodshock/glassCube_64.hdf5',
'sodShock.yml'
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment