示例#1
0
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]
示例#2
0
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]
示例#3
0
        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
            
            


    
示例#4
0
            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