#include <ti/omp/omp.h>
#include <stdio.h>
#include <stdlib.h>
#include <c6x.h>
void test()
{
int a = 0;
for (int j = 0; j<100000; j++)
a++;
}
void main()
{
int i;
printf("starting running\n");
unsigned long long t1,t2;
TSCL = 0;
TSCH = 0;
t1 = _itoll(TSCH,TSCL);
#pragma omp parallel for private(i)
for ( i = 0; i<100; i++){
test();
}
t2 = _itoll(TSCH,TSCL);
printf("time is: %ld\n",(t2-t1)/10000);
}
问题一:当我跑这个Demo的时候,单核用时0.21s,四核用时0.17s,八核用时0.14s,从时间效率上看,按理说是按倍数减少,请问下有什么额外的开销使得出现这样的结果。
问题二:当我跑我自己的程序的时候,单核时间时0.8s,四核是0.9s,八核是0.3s,请问下在这里为什么四核的时间效率反而还比单核还长???是因为调用多核产生了其他额外的开销还是什么原因??