C 用于循环并行化的Openmp

C 用于循环并行化的Openmp,c,openmp,C,Openmp,我有一个算法,在这个算法中我创建了一组结构(即结构数组)。我希望每个小组都在一个线程中工作。我给出的代码如下。下面的for循环#pragma omp for,i wanti=0应在一个线程中执行,i=1应在另一个线程中执行,依此类推。如果我做得正确,请帮助并建议我 #pragma omp parallel shared(min,sgb,div,i) private(th_id) omp_set_num_threads(4); { th_id=omp_get_thread_num();

我有一个算法,在这个算法中我创建了一组结构(即结构数组)。我希望每个小组都在一个线程中工作。我给出的代码如下。下面的for循环
#pragma omp for
,i want
i=0
应在一个线程中执行,i=1应在另一个线程中执行,依此类推。如果我做得正确,请帮助并建议我

#pragma omp parallel shared(min,sgb,div,i) private(th_id)
omp_set_num_threads(4);
{
    th_id=omp_get_thread_num();
    printf("Thread %d\n",th_id);
    scanf("%c",&ch);
    #pragma omp for schedule(static,CHUNKSIZE)
    for(i=0;i<div;i++)
    {           
        sgb[i]=pso(sgb[i],kmax,c1,c2);
        min[i]=sgb[i].gbest;
        printf("in distribute gbest=%f x=%f y=%f index=%d\n",sgb[i].gbest,sgb[i].bestp[0],sgb[i].bestp[1],sgb[i].index);
    }

    #pragma omp barrier
    //fclose(fp);
    m=min[0];
    for(j=0;j<div;j++)
    {
        printf("after barrier   gbest=%f x=%f y=%f\n",sgb[j].gbest,sgb[j].bestp[0],sgb[j].bestp[1]);

        if(m>min[j])
        {
            m=min[j];
            k=j;
        }
    }
}
#pragma omp并行共享(min、sgb、div、i)专用(THU id)
omp_设置_数量_线程(4);
{
th_id=omp_get_thread_num();
printf(“线程%d\n”,th\u id);
scanf(“%c”和“ch”);
#计划的pragma omp(静态、CHUNKSIZE)

对于(i=0;我OpenMP告诉你什么?你不认为在你的情况下使用
pthreads
会更简单吗?@Eddy\u Em:但我不知道如何用pthreads编程。@重要的是:我知道OpenMP文档中说abt pragma omp的意思。但是你能帮我摆脱疑问/问题吗?例如
man pthread\u创建:它包括一个简单的示例代码!