OMP PRAGMA使用R CMD SHLIB编译R函数低位忽略

时间:2015-03-15 01:51:18

标签: r parallel-processing openmp pragma

您好我正在尝试使用openMP并行pragma parallel for loop

来并行R函数lowess
  static
void clowess(double *x, double *y, int n,
     double f, int nsteps, double delta,
     double *ys, double *rw, double *res)
{
    int i, iter, j, last, m1, m2, nleft, nright, ns;
    Rboolean ok;
    double alpha, c1, c9, cmad, cut, d1, d2, denom, r, sc;

omp_set_num_threads(8);

if (n < 2) {
ys[0] = y[0]; return;
}

/* nleft, nright, last, etc. must all be shifted to get rid of these: */
x--;
y--;
ys--;


/* at least two, at most n points */
ns = imax2(2, imin2(n, (int)(f*n + 1e-7)));
#ifdef DEBUG_lowess
REprintf("lowess(): ns = %d\n", ns);
#endif

/* robustness iterations */

iter = 1;
while (iter <= nsteps+1) {
nleft = 1;
nright = ns;
last = 0;   /* index of prev estimated point */
i = 1;      /* index of current point */

#pragma omp parallel for
for(;;) {
    if (nright < n) {
 }
}

这是我尝试并行化的lowess函数的示例 我只是添加omp_set_num_threads(8)和#pragma omp parallel for和我用setenv PKG_LIBS -lgomp和setenv PKG_CXXFLAGS -fopen设置我的vim终端env但是当我用R CMD SHLIB编译时它说我的pragma被忽略但我不明白为什么?我需要pragma才能并行化这个函数lowess

谢谢你的朋友们

0 个答案:

没有答案