Exemplo n.º 1
0
int main()
{
  cali_config_preset("CALI_CALIPER_FLUSH_ON_EXIT", "false");

  cali_id_t iter_attr = 
    cali_create_attribute("iteration", CALI_TYPE_INT, CALI_ATTR_ASVALUE);

  cali_begin_string_byname("phase", "loop");

  for (int i = 0; i < 4; ++i) {
    cali_begin_int(iter_attr, i);
    cali_end(iter_attr);
  }
  
  cali_end_byname("phase");

  cali_begin_byname("ci_test_c_ann.meta-attr");

  cali_id_t meta_attr =
      cali_create_attribute("meta-attr", CALI_TYPE_INT, CALI_ATTR_DEFAULT);
  int val  = 47;
  size_t meta_sizes = sizeof(int);
  const void* meta_val[1] = { &val };

  cali_id_t test_attr =
      cali_create_attribute_with_metadata("test-attr-with-metadata", CALI_TYPE_STRING, CALI_ATTR_DEFAULT,
                                          1, &meta_attr, meta_val, &meta_sizes);

  cali_set_string(test_attr, "abracadabra");
  
  cali_end_byname("ci_test_c_ann.meta-attr");
  
  cali_begin_byname("ci_test_c_ann.setbyname");

  cali_set_int_byname("attr.int", 20);
  cali_set_double_byname("attr.dbl", 1.25);
  cali_set_string_byname("attr.str", "fidibus");

  cali_end_byname("ci_test_c_ann.setbyname");

  cali_flush(CALI_FLUSH_CLEAR_BUFFERS);
}
Exemplo n.º 2
0
flux_t *connector_init (const char *path, int flags)
{
#if HAVE_CALIPER
    cali_id_t uuid   = cali_create_attribute ("flux.uuid",
                       CALI_TYPE_STRING,
                       CALI_ATTR_SKIP_EVENTS);
    size_t length = strlen(path);
    cali_push_snapshot ( CALI_SCOPE_PROCESS | CALI_SCOPE_THREAD,
                         1, &uuid, (const void **)&path, &length);
#endif

    ctx_t *ctx = NULL;
    if (!path) {
        errno = EINVAL;
        goto error;
    }
    if (!(ctx = malloc (sizeof (*ctx)))) {
        errno = ENOMEM;
        goto error;
    }
    memset (ctx, 0, sizeof (*ctx));
    ctx->magic = MODHANDLE_MAGIC;
    if (!(ctx->uuid = strdup (path))) {
        errno = ENOMEM;
        goto error;
    }
    if (asprintf (&ctx->uri, "inproc://%s", ctx->uuid) < 0) {
        errno = ENOMEM;
        goto error;
    }
    if (!(ctx->h = flux_handle_create (ctx, &handle_ops, flags)))
        goto error;
    return ctx->h;
error:
    if (ctx) {
        int saved_errno = errno;
        op_fini (ctx);
        errno = saved_errno;
    }
    return NULL;
}
Exemplo n.º 3
0
void profiling_context_init (struct profiling_context* prof)
{
    prof->msg_type = cali_create_attribute ("flux.message.type",
                                            CALI_TYPE_STRING,
                                            CALI_ATTR_DEFAULT | CALI_ATTR_ASVALUE);
    prof->msg_seq = cali_create_attribute ("flux.message.seq",
                                           CALI_TYPE_INT,
                                           CALI_ATTR_SKIP_EVENTS);
    prof->msg_topic = cali_create_attribute ("flux.message.topic",
                                             CALI_TYPE_STRING,
                                             CALI_ATTR_DEFAULT | CALI_ATTR_ASVALUE);
    prof->msg_sender = cali_create_attribute ("flux.message.sender",
                                              CALI_TYPE_STRING,
                                              CALI_ATTR_SKIP_EVENTS);
    // if flux.message.rpc is set, we're inside an RPC, it will be set to a
    // type, single or multi
    prof->msg_rpc = cali_create_attribute ("flux.message.rpc",
                                           CALI_TYPE_STRING,
                                           CALI_ATTR_SKIP_EVENTS);
    prof->msg_rpc_nodeid = cali_create_attribute ("flux.message.rpc.nodeid",
                                                  CALI_TYPE_INT,
                                                  CALI_ATTR_SKIP_EVENTS);
    prof->msg_rpc_resp_expected =
        cali_create_attribute ("flux.message.response_expected",
                               CALI_TYPE_INT,
                               CALI_ATTR_SKIP_EVENTS);
    prof->msg_action = cali_create_attribute ("flux.message.action",
                                              CALI_TYPE_STRING,
                                              CALI_ATTR_DEFAULT | CALI_ATTR_ASVALUE);
    prof->msg_match_type = cali_create_attribute ("flux.message.match.type",
                                                  CALI_TYPE_INT,
                                                  CALI_ATTR_SKIP_EVENTS);
    prof->msg_match_tag = cali_create_attribute ("flux.message.match.tag",
                                                 CALI_TYPE_INT,
                                                 CALI_ATTR_SKIP_EVENTS);
    prof->msg_match_glob = cali_create_attribute ("flux.message.match.glob",
                                                  CALI_TYPE_STRING,
                                                  CALI_ATTR_SKIP_EVENTS);
    prof->initialized=1;
}