【转载】任务平行

任务平行英语Task parallelism),也称为功能平行(function parallelism)或控制平行(control parallelism),是平行计算程序设计模型的一种。在这个模型中,每一个线程执行一个分配到的任务,而这些线程则被分配(通常是操作系统内核)到该并行计算体系的各个计算节点中去。

多处理器调度

一般任务在处理器上的调度是通过用户线程(User Thread,相对于内核线程 - Kernel Thread 而言)实现的。操作系统内核通过操纵调度器(Scheduler)对线程进行调度从而将任务映射到各个处理器上。这种调度方式一般不能满足用户自由安排分配任务的要求:通常需要操作系统提供一个用户模式下的调度器来完成这个任务。调度器的任务就是尽可能合理的将任务分配和均衡到个处理器上。

任务并行涉及到的概念

同步是任务并行里涉及到最重要的任务之间通信的方法,分为进程同步(或者线程同步)和 数据同步。进程同步主要研究如何确定数个进程之间的执行顺序和避免数据竞争(Data race condition)的问题。避免数据竞争的主要方法是在程序中设立临界区,即一次只允许一个线程执行的一段代码,通常用于保护重要的公共变量。然而也有理论研究一次允许数个线程执行临界区代码的一般情况,称为l-exclusion问题。

就编程方法来说,保持进程间同步的主要方法有内存屏障(Memory barrier),互斥锁(Mutex),信号量(Semaphore)和(Lock),管程(Monitor),消息(Message),管道(Pipe)。

数据同步则是研究如何保证在一个变量的多个副本之间保持一致性的问题。数据同步通常涉及到的话题有Cache一致性(Cache Coherence),数据复制(Data replication)等等。

数据同步和进程同步的目的是为了使程序在多处理器执行的条件下保持一定的内存模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值