
并行程序设计
文章平均质量分 70
并行程序设计
sylviiiiiia
深水区
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于OpenMP的质数并发求解方法研究
如何快速地获得素数表以解决素数相关的复杂问题,具有重要的研究意义。给定范围内求解质数的串行算法主要有以下三种:枚举、埃氏筛、欧拉筛。本文研究给定范围内质数求解的并发性算法,基于OpenMP将枚举、埃氏筛两种串行算法并行化,并通过加速比等指标评估两种算法在不同并行方式、任务分配方式中的改进程度。质数(Prime Number),也称素数,指一个大于1的自然数p,除了1和它本身外,不能被其他自然数整除,即不能被写成p=ab (a,b>1)的形式。质数的个数无穷。原创 2023-07-27 09:39:03 · 297 阅读 · 0 评论 -
并行程序设计:Pthreads/OpenMP/MPI
strtol函数: 把参数 str 所指向的字符串根据给定的 base 转换为一个长整数(类型为 long int 型)用long很奇怪,但这个库里大部分变量类型都是long,但是long long也行,long好像还报错?来创建一个变长的线程对象数组,然后new分配长度,然后用。pthread_t是线程对象的数据类型,一般。原创 2023-07-10 19:34:32 · 1138 阅读 · 0 评论 -
编写Pthreads程序实现直方图统计
编写一个Pthreads程序实现直方图统计,选择使用忙等待、互斥量和信号量来保证临界区的互斥,并分析方法的优点和缺点。原创 2023-07-16 15:52:59 · 306 阅读 · 0 评论 -
Pthreads程序实现任务队列
主线程生成一些任务(一定计算量),每生成一个新的任务,就用条件变量唤醒一个线程,当这个唤醒线程执行完任务时,回到条件等待状态。当主线程生成完所有任务,设置全局变量表示再没有要生成的任务了,并用一个广播唤醒所有线程。为了清晰起见,建议任务采用链表操作。主线程启动用户指定数量的线程,这些线程进入条件等待状态。原创 2023-07-19 18:35:25 · 1091 阅读 · 0 评论 -
OpenMP并行化傅里叶变换
调整完循环顺序之后,第一层循环变量i表示每一层变换的跨度,第二层循环变量j表示每一层变换的第一个起点,第三层循环遍历k则表示实际变换的位置k和k+i。为并行化快速傅里叶变换,需要使用非迭代版本,即先预处理每个位置上元素变换后的位置(每个位置分治后的最终位置为其二进制翻转后得到的位置),然后先将所有元素移到变换后的位置之后直接循环合并。主函数运行时传入三个参数,第一个参数为.exe文件,第二个参数为并行部分使用的线程数量,第三个参数为傅里叶变换的幂次,因为傅里叶变换算法本身要求长度为2的幂次。原创 2023-07-19 18:46:45 · 1813 阅读 · 2 评论