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

任務並行

用手机看条目

出自 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号