int main(int argc, char **argv) { int n = 1000000; double PI25DT = 3.141592653589793238462643; double pi, h, area, x; extrae_type_t type = 1000; int nvalues = 2; extrae_value_t values[2] = {0, 1}; char * description_values[2] = {"End", "Begin" }; Extrae_init(); Extrae_define_event_type (&type, "Kernel execution", &nvalues, values, description_values); h = 1.0 / (double) n; Extrae_event (1000, 1); area = pi_kernel (n, h); Extrae_event (1000, 0); pi = h * area; printf("pi is approximately %.16f, Error is %.16f\n",pi,fabs(pi - PI25DT)); Extrae_fini(); }
JNIEXPORT void JNICALL Java_es_bsc_cepbatools_extrae_Wrapper_defineEventType (JNIEnv *env, jclass jc, jint type, jstring description, jlongArray values, jobjectArray descriptionValues) { char *cDescr; jint countValues, countDescriptionValues; UNREFERENCED(jc); if (values != NULL) countValues = (*env)->GetArrayLength(env, values); else countValues = 0; if (descriptionValues != NULL) countDescriptionValues = (*env)->GetArrayLength(env, descriptionValues); else countDescriptionValues = 0; cDescr = (char*)(*env)->GetStringUTFChars(env, description, NULL); if (cDescr != NULL) { if (countValues == countDescriptionValues && countValues > 0) { jlong *valuesArray = NULL; char *valDesc[countValues]; valuesArray = (*env)->GetLongArrayElements(env, values, NULL); if (valuesArray != NULL) { jlong i; for (i = 0; i < countValues; i++) { valDesc[i] = (char*)(*env)->GetStringUTFChars(env, (*env)->GetObjectArrayElement(env, descriptionValues, i), NULL); if (valDesc[i] == NULL) return; } Extrae_define_event_type ((extrae_type_t *)&type, cDescr, (unsigned *) &countValues, (extrae_value_t *)valuesArray, valDesc); (*env)->ReleaseLongArrayElements(env, values, valuesArray, JNI_ABORT); for (i = 0; i < countValues; i++) { jstring elem = (jstring)(*env)->GetObjectArrayElement (env, descriptionValues, i); (*env)->ReleaseStringUTFChars(env, elem, valDesc[i]); } } } else { unsigned zero = 0; Extrae_define_event_type ((extrae_type_t*)&type, cDescr, &zero, NULL, NULL); } (*env)->ReleaseStringUTFChars(env, description, cDescr); } }