阻塞通信

阻塞通信是標準通信模式、緩衝通信模式等。

基本信息

以套接字為例,在阻塞模式下,利用TCP協定傳送一個報文時,如果低層協定沒有可用空間來存放用戶數據,則套用進程將阻塞等待直到協定有可用的空間。而在非阻塞模式下,調用將直接返回而不需等待。在套用進程調用接收函式接收報文時,如果是在阻塞模式下,若沒有到達的數據,則調用將一直阻塞直到有數據到達或出錯;而在非阻塞模式下,將直接返回而不需等待。對於UDP協定而言,由於UDP沒有傳送快取,因此所有UDP協定即使在阻塞模式下也不會發生阻塞。對於面向連線的協定,在連線建立階段,阻塞與非阻塞也表現不一。在阻塞模式下,如果沒有連線請求到達,則等待連線調用將阻塞直到有連線請求到達;但在非阻塞模式下,如果沒有連線請求到達,等待連線調用將直接返回。

特點

MPI點到點的通信中,通信分為阻塞通信和非阻塞通信。

阻塞通信是指訊息傳送方的send調用需要接受方的recv調用的配合才可完成,包括:

1.標準通信模式

在MPI採用標準通信模式時,是否對傳送的數據進行快取是由MPI自身決定的,而不是由並行程式設計師來控制。

如果MPI決定快取將要發出的數據,傳送操作不管接收操作是否執行,都可以進行而且傳送操作可以正確返回,而不要求接收操作收到傳送的數據。

由於快取數據是需要付出代價的,它會延長數據通信的時間,而且緩衝區也並不是總可以得到的,這樣MPI也可以不快取將要發出的數據,這樣只有當相應的接收調用被執行後,並且傳送數據完全到達接收緩衝區後傳送操作才算完成。

2.緩衝通信模式

當用戶對標準通信模式不滿意希望直接對通信緩衝區進行控制時可採用快取通信模式。在這種模式下由用戶直接對通信緩衝區進行申請使用和釋放,因此快取模式下對通信緩衝區的合理與正確使用是由程式設計人員自己保證的

3.就緒通信模式

僅當對方的接受操作啟動並準備就緒時,才可傳送數據。(其傳送方式與標準傳送完全一致,只不過向MPI環境傳遞一個額外信息:接收動作已經就緒,直接發就是。)

4.同步通信模式

不論接收端是否啟動了接收動作,傳送端都可在任何時機啟動傳送動作。但傳送端需等待接收端的接收動作傳送並開始接收數據之後才可以結束。

對於 非阻塞通信,不必等到通信操作完全完成便可以返回,該通信操作可以交給特定的通信硬體去完成,在該通信硬體完成該通信操作的同時,處理機可以同時進行計算操作,這樣便實現了計算與通信的重疊。通過計算與通信的重疊,可以大大提高程式執行的效率。這一方法和通過異步I/O實現I/O與計算的重疊思路是完全一樣的。

相關詞條

熱門詞條

聯絡我們