def setUp(self): from itertools import takewhile, product hello = find_spec("tests.benchmarks.concurrent_insert.hello").origin create_app(name="hello", executable=hello) self.launcherInfo = util.launcher_info() max_workers = self.launcherInfo.num_workers worker_counts = list( takewhile(lambda x: x <= max_workers, (2**i for i in range(20)))) if max_workers not in worker_counts: worker_counts.append(max_workers) worker_counts = list(reversed(worker_counts)) # ranks_per_node = [4, 8, 16, 32] ranks_per_node = [32] self.experiments = product(worker_counts, ranks_per_node) # Load mpi4py/Balsam on compute nodes prior to experiments hello = find_spec("tests.benchmarks.concurrent_insert.hello").origin python = sys.executable app_cmd = f"{python} {hello}" mpi_str = self.launcherInfo.mpi_cmd( self.launcherInfo.workerGroup.workers, app_cmd=app_cmd, envs={}, num_ranks=max_workers, ranks_per_node=1, threads_per_rank=1, threads_per_core=1) stdout, elapsed_time = util.cmdline(mpi_str)
def setUp(self): killer_name = find_spec("tests.ft_apps.dynamic_kill.killer").origin slow_name = find_spec("tests.ft_apps.dynamic_kill.slow").origin interpreter = sys.executable self.killer_name = f"{interpreter} {killer_name}" self.slow_name = f"{interpreter} {slow_name}" create_app(name="killer", executable=self.killer_name) create_app(name="slow", executable=self.slow_name)
def setUp(self): launcherInfo = util.launcher_info() self.num_nodes = len(launcherInfo.workerGroup.workers) hello_path = find_spec("tests.ft_apps.concurrent.hello").origin insert_path = find_spec("tests.ft_apps.concurrent.mpi_insert").origin interpreter = sys.executable hello_path = f"{sys.executable} {hello_path}" insert_path = f"{sys.executable} {insert_path}" create_app(name="hello", executable=hello_path) create_app(name="mpi4py-insert", executable=insert_path)
def setUp(self): aliases = "make_sides square reduce".split() self.apps = {} for name in aliases: interpreter = sys.executable exe_path = interpreter + " " + find_spec( f'tests.ft_apps.dag.{name}').origin pre_path = interpreter + " " + find_spec( f'tests.ft_apps.dag.{name}_pre').origin post_path = interpreter + " " + find_spec( f'tests.ft_apps.dag.{name}_post').origin app = create_app(name=name, executable=exe_path, preproc=pre_path, postproc=post_path) self.apps[name] = app
def setUp(self): self.app_path = os.path.dirname( find_spec("tests.ft_apps.c_apps").origin) self.app = create_app(name='omp') self.job0 = create_job(name='job0', app='omp', num_nodes=2, ranks_per_node=32, threads_per_rank=2) self.job1 = create_job(name='job1', app='omp', num_nodes=2, ranks_per_node=64, threads_per_rank=1) self.job2 = create_job(name='job2', app='omp', num_nodes=1, ranks_per_node=2, threads_per_rank=64, threads_per_core=2)