全球专业中文经管百科,由121,994位网友共同编写而成,共计436,015个条目

任务并行

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目录

什么是任务并行

  任务并行,是平行计算程序设计模型的一种。在这个模型中,每一个线程执行一个分配到的任务,而这些线程则被分配(通常是操作系统内核)到该并行计算体系的各个计算节点中去。

任务并行的内容

  任务并行是并行计算程序设计模型的一种。在这个模型中,每一个线程执行一个分配到的任务,而这些线程则被分配(通常是操作系统内核)到该并行计算体系的各个计算节点中去。

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

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

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

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

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

相关条目

本条目对我有帮助0
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您认为本条目还有待完善,需要补充新内容或修改错误内容,请编辑条目投诉举报

本条目由以下用户参与贡献

LuyinT.

评论(共0条)

提示:评论内容为网友针对条目"任务并行"展开的讨论,与本站观点立场无关。

发表评论请文明上网,理性发言并遵守有关规定。

打开APP

以上内容根据网友推荐自动排序生成

下载APP

闽公网安备 35020302032707号