OpenMP任务并行程序的自适应并行性
1. 代码示例
以下是所有线程执行的代码:
void _Worker_func(struct Tmk_sched_arg *_my_arguments)
{
...
do {
if (PopWork(&task) == -1) {
break;
}
QuickSort(task.left, task.right);
} while (1);
/* original code */
/* modified line below replaces above line */
} while (!Tmk_leave());
}
主进程执行的代码:
Tmk_sched_fork(_Worker_func, &Tmk_arguments);
新进程从加入请求到准备好加入大约需要0.5 - 1秒,但在此期间其他进程会继续进行计算。当前实现的唯一限制是主进程不能终止。
2. 实现
对TreadMarks 1.1.0系统进行了修改以支持自适应。当前版本的系统支持数据并行和任务并行应用程序的自适应并行性,下面主要关注任务并行应用程序。
加入和离开请求可以通过TCP/IP连接从任何外部源发送到系统。
2.1 加入事件
- 主进程在指定
超级会员免费看
订阅专栏 解锁全文
21

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



