JNIEXPORT void JNICALL Java_es_bsc_cepbatools_extrae_Wrapper_SetNumThreads( JNIEnv *env, jclass jc, jint numthreads) { UNREFERENCED(env); UNREFERENCED(jc); NUMTHREADS = numthreads; Backend_ChangeNumberOfThreads (numthreads); Extrae_set_numthreads_function (get_num_threads); }
JNIEXPORT void JNICALL Java_es_bsc_tools_extrae_Wrapper_Init(JNIEnv *env, jclass jc) { /* char slaves[1000]; char order[1000]; char *name[4]; char buffer[1000]; FILE *fp; sprintf(slaves,"wc -l %s/conf/slaves\n",getenv("HADOOP_PREFIX")); sprintf(order, "grep -n `hostname` %s/conf/slaves | cut -d \":\" -f1\n",getenv("HADOOP_PREFIX")); fp = popen(slaves, "r"); if (fp == NULL) { printf("Failed to run command\n" ); exit; } NUMTASKS=atoi(fgets(buffer, sizeof(buffer)-1, fp)); pclose(fp); NUMTASKS += 3; // JT, NN1, NN2 printf("NUMTASKS: %d\n",NUMTASKS); //name[2] = order; //TASKID = execvp("/bin/sh", name); fp = popen(order, "r"); if (fp == NULL) { printf("Failed to run command\n" ); exit; } TASKID=atoi(fgets(buffer, sizeof(buffer)-1, fp)); pclose(fp); TASKID--; printf("TID: %d\n",TASKID); */ printf("Wrapper.Init(): Empiezo un extrae!!\n"); gen_task_id(); Extrae_set_numthreads_function(get_num_threads); //Extrae_set_threadid_function(get_thread_id); //Problemas, porque? Extrae_set_taskid_function(get_task_id); Extrae_set_numtasks_function(get_num_tasks); if(!Extrae_is_initialized()){ printf("Initializing Extrae by Wrapper.Init()..."); Extrae_init(); }else{ printf("Extrae already Initialized when Wrapper.Init() called..."); } fflush(stdout); }
int Extrae_CMD_Init (int i, int argc, char *argv[]) { int taskid, nthreads; char *endptr; if (argc-i < 2) { fprintf (stderr, CMD_INIT" command requires 2 parameters TASKID and Number of Threads/Slots\n"); return 0; } taskid = strtol (argv[i], &endptr, 10); if (endptr == &argv[i][strlen(argv[i])]) { if (taskid < 0) { fprintf (stderr, CMD_INIT" command cannot handle negative TASKID\n"); return 0; } else _TASKID = taskid; } nthreads = strtol (argv[i+1], &endptr, 10); if (endptr == &argv[i+1][strlen(argv[i+1])]) { if (nthreads < 0) { fprintf (stderr, CMD_INIT" command cannot handle negative Number of Threads/Slots\n"); return 0; } else _NTHREADS = nthreads; } Extrae_set_taskid_function (CMD_INIT_TASKID); Extrae_set_numthreads_function (CMD_INIT_NUMTHREADS); _NTASKS = _TASKID+1; Extrae_set_numtasks_function (CMD_INIT_NUMTASKS); putenv ("EXTRAE_ON=1"); Extrae_init(); Extrae_CMD_Init_dump_info(); Extrae_fini(); return 2; }
int Extrae_CMD_Emit (int i, int argc, char *argv[]) { int threadid; int type; long long value; extrae_type_t TYPE = 0; extrae_value_t VALUE = 0; char *endptr; char extrae_append_pid[128]; if (argc-i < 3) { fprintf (stderr, CMD_EMIT" command requires 3 parameters SLOT, TYPE and VALUE\n"); return 0; } Extrae_CMD_Emit_get_info(); threadid = strtol (argv[i], &endptr, 10); if (endptr == &argv[i][strlen(argv[i])]) { if (threadid < 0) { fprintf (stderr, CMD_EMIT" command cannot handle negative SLOT\n"); return 0; } else _THREADID = threadid; } type = strtol (argv[i+1], &endptr, 10); if (endptr == &argv[i+1][strlen(argv[i+1])]) { if (type < 0) { fprintf (stderr, CMD_EMIT" command cannot handle negative TYPE\n"); return 0; } else TYPE = type; } value = strtoll (argv[i+2], &endptr, 10); if (endptr == &argv[i+2][strlen(argv[i+2])]) { if (value < 0) { fprintf (stderr, CMD_EMIT" command cannot handle negative VALUE\n"); return 0; } else VALUE = value; } Extrae_set_taskid_function (CMD_EMIT_TASKID); Extrae_set_numthreads_function (CMD_EMIT_NUMTHREADS); Extrae_set_threadid_function (CMD_EMIT_NUMTHREAD); _NTASKS = _TASKID+1; Extrae_set_numtasks_function (CMD_EMIT_NUMTASKS); putenv ("EXTRAE_ON=1"); sprintf (extrae_append_pid, "EXTRAE_APPEND_PID=%u", pid); putenv (extrae_append_pid); Extrae_init (); Extrae_event (TYPE, VALUE); Extrae_fini (); return 3; }