Hi Charles Congdon,
I am using Phi Coprocessor to doing a project. When I ran this function in CPU, 24 cores, the time is about 8.5 msec. But It ran about 700 msec pn Phi. In order to figure it our, I print the time at a begin of openmp part of offload code:
#pragma omp parallel for
for( size_t y = 0; y < 192; y++)
{
tmp[omp_get_thread_num()] = When();
__attribute__((target(mic))) double When()
{
#ifndef _WIN32
static struct timeval tp;
gettimeofday(&tp, NULL);
double t = (double)tp.tv_sec;
double t1 = (double) tp.tv_usec;
return (t + t1 * 1e-6);
#else
clock_t start = clock( );
double duration = (double)start / CLOCKS_PER_SEC;
return duration;
#endif
}
The results of time are:
id = 1, time = 1408126111.008337
id = 2, time = 1408126111.008337
id = 3, time = 1408126111.000000
id = 4, time = 1408126111.007646
id = 5, time = 1408126111.000000
id = 6, time = 1408126111.000000
id = 7, time = 1408126111.008337
id = 8, time = 1408126111.007646
id = 9, time = 1408126119.337340
id = 10, time = 1408126111.000007
id = 11, time = 1408126111.000000
id = 12, time = 1408126119.337340
id = 13, time = 1408126111.000007
id = 14, time = 1408126111.000007
id = 15, time = 1408126111.000000
id = 16, time = 1408126119.337340
id = 17, time = 1408126111.008337
id = 18, time = 1408126111.000007
id = 19, time = 1408126111.000007
id = 20, time = 1408126111.008337
id = 21, time = 1408126111.008337
id = 22, time = 1408126111.008337
id = 23, time = 1408126111.015979
id = 24, time = 1408126111.000015
id = 25, time = 1408126111.007645
id = 26, time = 1408126111.015983
id = 27, time = 1408126111.000000
id = 28, time = 1408126119.337340
id = 29, time = 1408126111.000000
id = 30, time = 1408126111.007644
id = 31, time = 1408126111.008337
id = 32, time = 1408126111.015964
id = 33, time = 1408126111.000007
id = 34, time = 1408126111.000007
id = 35, time = 1408126111.000000
id = 36, time = 1408126111.000007
id = 37, time = 1408126111.000000
id = 38, time = 1408126111.000000
id = 39, time = 1408126111.000000
id = 40, time = 1408126111.007639
id = 41, time = 1408126111.000000
id = 42, time = 1408126111.000000
id = 43, time = 1408126111.008337
id = 44, time = 1408126111.007643
id = 45, time = 1408126111.007644
id = 46, time = 1408126111.007644
id = 47, time = 1408126111.015980
id = 48, time = 1408126111.008337
id = 49, time = 1408126111.000000
id = 50, time = 1408126111.015983
id = 51, time = 1408126111.000007
id = 52, time = 1408126119.337340
id = 53, time = 1408126111.007640
id = 54, time = 1408126111.000000
id = 55, time = 1408126111.000000
id = 56, time = 1408126111.000000
id = 57, time = 1408126111.008337
id = 58, time = 1408126111.000007
id = 59, time = 1408126111.008337
id = 60, time = 1408126111.015960
id = 61, time = 1408126119.337340
id = 62, time = 1408126111.008337
id = 63, time = 1408126111.000000
id = 64, time = 1408126111.007646
id = 65, time = 1408126111.000000
id = 66, time = 1408126111.000000
id = 67, time = 1408126111.008337
id = 68, time = 1408126111.007646
id = 69, time = 1408126119.337340
id = 70, time = 1408126111.000007
id = 71, time = 1408126111.000000
id = 72, time = 1408126111.008337
id = 73, time = 1408126111.000007
id = 74, time = 1408126111.000000
id = 75, time = 1408126111.008337
id = 76, time = 1408126111.008337
id = 77, time = 1408126111.008337
id = 78, time = 1408126111.000007
id = 79, time = 1408126111.000007
id = 80, time = 1408126119.337340
id = 81, time = 1408126119.337340
id = 82, time = 1408126111.008337
id = 83, time = 1408126111.015979
id = 84, time = 1408126111.015964
id = 85, time = 1408126111.007645
id = 86, time = 1408126111.015983
id = 87, time = 1408126111.000000
id = 88, time = 1408126111.008337
id = 89, time = 1408126111.000007
id = 90, time = 1408126111.000000
id = 91, time = 1408126111.008337
id = 92, time = 1408126111.000015
id = 93, time = 1408126111.007646
id = 94, time = 1408126111.000007
id = 95, time = 1408126111.000000
id = 96, time = 1408126111.007646
id = 97, time = 1408126111.000000
id = 98, time = 1408126111.000000
id = 99, time = 1408126111.000000
id = 100, time = 1408126111.007639
id = 101, time = 1408126111.000000
id = 102, time = 1408126111.000000
id = 103, time = 1408126111.008337
id = 104, time = 1408126111.007643
id = 105, time = 1408126111.007644
id = 106, time = 1408126111.007644
id = 107, time = 1408126111.015980
id = 108, time = 1408126119.337340
id = 109, time = 1408126111.000000
id = 110, time = 1408126111.015983
id = 111, time = 1408126111.000007
id = 112, time = 1408126111.008337
id = 113, time = 1408126111.007640
id = 114, time = 1408126111.000000
id = 115, time = 1408126111.000000
id = 116, time = 1408126111.000000
id = 117, time = 1408126111.008337
id = 118, time = 1408126111.000007
id = 119, time = 1408126111.008337
id = 120, time = 1408126119.337340
id = 121, time = 1408126119.337340
id = 122, time = 1408126111.008337
id = 123, time = 1408126111.000000
id = 124, time = 1408126111.007646
id = 125, time = 1408126111.000000
id = 126, time = 1408126111.000000
id = 127, time = 1408126111.008337
id = 128, time = 1408126111.007646
id = 129, time = 1408126119.337340
id = 130, time = 1408126111.000007
id = 131, time = 1408126111.000000
id = 132, time = 1408126111.008337
id = 133, time = 1408126111.000007
id = 134, time = 1408126111.000007
id = 135, time = 1408126111.008337
id = 136, time = 1408126111.008337
id = 137, time = 1408126119.337340
id = 138, time = 1408126111.007646
id = 139, time = 1408126111.007646
id = 140, time = 1408126111.008337
id = 141, time = 1408126111.008337
id = 142, time = 1408126111.008337
id = 143, time = 1408126111.015979
id = 144, time = 1408126111.000015
id = 145, time = 1408126111.007645
id = 146, time = 1408126111.015983
id = 147, time = 1408126111.000000
id = 148, time = 1408126111.008337
id = 149, time = 1408126111.000000
id = 150, time = 1408126111.000000
id = 151, time = 1408126111.000000
id = 152, time = 1408126111.000015
id = 153, time = 1408126111.000007
id = 154, time = 1408126111.000007
id = 155, time = 1408126111.000000
id = 156, time = 1408126111.000007
id = 157, time = 1408126111.000000
id = 158, time = 1408126111.000007
id = 159, time = 1408126111.000000
id = 160, time = 1408126111.007639
id = 161, time = 1408126111.000000
id = 162, time = 1408126111.000000
id = 163, time = 1408126111.000000
id = 164, time = 1408126111.007643
id = 165, time = 1408126111.007644
id = 166, time = 1408126111.007644
id = 167, time = 1408126111.015980
id = 168, time = 1408126111.008337
id = 169, time = 1408126111.000007
id = 170, time = 1408126111.015983
id = 171, time = 1408126111.000000
id = 172, time = 1408126111.008337
id = 173, time = 1408126111.007640
id = 174, time = 1408126111.000000
id = 175, time = 1408126111.000000
id = 176, time = 1408126111.000000
id = 177, time = 1408126111.008337
id = 178, time = 1408126111.000007
id = 179, time = 1408126111.008337
id = 180, time = 1408126111.000007
id = 181, time = 1408126111.008337
id = 182, time = 1408126111.008337
id = 183, time = 1408126111.000000
id = 184, time = 1408126111.007646
id = 185, time = 1408126111.000000
id = 186, time = 1408126111.000000
id = 187, time = 1408126111.008337
id = 188, time = 1408126111.007646
id = 189, time = 1408126119.337340
id = 190, time = 1408126111.000007
id = 191, time = 1408126111.000000
You can see the time at id 9, 28, 61, 69, 121... the time 1408126119.337340. Obviously, it is wrong. Could you tell me what happened about this time? If possible, could you let me know why the the fuction is so slower on Phi.
My email is Xin.Chen@hermes-microvision.com. I really need you help!
Xin