seed = args.seed
    if seed is None:
        seed = np.random.randint(0, (2**32) - 1)
        print("Using seed {}".format(seed))

    print("Loading data")
    print("----------")

    # ds1_details = {
    #         'data': loader.HTRU2Data(verbose=verbose, seed=seed),
    #         'name': 'HTRU2',
    #         'readable_name': 'HTRU2',
    #     }

    ds1_details = {
        'data': loader.PenDigitData(verbose=verbose, seed=seed),
        'name': 'pen_digits',
        'readable_name': 'Handwritten Digits',
    }

    ds2_details = {
        'data': loader.CreditDefaultData(verbose=verbose, seed=seed),
        'name': 'credit_default',
        'readable_name': 'Credit Default',
    }

    # ds2_details = {
    #         'data': None,
    #         'name': None,
    #         'readable_name': None,
    #     }
    threads = args.threads

    seed = args.seed
    if seed is None:
        seed = np.random.randint(0, (2**32) - 1)
        print("Using seed {}".format(seed))

    print("Loading data")
    print("----------")

    ds1_data = loader.CreditDefaultData(verbose=verbose, seed=seed)
    ds1_name = 'credit_default'
    ds1_readable_name = 'Credit Default'
    ds1_data.load_and_process()

    ds2_data = loader.PenDigitData(verbose=verbose, seed=seed)
    ds2_name = 'pen_digits'
    ds2_readable_name = 'Handwritten Digits'
    ds2_data.load_and_process()

    if verbose:
        print("----------")
    print("Running experiments")

    timings = {}

    experiment_details_ds1 = experiments.ExperimentDetails(ds1_data,
                                                           ds1_name,
                                                           ds1_readable_name,
                                                           threads=threads,
                                                           seed=seed)