使用OpenMP计算排序

时间:2014-05-02 18:34:26

标签: c openmp

关于OpenMP的另一个问题...... 我试图加速使用OpenMP计算排序,但我的代码在1个线程上运行速度最快,并且因为我添加线程而慢下来...(我有4个内核)结果是正确的。 我只是并行计数器递增的循环,其余的是按顺序计算的(是吗?)这里我尝试通过原子操作进行递增。我还尝试了一个版本,其中每个线程都有自己的表"计数器"但它甚至更慢。

#pragma omp parallel for private(i) num_threads(4) default(none) shared(counters, table, possible_values, table_size)
    for(i=0; i < table_size; i++){
        #pragma omp atomic
        counters[(int)(table[i]*100)]++;

    }

表 - 包含未排序的值

possible_values - 100(我的数字从0到0.99)

table_size - 表的大小

我怎样才能加快速度?

0 个答案:

没有答案