def test_benchmark_singlepop(verbose=False, scale=4): from dipde.interfaces.mpi import MPIJob import dipde.interfaces.mpi.benchmark as benchmark from dipde.interfaces.mpi.synchronizationharness import MPISynchronizationHarness # Smoke test benchmark code, single core: network = benchmark.get_singlepop_benchmark_network(scale) synchronization_harness = MPISynchronizationHarness(network) time_network(network, synchronization_harness=synchronization_harness) # Test to ensure consistent values: result_dict_1 = json.loads( MPIJob(np=1, python='python', module_args=['--benchmark=singlepop', '--scale=%s' % scale], module=benchmark.__file__).run()) result_dict_2 = json.loads( MPIJob(np=2, python='python', module_args=['--benchmark=singlepop', '--scale=%s' % scale], module=benchmark.__file__).run()) result_dict_4 = json.loads( MPIJob(np=4, python='python', module_args=['--benchmark=singlepop', '--scale=%s' % scale], module=benchmark.__file__).run()) for key in result_dict_1: if key != 'run_time': assert result_dict_1[key] == result_dict_2[key] == result_dict_4[ key]
def test_benchmark_recurrent_singlepop(verbose=False, scale=4): from dipde.interfaces.mpi import MPIJob import dipde.interfaces.mpi.benchmark as benchmark from dipde.interfaces.mpi.synchronizationharness import MPISynchronizationHarness # Smoke test benchmark code, single core: network = benchmark.get_recurrent_singlepop_benchmark_network(scale) synchronization_harness = MPISynchronizationHarness(network) time_network(network, synchronization_harness=synchronization_harness) # Test to ensure consistent values: result_dict_1 = json.loads( MPIJob( np=1, python="python", module_args=["--benchmark=recurrent_singlepop", "--scale=%s" % scale], module=benchmark.__file__, ).run() ) result_dict_2 = json.loads( MPIJob( np=2, python="python", module_args=["--benchmark=recurrent_singlepop", "--scale=%s" % scale], module=benchmark.__file__, ).run() ) result_dict_4 = json.loads( MPIJob( np=4, python="python", module_args=["--benchmark=recurrent_singlepop", "--scale=%s" % scale], module=benchmark.__file__, ).run() ) for key in result_dict_1: if key != "run_time": assert result_dict_1[key] == result_dict_2[key] == result_dict_4[key]
network_getter = get_singlepop_benchmark_network # pragma: no cover parser_singlepop = argparse.ArgumentParser() # pragma: no cover parser_singlepop.add_argument('--scale',type=int,default=2) # pragma: no cover trial_args = parser_singlepop.parse_args(remaining_args) # pragma: no cover elif args.benchmark == 'recurrent_singlepop': # pragma: no cover # Singlepop-specific configuration: network_getter = get_recurrent_singlepop_benchmark_network # pragma: no cover parser_singlepop = argparse.ArgumentParser() # pragma: no cover parser_singlepop.add_argument('--scale',type=int,default=2) # pragma: no cover trial_args = parser_singlepop.parse_args(remaining_args) # pragma: no cover else: # pragma: no cover raise NotImplementedError(args.benchmark) # pragma: no cover network = network_getter(**vars(trial_args)) # pragma: no cover synchronization_harness = MPISynchronizationHarness(network) # pragma: no cover run_time = time_network(network, synchronization_harness=synchronization_harness) # pragma: no cover if network.rank == 0: # pragma: no cover result_dict = copy.copy(network.firing_rate_organizer.firing_rate_dict_internal)[network.ti] # pragma: no cover result_dict['run_time'] = run_time # pragma: no cover print json.dumps(result_dict) # pragma: no cover
remaining_args) # pragma: no cover elif args.benchmark == 'recurrent_singlepop': # pragma: no cover # Singlepop-specific configuration: network_getter = get_recurrent_singlepop_benchmark_network # pragma: no cover parser_singlepop = argparse.ArgumentParser() # pragma: no cover parser_singlepop.add_argument('--scale', type=int, default=2) # pragma: no cover trial_args = parser_singlepop.parse_args( remaining_args) # pragma: no cover else: # pragma: no cover raise NotImplementedError(args.benchmark) # pragma: no cover network = network_getter(**vars(trial_args)) # pragma: no cover synchronization_harness = MPISynchronizationHarness( network) # pragma: no cover run_time = time_network( network, synchronization_harness=synchronization_harness) # pragma: no cover if network.rank == 0: # pragma: no cover result_dict = copy.copy( network.firing_rate_organizer.firing_rate_dict_internal)[ network.ti] # pragma: no cover result_dict['run_time'] = run_time # pragma: no cover print json.dumps(result_dict) # pragma: no cover