1. 程式人生 > >文獻筆記(十五)

文獻筆記(十五)

一、基本資訊

標題:基於負載平衡的並行C語言的設計與實現

時間:2007年4月

出版源:吉林大學

領域分類:分散式系統

作者:張璐 專業:計算機系統結構 工程碩士

二、研究背景

問題定義:基於負載平衡的並行 C 語言

難點:關鍵技術的實現

相關工作: 分散式系統,並行,負載平衡,多執行緒,遠端過程呼叫

三、研究內容

  • 平行計算技術及並行語言設計的研究

  • 分散式系統下,負載平衡技術研究

    • 資訊策略
    • 轉移策略
    • 位置策略
    • 選擇策略
    • 接受策略
    • 決定策略
  • 分散式系統下,多執行緒及遠端過程呼叫的研究及使用

    執行緒的建立當一個程式開始時,將會建立一個主執行緒,其它執行緒由函式pthread_create 來建立。該函式定義如下:

    include<pthread.h>
    
      int pthread_create(pthread_t *tid , const pthread_attr_t *attr , void 
    
                              (start_routine)(void*) , void *arg);
    

    ​ /**引數 tid 用於返回新建立執行緒的執行緒號; start_routine 是執行緒函式指標,執行緒從這個函式開始獨立地執行;arg 是傳遞給執行緒函式的引數。由於 start_routine 是一個指向引數型別為 void,返回值為 void的指標,所以如果需要傳遞或返回多個引數時,可以使用強制型別轉化*/

  • 基於負載平衡的並行 C 語言的設計

    三層結構體模型

  • 客戶端(Client)

  • 負載平衡伺服器(Load Balancing Sever)

  • 計算節點伺服器(Computing Sever)

  • 基於負載平衡的並行 C 語言的實現

使用者在使用基於負載平衡的並行 C 語言編寫並行應用程式時,要注意如下幾點:

  1. 正確地理解和使用此並行 C 語言的標識語句;
  2. 將一個大的任務劃分為若干個子任務,應保證並行處理的子任務不相關,不存在對共享變數的互斥訪問,同時儘量保證子任務粒度均衡;
  3. 謹慎使用靜態變數,傳給子任務功能函式的引數若為靜態變數,應保證各靜態變數不相同,即保證執行緒是安全的

四、結論

  • 分散式系統具有強大計算能力,充分利用分散式系統中的資源更好的進行平行計算的問題,分散式系統中資源的負載是否平衡是關係到並行效果的一個極為關鍵的因素
  • 將多執行緒與 RPC 技術結合起來,用多執行緒實現客戶端任務的併發、RPC 實現任務在分散式系統中各服務節點上的分佈及並行執行。
  • 任務的計算量越大、劃分為並行化處理的子任務越適宜,效果越顯著

參考文獻

[1] 陳國良,《平行計算——結構●演算法●程式設計》,高等教育出版社,1999.10,p45-58,p112-135。
[2] 美 RajkumarBuyya 著,鄭緯民 等譯,《高效能叢集計算:結構與系統(第一卷)》,電子工業出版社,2001.6,p65-89。
[3] 美 RajkumarBuyya 著,鄭緯民 等譯,《高效能叢集計算:程式設計與應用(第二卷)》,電子工業出版社,2001.7,p232-245。
[4] BARRYW, MICHAEL A 著,並行程式設計 [M] 陸鑫達譯,機械工業出版社,2002,p25-45。
[5] 徐高潮,胡亮,鞠九濱,《分佈計算系統》,高等教育出版社,2004,p130-158。
[6] 蔣江,異構集群系統中給予程序遷移機制的負載平衡演算法的研究,國防科技大學博士論文,2002,p20-29。

[7] 陳錫明,基於 NOW 的任務排程和負載平衡方法研究,電子科技大學博士論文,2000,p46-52。
[8] 高翔,負載平衡技術及其應用,計算機工程與科學,2003,p2-3。
[9] Wei Shu,Runtime Incremental Parallel Scheduling(RIPS) on Distributed Memory Computers,IEEE Transactions On Parallel And Distributed Systems,Vol.7,No.6,June 1996,p637-649。
[10] 陳華平,郭國良,分散式動態負載平衡排程的一個通用模型,軟體學報,1998,9(1),p25-29。
[11] 傅強,鄭緯民,一種適用於機群系統的任務動態排程方法,軟體學報,1999,10(1),p20-23。
[12] Ousterhout J. Scheduling techniques for concurrent systems ,Proceedings of the 3rd International Conference on Distributed Computing Systems,1992,p22-30。
[13] Min-You Wu,Parallel Incremental Scheduling,Parallel Processing Letters,1995。

[14] 林宇,郭凌雲 編著,《Linux 網路程式設計》,人民郵電出版社,2000.10,p35-42,p66-78,p124-158。
[15] W.Richard Stevens 著,施振川,周利民,孫巨集暉 等譯,《UNIX 網路程式設計 第 1 卷:套介面 API 和 X/Open 傳輸介面 API》,清華大學出版社,1999,p182-202。
[16] Peter A. Dinda. Online Prediction of the Running Time of Tasks [J]. 2002,p225-236。
[17] Peter A. Dinda, David R. O'Hallaron. Host load prediction using linear models [J].2000,p265-280。