Note:如果您觉得这篇文章对您有用或者对您有一点点帮助,麻烦您为她投票,谢谢.
本文章因为参加投票,请大家转载时说明,谢谢。
投票地址:http://intel.csdn.net/multicoreblog/show.aspx?page=0 (请投对文章:),谢谢)
本篇文章通过使用 openMp 实现对基本排序算法的性能比较:
文章很简单,但是很实用,分别演示了如何使用 openMP 进行多核多线程程序开发,可以作为入门级朋友的
学习教材。如果想正确运行程序,您需要创建每个文件,同时命名一定要合适,否则您需要自己去重写
后面的 makefile 文件。
sorh.h 头文件
sort.c 文件 包含main 函数,相当于一个 client 实现对各个排序算法的并行调用。
这里采用了 openMp 指导语句 #pragma omp sections 实现结构块化,即把各个结构块划分到各自的线程上。实际上是一个 任务分配区(work-sharing sections)的概念。通过 #pragma omp parallel
#pragma omp sections 指导OpenMp编译器和运行时库将应用程序中标示出的结构化块分配到用于执行并行区域的一
组线程上。这段例子还是非常有用的。
buctet.c 文件实现 桶排序
InsertSort.c
Merge.c
QuickSort.c 快速排序可以实用两个线程分别对各个待排序队列实现递归排序
rand.c
ShellSort.c
MAKEFILE.mak 我这里建立了一个 program 包,将所有的文件放到这个目录里面,如果您不一样的话,请修改
makefile文件 CPP_PROJ = $(CFLAGS) /Qopenmp -c ../program 内容 /Qopenmp 为打开Qopenmp选项,
编译器支持openMP, ../program 为目录