diff --git a/example/lapack_to_morse/lapack_to_morse.h b/example/lapack_to_morse/lapack_to_morse.h index dbcc016f9bb528fce71dca21053c547ae65e782a..4df69f43c2ffc6b4a2acd343bb06c784f6629612 100644 --- a/example/lapack_to_morse/lapack_to_morse.h +++ b/example/lapack_to_morse/lapack_to_morse.h @@ -47,9 +47,7 @@ #include <sys/resource.h> #endif - /* Common functions for all steps of the tutorial */ - static void get_thread_count(int *thrdnbr) { #if defined WIN32 || defined WIN64 sscanf( getenv( "NUMBER_OF_PROCESSORS" ), "%d", thrdnbr ); @@ -65,7 +63,6 @@ static int startswith(const char *s, const char *prefix) { return 1; } - /* define complexity of algorithms - see Lawn 41 page 120 */ #define FMULS_POTRF(__n) ((double)(__n) * (((1. / 6.) * (double)(__n) + 0.5) * (double)(__n) + (1. / 3.))) #define FADDS_POTRF(__n) ((double)(__n) * (((1. / 6.) * (double)(__n) ) * (double)(__n) - (1. / 6.))) @@ -73,68 +70,6 @@ static int startswith(const char *s, const char *prefix) { #define FADDS_TRSM(__m, __n) (0.5 * (double)(__n) * (double)(__m) * ((double)(__m)-1.)) /* define some tools to time the program */ -#if defined( _WIN32 ) || defined( _WIN64 ) -#include <windows.h> -#include <time.h> -#include <sys/timeb.h> -#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 -#else -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL -#endif - -struct timezone -{ - int tz_minuteswest; /* minutes W of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; - -int gettimeofday(struct timeval* tv, struct timezone* tz) -{ - FILETIME ft; - unsigned __int64 tmpres = 0; - static int tzflag; - - if (NULL != tv) - { - GetSystemTimeAsFileTime(&ft); - tmpres |= ft.dwHighDateTime; - tmpres <<= 32; - tmpres |= ft.dwLowDateTime; - - /*converting file time to unix epoch*/ - tmpres /= 10; /*convert into microseconds*/ - tmpres -= DELTA_EPOCH_IN_MICROSECS; - - tv->tv_sec = (long)(tmpres / 1000000UL); - tv->tv_usec = (long)(tmpres % 1000000UL); - } - if (NULL != tz) - { - if (!tzflag) - { - _tzset(); - tzflag++; - } - tz->tz_minuteswest = _timezone / 60; - tz->tz_dsttime = _daylight; - } - return 0; -} - -#else /* Non-Windows */ -#include <sys/time.h> -#endif - -/* - * struct timeval {time_t tv_sec; suseconds_t tv_usec;}; - */ -double cWtime(void) -{ - struct timeval tp; - gettimeofday( &tp, NULL ); - return tp.tv_sec + 1e-6 * tp.tv_usec; -} - +#include <chameleon/chameleon_timer.h> #endif /* LAPACK_TO_MORSE_H */ diff --git a/example/lapack_to_morse/step0.c b/example/lapack_to_morse/step0.c index ef52684f1f91efede31bf3e0dc4fdccb8ad9f33e..9ecf80478c14f1a9b6def101d2dccc02911f8884 100644 --- a/example/lapack_to_morse/step0.c +++ b/example/lapack_to_morse/step0.c @@ -98,7 +98,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); /* Cholesky factorization: * A is replaced by its factorization L or L^T depending on uplo */ @@ -124,7 +124,7 @@ int main(int argc, char *argv[]) { CblasNonUnit, N, NRHS, 1.0, A, N, X, N); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/lapack_to_morse/step1.c b/example/lapack_to_morse/step1.c index 7af0347280792a7226ffe2de9ad2774112123e74..3aa309331c1f45ee8541ce6ccae48d59811e16e0 100644 --- a/example/lapack_to_morse/step1.c +++ b/example/lapack_to_morse/step1.c @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); /* Cholesky factorization: * A is replaced by its factorization L or L^T depending on uplo */ @@ -132,7 +132,7 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs(UPLO, N, NRHS, A, N, X, N); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/lapack_to_morse/step2.c b/example/lapack_to_morse/step2.c index 9f211fe4f0176138cdae6c520fb2da2e8563bfa2..f7f8bcf4c9efed2b05ea9e9493a4a44d7850af31 100644 --- a/example/lapack_to_morse/step2.c +++ b/example/lapack_to_morse/step2.c @@ -164,7 +164,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); /* Cholesky factorization: * A is replaced by its factorization L or L^T depending on uplo */ @@ -176,7 +176,7 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile( UPLO, descA, descX ); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/lapack_to_morse/step3.c b/example/lapack_to_morse/step3.c index f9237f7f5dd6b54b214e9fcb1057c5559cb3d5c7..66964cfe386359d8b8fd98d0b4499c586535a993 100644 --- a/example/lapack_to_morse/step3.c +++ b/example/lapack_to_morse/step3.c @@ -147,7 +147,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); /* Cholesky factorization: * A is replaced by its factorization L or L^T depending on uplo */ @@ -159,7 +159,7 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile( UPLO, descA, descX ); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/lapack_to_morse/step4.c b/example/lapack_to_morse/step4.c index 269a7caf80809c7f8ceed5d5aff03c13c7ec02de..b4111cdab378e21ea1abcc60f41892a71e14661c 100644 --- a/example/lapack_to_morse/step4.c +++ b/example/lapack_to_morse/step4.c @@ -127,7 +127,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); MORSE_Sequence_Create(&sequence); @@ -157,7 +157,7 @@ int main(int argc, char *argv[]) { } MORSE_Sequence_Destroy(sequence); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/lapack_to_morse/step5.c b/example/lapack_to_morse/step5.c index 3177f09fbb8b33c14b40b59e3197e9080e14ea3b..46aa1d29ae495cbfa57a4f6b0890dbdb528db50c 100644 --- a/example/lapack_to_morse/step5.c +++ b/example/lapack_to_morse/step5.c @@ -131,7 +131,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); MORSE_Sequence_Create(&sequence); @@ -161,7 +161,7 @@ int main(int argc, char *argv[]) { } MORSE_Sequence_Destroy(sequence); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/lapack_to_morse/step6.c b/example/lapack_to_morse/step6.c index 51261b6c4aac4918d1704e24e395c7cfa5cc3a50..68850db3f7e3af4374aee9e2f9f63b9abf89d8cd 100644 --- a/example/lapack_to_morse/step6.c +++ b/example/lapack_to_morse/step6.c @@ -153,7 +153,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); MORSE_Sequence_Create(&sequence); @@ -183,7 +183,7 @@ int main(int argc, char *argv[]) { } MORSE_Sequence_Destroy(sequence); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/lapack_to_morse/step7.c b/example/lapack_to_morse/step7.c index b9c0f9117ac2b3e66f2d0942fe4067c1495d2981..15e00f5875bc32da15788188c8fd6e0e3fa7f115 100644 --- a/example/lapack_to_morse/step7.c +++ b/example/lapack_to_morse/step7.c @@ -161,7 +161,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); MORSE_Sequence_Create(&sequence); @@ -191,7 +191,7 @@ int main(int argc, char *argv[]) { } MORSE_Sequence_Destroy(sequence); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/link_chameleon/link_chameleon.c b/example/link_chameleon/link_chameleon.c index 0aeb255eb24a1f138e229b7eefe9e1d0a29e4354..79dcdf460e5b132503ee97e29da7d90f5648643a 100644 --- a/example/link_chameleon/link_chameleon.c +++ b/example/link_chameleon/link_chameleon.c @@ -37,69 +37,6 @@ static int startswith(const char *s, const char *prefix) { #define FMULS_TRSM(__m, __n) (0.5 * (double)(__n) * (double)(__m) * ((double)(__m)+1.)) #define FADDS_TRSM(__m, __n) (0.5 * (double)(__n) * (double)(__m) * ((double)(__m)-1.)) -/* define some tools to time the program */ -#if defined( _WIN32 ) || defined( _WIN64 ) -#include <windows.h> -#include <time.h> -#include <sys/timeb.h> -#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 -#else -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL -#endif - -struct timezone -{ - int tz_minuteswest; /* minutes W of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; - -int gettimeofday(struct timeval* tv, struct timezone* tz) -{ - FILETIME ft; - unsigned __int64 tmpres = 0; - static int tzflag; - - if (NULL != tv) - { - GetSystemTimeAsFileTime(&ft); - tmpres |= ft.dwHighDateTime; - tmpres <<= 32; - tmpres |= ft.dwLowDateTime; - - /*converting file time to unix epoch*/ - tmpres /= 10; /*convert into microseconds*/ - tmpres -= DELTA_EPOCH_IN_MICROSECS; - - tv->tv_sec = (long)(tmpres / 1000000UL); - tv->tv_usec = (long)(tmpres % 1000000UL); - } - if (NULL != tz) - { - if (!tzflag) - { - _tzset(); - tzflag++; - } - tz->tz_minuteswest = _timezone / 60; - tz->tz_dsttime = _daylight; - } - return 0; -} - -#else /* Non-Windows */ -#include <sys/time.h> -#endif - -/* - * struct timeval {time_t tv_sec; suseconds_t tv_usec;}; - */ -double cWtime(void) -{ - struct timeval tp; - gettimeofday( &tp, NULL ); - return tp.tv_sec + 1e-6 * tp.tv_usec; -} #include <coreblas/lapacke.h> #include <morse.h> @@ -288,7 +225,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); /* Cholesky facorization: * A is replaced by its factorization L or L^T depending on uplo */ @@ -300,7 +237,7 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs(UPLO, N, NRHS, A, N, X, N); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/out_of_core/out_of_core.c b/example/out_of_core/out_of_core.c index 5a8929e75fb7e44f77d1c4b61dcf7e777ead8c0a..55a6c00ce9c2f656869625ef2af69ebf93c31233 100644 --- a/example/out_of_core/out_of_core.c +++ b/example/out_of_core/out_of_core.c @@ -132,7 +132,7 @@ int main(int argc, char *argv[]) { /* solve the system AX = B using the Cholesky factorization */ /************************************************************/ - cpu_time = -cWtime(); + cpu_time = -CHAMELEON_timer(); /* Cholesky factorization: * A is replaced by its factorization L or L^T depending on uplo */ @@ -144,7 +144,7 @@ int main(int argc, char *argv[]) { */ MORSE_dpotrs_Tile( UPLO, descA, descX ); - cpu_time += cWtime(); + cpu_time += CHAMELEON_timer(); /* print informations to user */ gflops = flops / cpu_time; diff --git a/example/out_of_core/out_of_core.h b/example/out_of_core/out_of_core.h index dce72d9bcafde47051fe07fe939ccd4200b9fc26..542cd10f14b36f248ec7673b0f60c8bcb8318387 100644 --- a/example/out_of_core/out_of_core.h +++ b/example/out_of_core/out_of_core.h @@ -77,68 +77,7 @@ static int startswith(const char *s, const char *prefix) { #define FADDS_TRSM(__m, __n) (0.5 * (double)(__n) * (double)(__m) * ((double)(__m)-1.)) /* define some tools to time the program */ -#if defined( _WIN32 ) || defined( _WIN64 ) -#include <windows.h> -#include <time.h> -#include <sys/timeb.h> -#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 -#else -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL -#endif - -struct timezone -{ - int tz_minuteswest; /* minutes W of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; - -int gettimeofday(struct timeval* tv, struct timezone* tz) -{ - FILETIME ft; - unsigned __int64 tmpres = 0; - static int tzflag; - - if (NULL != tv) - { - GetSystemTimeAsFileTime(&ft); - tmpres |= ft.dwHighDateTime; - tmpres <<= 32; - tmpres |= ft.dwLowDateTime; - - /*converting file time to unix epoch*/ - tmpres /= 10; /*convert into microseconds*/ - tmpres -= DELTA_EPOCH_IN_MICROSECS; - - tv->tv_sec = (long)(tmpres / 1000000UL); - tv->tv_usec = (long)(tmpres % 1000000UL); - } - if (NULL != tz) - { - if (!tzflag) - { - _tzset(); - tzflag++; - } - tz->tz_minuteswest = _timezone / 60; - tz->tz_dsttime = _daylight; - } - return 0; -} - -#else /* Non-Windows */ -#include <sys/time.h> -#endif - -/* - * struct timeval {time_t tv_sec; suseconds_t tv_usec;}; - */ -double cWtime(void) -{ - struct timeval tp; - gettimeofday( &tp, NULL ); - return tp.tv_sec + 1e-6 * tp.tv_usec; -} +#include <chameleon/chameleon_timer.h> /* Integer parameters */ enum iparam_ooc { diff --git a/include/chameleon/chameleon_timer.h b/include/chameleon/chameleon_timer.h new file mode 100644 index 0000000000000000000000000000000000000000..8bf2033dd065343cc25f097e2d7bca4573b3fef9 --- /dev/null +++ b/include/chameleon/chameleon_timer.h @@ -0,0 +1,84 @@ +/** + * + * @copyright 2009-2014 The University of Tennessee and The University of + * Tennessee Research Foundation. All rights reserved. + * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + * @file chameleon_timer.h + * + * Provide a simple timer for examples and runtimes which do not provide their + * own timer. + * + **/ +#ifndef _chameleon_timer_h_ +#define _chameleon_timer_h_ + +#if defined( _WIN32 ) || defined( _WIN64 ) +#include <windows.h> +#include <time.h> +#include <sys/timeb.h> +#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) +#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 +#else +#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL +#endif + +struct timezone +{ + int tz_minuteswest; /* minutes W of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; + +static inline int +gettimeofday(struct timeval* tv, struct timezone* tz) +{ + FILETIME ft; + unsigned __int64 tmpres = 0; + static int tzflag; + + if (NULL != tv) + { + GetSystemTimeAsFileTime(&ft); + tmpres |= ft.dwHighDateTime; + tmpres <<= 32; + tmpres |= ft.dwLowDateTime; + + /*converting file time to unix epoch*/ + tmpres /= 10; /*convert into microseconds*/ + tmpres -= DELTA_EPOCH_IN_MICROSECS; + + tv->tv_sec = (long)(tmpres / 1000000UL); + tv->tv_usec = (long)(tmpres % 1000000UL); + } + if (NULL != tz) + { + if (!tzflag) + { + _tzset(); + tzflag++; + } + tz->tz_minuteswest = _timezone / 60; + tz->tz_dsttime = _daylight; + } + return 0; +} + +#else /* Non-Windows */ +#include <sys/time.h> +#endif + +/** + * @brief Return a simple timestamp in s. + * + * @return The timestamp in s without any barriers. + */ +static inline double +CHAMELEON_timer(void) +{ + struct timeval tp; + gettimeofday( &tp, NULL ); + return tp.tv_sec + 1e-6 * tp.tv_usec; +} + +#endif /* _chameleon_timer_h_ */ diff --git a/runtime/parsec/control/runtime_profiling.c b/runtime/parsec/control/runtime_profiling.c index 765621f2b77d32b1a9e66c6a4a2c79751ae90bba..1e50dac2a1792d9448ad9360f986efc6f6bcd2e4 100644 --- a/runtime/parsec/control/runtime_profiling.c +++ b/runtime/parsec/control/runtime_profiling.c @@ -8,74 +8,10 @@ * **/ #include "chameleon_parsec.h" - -#if defined( _WIN32 ) || defined( _WIN64 ) -#include <windows.h> -#include <time.h> -#include <sys/timeb.h> -#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 -#else -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL -#endif - -struct timezone -{ - int tz_minuteswest; /* minutes W of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; - -int gettimeofday(struct timeval* tv, struct timezone* tz) -{ - FILETIME ft; - unsigned __int64 tmpres = 0; - static int tzflag; - - if (NULL != tv) - { - GetSystemTimeAsFileTime(&ft); - tmpres |= ft.dwHighDateTime; - tmpres <<= 32; - tmpres |= ft.dwLowDateTime; - - /*converting file time to unix epoch*/ - tmpres /= 10; /*convert into microseconds*/ - tmpres -= DELTA_EPOCH_IN_MICROSECS; - - tv->tv_sec = (long)(tmpres / 1000000UL); - tv->tv_usec = (long)(tmpres % 1000000UL); - } - if (NULL != tz) - { - if (!tzflag) - { - _tzset(); - tzflag++; - } - tz->tz_minuteswest = _timezone / 60; - tz->tz_dsttime = _daylight; - } - return 0; -} - -#else /* Non-Windows */ -#include <sys/time.h> -#endif - -double cWtime(void); - -/* - * struct timeval {time_t tv_sec; suseconds_t tv_usec;}; - */ -double cWtime(void) -{ - struct timeval tp; - gettimeofday( &tp, NULL ); - return tp.tv_sec + 1e-6 * tp.tv_usec; -} +#include "chameleon_timer.h" double RUNTIME_get_time(){ - return cWtime(); + return CHAMELEON_timer(); } void RUNTIME_start_profiling() diff --git a/runtime/quark/codelets/codelet_ztile_zero.c b/runtime/quark/codelets/codelet_ztile_zero.c index 2725bf55ba0af0c3d9b25a088e9f763a89163075..93c727591440d443ddf3da7c6f55580662fc2e7c 100644 --- a/runtime/quark/codelets/codelet_ztile_zero.c +++ b/runtime/quark/codelets/codelet_ztile_zero.c @@ -47,9 +47,9 @@ void CORE_ztile_zero_quark(Quark *quark) } -void MORSE_TASK_ztile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda) +void MORSE_TASK_ztile_zero( const MORSE_option_t *options, + int X1, int X2, int Y1, int Y2, + const MORSE_desc_t *A, int Am, int An, int lda ) { quark_option_t *opt = (quark_option_t*)(options->schedopt); QUARK_Insert_Task(opt->quark, CORE_ztile_zero_quark, (Quark_Task_Flags*)opt, diff --git a/runtime/quark/control/runtime_profiling.c b/runtime/quark/control/runtime_profiling.c index 2b17d0eec39001fcf912b03902343ab8eb85ae69..3662a94f4b37fd29d29f70506ba4b0473dac4f21 100644 --- a/runtime/quark/control/runtime_profiling.c +++ b/runtime/quark/control/runtime_profiling.c @@ -18,74 +18,10 @@ * **/ #include "chameleon_quark.h" - -#if defined( _WIN32 ) || defined( _WIN64 ) -#include <windows.h> -#include <time.h> -#include <sys/timeb.h> -#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 -#else -#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL -#endif - -struct timezone -{ - int tz_minuteswest; /* minutes W of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; - -int gettimeofday(struct timeval* tv, struct timezone* tz) -{ - FILETIME ft; - unsigned __int64 tmpres = 0; - static int tzflag; - - if (NULL != tv) - { - GetSystemTimeAsFileTime(&ft); - tmpres |= ft.dwHighDateTime; - tmpres <<= 32; - tmpres |= ft.dwLowDateTime; - - /*converting file time to unix epoch*/ - tmpres /= 10; /*convert into microseconds*/ - tmpres -= DELTA_EPOCH_IN_MICROSECS; - - tv->tv_sec = (long)(tmpres / 1000000UL); - tv->tv_usec = (long)(tmpres % 1000000UL); - } - if (NULL != tz) - { - if (!tzflag) - { - _tzset(); - tzflag++; - } - tz->tz_minuteswest = _timezone / 60; - tz->tz_dsttime = _daylight; - } - return 0; -} - -#else /* Non-Windows */ -#include <sys/time.h> -#endif - -double cWtime(void); - -/* - * struct timeval {time_t tv_sec; suseconds_t tv_usec;}; - */ -double cWtime(void) -{ - struct timeval tp; - gettimeofday( &tp, NULL ); - return tp.tv_sec + 1e-6 * tp.tv_usec; -} +#include "chameleon/chameleon_timer.h" double RUNTIME_get_time(){ - return cWtime(); + return CHAMELEON_timer(); } void RUNTIME_start_profiling()