并行编程练习与GPU架构介绍
1. 并行编程练习
1.1 矩阵乘法相关练习
- 练习6.1 :修改矩阵乘法程序,使用固定数量的线程对任意大小的矩阵进行乘法运算。让每个线程计算结果矩阵的若干行,而不是单个元素,并且尽量使每个线程计算的行数大致相同。需要思考程序中是否需要同步操作。
- 练习6.2 :利用任务池实现并行矩阵乘法。将结果矩阵的每个元素的计算定义为一个任务,使用
thread_mult()函数,并根据任务池的要求进行必要的修改。在启动执行计算的线程之前,生成所有任务并插入任务池。测量不同线程数量和矩阵大小下的执行时间,并与上一个练习的实现进行比较。
1.2 读写锁相关练习
- 练习6.3 :扩展读写锁机制的实现,添加
rw_lock_rtrylock()和rw_lock_wtrylock()函数。如果无法授予请求的读或写权限,这些函数应返回EBUSY。 - 练习6.4 :修改读写锁机制,使写权限具有优先级。编写一个程序,启动三个线程,两个读线程和一个写线程,测试新的实现。
- 第一个读线程依次请求五个读权限,获得权限后打印控制消息,等待两秒后再请求下一个读权限。
- 第二个读线程除了第一次获得读权限后等待一秒,其余时间等待两秒。
订阅专栏 解锁全文
77



被折叠的 条评论
为什么被折叠?



