Beispiel #1
0
int rsreader_force_link2rank (resrc_api_ctx_t *rsapi, machs_t *machs)
{
    int rc = -1;
    resrc_tree_t *rt = NULL;
    resrc_t *r_resrc = resrc_tree_resrc (resrc_tree_root (rsapi));
    if (!find_all_nodes (rsapi, r_resrc, &rt))
        rc = rsreader_set_node_digest (machs, rt);
    if (rt)
        resrc_tree_destroy (rsapi, rt, false, false);

    return rc;
}
Beispiel #2
0
static int test_using_reader_hwloc ()
{
    int rc = 1;
    hwloc_topology_t topology;
    resrc_api_ctx_t *rsapi = NULL;
    resrc_tree_t *phys_tree = NULL;

    init_time();

    if (!(rsapi = resrc_api_init ()))
        goto ret;

    ok ((hwloc_topology_init (&topology) == 0),
        "hwloc topology init succeeded");
    ok ((hwloc_topology_load (topology) == 0),
        "hwloc topology load succeeded");
    /* Generate the hardware hierarchy of resources using hwloc reader */
    ok ((resrc_generate_hwloc_resources (rsapi, topology, NULL, NULL) != 0),
        "resource generation from hwloc took: %lf",
        ((double)get_time())/1000000);
    hwloc_topology_destroy (topology);

    phys_tree = resrc_tree_root (rsapi);
    if (!phys_tree)
        goto ret;

    rc = test_a_resrc (rsapi, resrc_tree_resrc (phys_tree), false);

ret:
    if (rsapi) {
        if (phys_tree)
            resrc_tree_destroy (rsapi, phys_tree, true, true);
        resrc_api_fini (rsapi);
    }
    return rc;
}
Beispiel #3
0
static int test_using_reader_rdl ()
{
    int rc = 1;
    char *filename = NULL;
    resrc_api_ctx_t *rsapi = NULL;
    resrc_t *resrc = NULL;
    resrc_tree_t *phys_tree = NULL;
    resrc_flow_t *power_flow = NULL;
    resrc_flow_t *bw_flow = NULL;

    if (!(filename = getenv ("TESTRESRC_INPUT_FILE")))
        goto ret;

    ok (!(filename == NULL || *filename == '\0'), "resource file provided");
    ok ((access (filename, F_OK) == 0), "resource file exists");
    ok ((access (filename, R_OK) == 0), "resource file readable");
    init_time();

    if (!(rsapi = resrc_api_init ()))
        goto ret;

    /* Generate a hardware hierarchy of resources using RDL reader */
    resrc = resrc_generate_rdl_resources (rsapi, filename, "default");
    double e = (double)get_time()/1000000;
    ok ((resrc != NULL), "resource generation from config file took: %lf", e);
    if (!resrc)
        goto ret;
    phys_tree = resrc_tree_root (rsapi);

    /* Generate a power hierarchy of resources using RDL reader */
    if (!(power_flow = resrc_flow_generate_rdl (rsapi, filename, "power")))
        goto ret;
    else if (verbose) {
        printf ("Listing power tree\n");
        resrc_flow_print (power_flow);
        printf ("End of power tree\n");
    }

    /* Generate a bandwidth hierarchy of resources using RDL reader */
    if (!(bw_flow = resrc_flow_generate_rdl (rsapi, filename, "bandwidth")))
        goto ret;
    else if (verbose) {
        printf ("Listing bandwidth tree\n");
        resrc_flow_print (bw_flow);
        printf ("End of bandwidth tree\n");
    }

    rc = test_a_resrc (rsapi, resrc, true);

ret:
    if (rsapi) {
        if (bw_flow)
            resrc_flow_destroy (rsapi, bw_flow, true);
        if (power_flow)
            resrc_flow_destroy (rsapi, power_flow, true);
        if (phys_tree)
            resrc_tree_destroy (rsapi, phys_tree, true, true);
        resrc_api_fini (rsapi);
    }
    return rc;
}