float dist ( Point p1, Point p2, int dim )
{
int i;
float result=0.0;
for ( i=0; i<dim; i++ )
result += ( p1.coord[i] - p2.coord[i] ) * ( p1.coord[i] - p2.coord[i] );
return ( result );
}
我想使用线程并行化它,但我不断收到错误。我正在做这样的事情
float dist(Point p1,Point p2,int dim){
int id;
int i,tnum,istart,iend;
id=omp_get_thread_num();
tnum=omp_get_num_threads();
istart=id*dim/tnum;
iend=(id+i)*dim/tnum;
float result=0.0;
#pragma omp parallel for reduction (+:result)
{ for ( i=istart; i<iend;i++ )
result += ( p1.coord[i] - p2.coord[i] ) * ( p1.coord[i] - p2.coord[i] );
return ( result );}
}
谢谢你