[發明專利]分布式并行計算方法和裝置有效
| 申請號: | 201710987163.7 | 申請日: | 2017-10-20 |
| 公開(公告)號: | CN107832144B | 公開(公告)日: | 2020-07-28 |
| 發明(設計)人: | 何恒靖;肖勇;趙云;錢斌;鄭楷洪;周密 | 申請(專利權)人: | 南方電網科學研究院有限責任公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/48 |
| 代理公司: | 廣州華進聯合專利商標代理有限公司 44224 | 代理人: | 周清華 |
| 地址: | 510663 廣東省廣州市蘿崗區科*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分布式 并行 計算方法 裝置 | ||
本發明分布式并行計算方法和裝置,在得到各計算子任務線程時,根據遠程過程調用,為每一個計算子任務線程新建一個Matlab任務進程;每個Matlab任務進程都有一個獨立的MCR實例,克服MCR實例僅能串行運行計算子任務的機制問題;各Matlab任務進程可同時并行運行,各MCR實例同時對計算子任務的數據包進行處理計算,實現分布式環境下跨語言調用Matlab進行分布式并行計算的功能。
技術領域
本發明涉及軟件工程技術領域,特別是涉及一種分布式并行計算方法和裝置。
背景技術
當前,分布式并行計算系統,如Hadoop、Storm等平臺,均采用Java、Python等開發語言;這些語言在事務處理、網絡編程等方面有巨大優勢,但難以處理大規模數值計算、矩陣運算等任務。而Matlab則主要面向科學計算,在計算速度和計算效率方面要明顯優于Java、Python等語言,但在事務處理和網絡編程方面,Matlab難以應對復雜的網絡應用開發。
在實現的過程中,發明人發現傳統技術中至少存在如下問題:通常Java、Python等語言一般采用多線程方式來實現并行計算,而由于Matlab的限制,采用多個線程調用多個Matlab實例進行并行計算無法實現。
發明內容
基于此,有必要針對跨語言調用Matlab難以實現并行計算的問題,提供一種分布式并行計算方法和裝置。
為了實現上述目的,一方面,本發明實施例提供了一種分布式并行計算方法;
一種分布式并行計算方法,包括:
在得到各計算子任務線程時,根據遠程過程調用,分別建立各計算子任務線程的Matlab任務進程;
分別獲取各Matlab任務進程對應的計算子任務線程的數據包,并獨立運行處理數據包,執行Matlab分布式并行計算。
在其中一個實施例中,Matlab任務進程包括計算服務線程;
在得到各計算子任務線程時,根據遠程過程調用,分別建立各計算子任務線程的Matlab任務進程的步驟包括:
根據遠程過程調用,調度計算子任務線程的計算服務線程。
在其中一個實施例中,Matlab任務進程還包括MCR實例以及Matlab計算服務;
分別獲取各Matlab任務進程對應的計算子任務線程的數據包,獨立運行處理數據包,實現Matlab分布式并行計算的步驟包括:
根據計算服務線程,啟動MCR實例并運行Matlab計算服務;
通過MCR實例和Matlab計算服務,對數據包進行處理。
在其中一個實施例中,還包括步驟,
在建立各Matlab任務進程時,通過計算子任務線程啟動心跳線程;通過心跳線程,將計算子任務線程的運行狀態傳輸給Matlab任務進程;
在啟動MCR實例時,啟動心跳檢測線程;通過心跳檢測線程,以輪詢的方式檢測計算子任務線程的運行狀態。
在其中一個實施例中,在得到各計算子任務線程時,通過遠程過程調用,分別建立各計算子任務線程的Matlab任務進程的步驟之前,還包括:
在獲取到待處理數據時,通過非Matlab語言對待處理數據進行預處理,得到各預處理數據,基于各預處理數據啟動各計算子任務線程;非Matlab語言為支持Matlab調用的編程語言。
在其中一個實施例中,分別獲取各Matlab任務進程對應的計算子任務線程的數據包,并獨立運行處理數據包,實現Matlab分布式并行計算的步驟之前,還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南方電網科學研究院有限責任公司,未經南方電網科學研究院有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710987163.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種物理機資源的處理方法和裝置
- 下一篇:一種基于虛擬機的系統資源釋放方法





