(57)【要約】      （修正有）【課題】組み込み型オペレーティングシステムにおけるＭＰＩ（Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇ  Ｉｎｔｅｒｆａｃｅ）実現システムを提供する。【解決手段】アプリケーション層のＭＰＩアプリケーションプログラムは、複数のＭＰＩノードのアプリケーションプログラムに割り当てられる。ＭＰＩ層は、プロセス処理モジュール、基礎機能ライブラリおよびＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースを含む。プロセス処理モジュールは、ユーザーがＭＰＩアプリケーションプログラムを呼び出す指令を受信し、アプリケーションプログラムを起動し、基礎機能ライブラリを介して、オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。【選択図】図１
2019071037.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション層、ＭＰＩ層およびオペレーティングシステム層を含み、
前記アプリケーション層のＭＰＩアプリケーションプログラムは、１つまたは複数のＭＰＩノードのアプリケーションプログラムに割り当てられているアプリケーションプログラムであり、前記ＭＰＩ層は、プロセス処理モジュールと、基礎機能ライブラリと、前記ＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースとを含み、
前記プロセス処理モジュールは、ユーザーが前記ＭＰＩアプリケーションプログラムを呼び出す指令を受信し、
前記プロセス処理モジュールはさらに、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了することを特徴とする組み込み型オペレーティングシステムに基づくメッセージ伝達インターフェース（ＭＰＩ）実現システム。
【請求項２】
前記プロセス処理モジュールは、
前記１つまたは複数のＭＰＩノードにおいて動作する各ＭＰＩノード上のプロセススターターと、サーバと、サブプロセススターターと、プロセスマネージャーとを含み、
前記１つまたは複数のＭＰＩノード中のいずれか１つのノードにおけるプロセススターターは、受信したユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令に基づき、前記各ＭＰＩノードのサーバへサービス接続リクエストを送信し、前記ＭＰＩ各ノード上のサーバ間との通信接続を確立し、
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出し、
前記各ＭＰＩノード上のサブプロセススターターは、対応するノード上のプロセスマネージャーを呼び出し、
前記各ＭＰＩノード上のプロセスマネージャーは、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを起動し、前記基礎機能ライブラリを介して、オペレーティングシステム層組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了することを特徴とする請求項１に記載の組み込み型オペレーティングシステムに基づくメッセージ伝達インターフェース（ＭＰＩ）実現システム。
【請求項３】
前記各ＭＰＩノード上のサーバは、
前記プロセススターターと前記ＭＰＩ各ノード上のサーバの間の通信接続が確立された後、受信した前記サービス接続リクエストに基づき、前記プロセススターターが送信した前記ＭＰＩアプリケーションプログラムのパラメーターを受信し、
前記各ＭＰＩノード上のサーバは、前記ＭＰＩにおけるサブプロセススターターを呼び出し、前記ＭＰＩアプリケーションプログラムのパラメーターを自身に対応するサブプロセススターターまで送信することを特徴とする請求項２に記載の組み込み型オペレーティングシステムに基づくメッセージ伝達インターフェース（ＭＰＩ）実現システム。
【請求項４】
前記ユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令を受信したプロセスマネージャーは、前記各ＭＰＩノード上のサブタスクの実行結果を総括し、前記ＭＰＩアプリケーションプログラムの動作結果を取得することを特徴とする請求項３に記載の組み込み型オペレーティングシステムに基づくメッセージ伝達インターフェース（ＭＰＩ）実現システム。
【請求項５】
前記各ＭＰＩノード上のプロセスマネージャーは、
自身が位置するＭＰＩノード上のサブタスクのプロセスを作成し、前記プロセスは前記組み込み型リアルタイムオペレーティングシステムのサービス機能を直接呼び出すか、または前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出し、これにより、前記ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了することを特徴とする請求項２ないし請求項４のいずれか１つに記載の組み込み型オペレーティングシステムに基づくメッセージ伝達インターフェース（ＭＰＩ）実現システム。
【請求項６】
前記プロセスがＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すことは、
前記プロセスが、１つまたは複数の、ＭＰＩ＿Ｓｅｎｄ、ＭＰＩ＿Ｂｓｅｎｄ、ＭＰＩ＿Ｓｓｅｎｄ、ＭＰＩ＿Ｉｓｅｎｄ、ＭＰＩ＿Ｉｂｓｅｎｄ、ＭＰＩ＿Ｉｓｓｅｎｄインターフェースを呼び出し、特定のデータを指定ノードまで送信する指定プロセスのプロセスを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するステップ、または、
前記プロセスがＭＰＩ＿Ｒｅｃｖを呼び出し、ＭＰＩ＿Ｉｒｅｃｖインターフェースにおける１つまたは複数の指定ＭＰＩノードの指定プロセスから受信したデータを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するステップとを含むことを特徴とする請求項１に記載の組み込み型オペレーティングシステムに基づくメッセージ伝達インターフェース（ＭＰＩ）実現システム。
【請求項７】
前記プロセスがＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すことは、
前記プロセスがＭＰＩ＿Ｗｉｎ＿ｃｒｅａｔｅインターフェースを呼び出すことにより、遠隔メモリー機能を使用するか、または、
前記プロセスがＭＰＩ＿Ｗｉｎ＿ｌｏｃｋ／ＭＰＩ＿Ｗｉｎ＿ｕｎｌｏｃｋインターフェースを呼び出すことにより、アクセスされた作成に対してロックとアンロックを行うか、または、
前記プロセスがＭＰＩ＿Ｐｕｔを呼び出すことにより、データをサーバ上までプッシュするか、または、
前記プロセスがＭＰＩ＿Ｇｅｔを呼び出すことにより、サーバ上からデータを取得することを特徴とする請求項１に記載の組み込み型オペレーティングシステムに基づくメッセージ伝達インターフェース（ＭＰＩ）実現システム。
【請求項８】
通信システムに適用する組み込み型オペレーティングシステムに基づくＭＰＩ実現方法であって、
前記通信システムは、アプリケーション層と、ＭＰＩ層と、オペレーティングシステム層とを含み、前記アプリケーション層のＭＰＩアプリケーションプログラムは、１つまたは複数のＭＰＩノードのアプリケーションプログラムに割り当てられており、前記ＭＰＩ層は、プロセス処理モジュールと、基礎機能ライブラリと、前記ＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースとを含み、前記方法は、
前記プロセス処理モジュールは、ユーザーが前記ＭＰＩアプリケーションプログラムを呼び出す指令を受信するステップと、
前記プロセス処理モジュールは、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップとを含むことを特徴とする組み込み型オペレーティングシステムに基づくＭＰＩ実現方法。
【請求項９】
前記ＭＰＩ層は前記１つまたは複数のＭＰＩノードにおいて動作する各々ＭＰＩノード上のプロセススターター、サーバ、サブプロセススターターおよびプロセスマネージャーをさらに含み、
前記プロセス処理モジュールが、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップは、
前記１つまたは複数のＭＰＩノード中のいずれか１つのノードにおけるプロセススターターは、受信したユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令に基づき、前記各ＭＰＩノードのサーバへサービス接続リクエストを送信し、前記ＭＰＩ各ノード上のサーバ間との通信接続を確立するステップと、
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出すステップと、
前記各ＭＰＩノード上のサブプロセススターターは、対応するノード上のプロセスマネージャーを呼び出すステップと、
前記各ＭＰＩノード上のプロセスマネージャーは、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを起動し、前記基礎機能ライブラリを介して、オペレーティングシステム層組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップとを含むことを特徴とする請求項８に記載の組み込み型オペレーティングシステムに基づくＭＰＩ実現方法。
【請求項１０】
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出すステップは、
前記プロセススターターと前記ＭＰＩ各ノード上のサーバの間の通信接続が確立された後、受信した前記サービス接続リクエストに基づき、前記プロセススターターが送信した前記ＭＰＩアプリケーションプログラムのパラメーターを受信するステップと、
前記各ＭＰＩノード上のサーバは、前記ＭＰＩにおけるサブプロセススターターを呼び出し、前記ＭＰＩアプリケーションプログラムのパラメーターを自身に対応するサブプロセススターターまで送信するステップとを含むことを特徴とする請求項８に記載の組み込み型オペレーティングシステムに基づくＭＰＩ実現方法。
【請求項１１】
前記ユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令を受信したプロセスマネージャーは、前記各ＭＰＩノード上のサブタスクの実行結果を総括し、前記ＭＰＩアプリケーションプログラムの動作結果を取得することを特徴とする請求項８に記載の組み込み型オペレーティングシステムに基づくＭＰＩ実現方法。
【請求項１２】
前記各ＭＰＩノード上のプロセスマネージャーは、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップは、
前記各ＭＰＩノード上のプロセスマネージャーは、自身が位置するＭＰＩノード上のサブタスクのプロセスを作成し、前記プロセスは前記組み込み型リアルタイムオペレーティングシステムのサービス機能を直接呼び出すか、または前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出し、これにより前記ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了することを特徴とする請求項１１に記載の組み込み型オペレーティングシステムに基づくＭＰＩ実現方法。
【請求項１３】
前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すステップは、
前記プロセスは、１つまたは複数の、ＭＰＩ＿Ｓｅｎｄ、ＭＰＩ＿Ｂｓｅｎｄ、ＭＰＩ＿Ｓｓｅｎｄ、ＭＰＩ＿Ｉｓｅｎｄ、ＭＰＩ＿Ｉｂｓｅｎｄ、ＭＰＩ＿Ｉｓｓｅｎｄインターフェースを呼び出し、特定のデータを指定ノードまで送信する指定プロセスのプロセスを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するか、または、
前記プロセスは、ＭＰＩ＿Ｒｅｃｖを呼び出し、ＭＰＩ＿Ｉｒｅｃｖインターフェースにおける１つまたは複数の指定ＭＰＩノードの指定プロセスから受信したデータを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現することを特徴とする請求項８に記載の組み込み型オペレーティングシステムに基づくＭＰＩ実現方法。
【請求項１４】
前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すステップは、
前記プロセスは、ＭＰＩ＿Ｗｉｎ＿ｃｒｅａｔｅインターフェースを呼び出すことにより、遠隔メモリー機能を使用するか、または、
前記プロセスは、ＭＰＩ＿Ｗｉｎ＿ｌｏｃｋ／ＭＰＩ＿Ｗｉｎ＿ｕｎｌｏｃｋインターフェースを呼び出すことにより、アクセスされた作成に対してロックとアンロックを行うか、または、
前記プロセスは、ＭＰＩ＿Ｐｕｔを呼び出すことにより、データをサーバ上までプッシュするか、または、
前記プロセスは、ＭＰＩ＿Ｇｅｔを呼び出すことにより、サーバ上からデータを取得することを特徴とする請求項１に記載の組み込み型オペレーティングシステムに基づくＭＰＩ実現方法。
【請求項１５】
メモリー中に記憶したコンピュータプログラムを実行する時に請求項８−１４のいずれか１つに記載の前記方法のステップを実現するプロセッサを備えるコンピュータ装置。
【請求項１６】
コンピュータ指令を記憶し、前記指令がコンピュータ上で動作する時に、コンピュータに請求項８−１４のいずれか１つに記載の前記方法を実行させるコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信分野に関し、特に組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法に関する。
【背景技術】
【０００２】
ＭＰＩ基礎研究は組み込み型コンピュータ通信分野において大きな意義を持つ。しかし、ＭＰＩの具体的な実現に関する研究はあまり多くなく、現在のコンピュータ通信における具体的な演算では、規模が大きく、演算が複雑なオペレーションに対して、性能がより良いプロセッサデバイスを採用し、マルチスレッドパラレル処理方法を使用および／またはアルゴリズムの最適化または高位アルゴリズムへの変換といった処理方法を用いている。
【０００３】
従来の各種処理方法は全て一定の不足または欠陥が存在している。具体的な例は次の通りである。プロセッサデバイスのモデルチェンジ速度が現実社会のニーズ変化に追いついていないどころか、プロセッサのモデルチェンジが工程、デバイス消耗、構造設計等の各方面にまで影響をおよぼし、性能向上が制約を受けている。マルチスレッドプログラミング技術を用いて現代ハードウェア処理能力を十分に利用すれば、演算時間を短縮できる。ただし、単体プロセッサ上では、プロセッサの実際の物理コア数の制限を受けるため、スレッドが多いほど性能がより向上するとは限らない。スレッド数と実際のコア数が一致した時にのみ、全体の演算性能が最良となる。すべてのアルゴリズムが最適化できるとは限らず、最適化効果も明らかとは限らない。高位アルゴリズムに必要な時間を研究することは、実際のオペレーションと合致するとは限らない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、従来技術において、大型のアプリケーションプログラム動作中、プロセッサデバイスのハードウェアに対する要求は高く、アプリケーションプログラムに対応するタスク数がプロセッサ実際の物理コア数より多ければ、必ず時分割処理を行わねばならず、アプリケーションプログラム動作所要時間が長くなるという問題が存在することは明らかである。
【課題を解決するための手段】
【０００５】
従来技術に存在する前記技術問題を解決するため、組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法を提供しており、本発明の実施形態は規模が大きく、演算が複雑な計算で、特定のアルゴリズムに従い、計算プロセスを多段階化し、ＭＰＩによりこの中の１段または複数段を複数ＭＰＩ動作ノード（各ノードは１つの独立コンピュータと言える）まで分配し、単独で計算し、計算結果をＭＰＩが統一して提示できる。分配と結果の総括はＭＰＩが自動で完了し、人が関与する必要は無い。従来技術と比べて、組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法はコンピュータのプロセッサのハードウェアに対する要求を下げ、マルチスレッド同時処理を支援し、アプリケーションプログラムの動作速度を高め、拡張性に優れている。
【０００６】
第１方面として、本発明の１つの実施形態が提供する、通信システムに適用する、組み込み型オペレーティングシステムに基づくＭＰＩ実現システムにおいて、前記通信システムは、
アプリケーション層と、ＭＰＩ層およびオペレーティングシステム層とを含み、
前記アプリケーション層のＭＰＩアプリケーションプログラムは、１つまたは複数のＭＰＩノードのアプリケーションプログラムに割り当てられており、ＭＰＩ層は、プロセス処理モジュール、基礎機能ライブラリおよび前記ＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースを含み、
前記プロセス処理モジュールは、ユーザーが前記ＭＰＩアプリケーションプログラムを呼び出す指令を受信し、
前記プロセス処理モジュールはさらに、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【０００７】
好ましくは、前記プロセス処理モジュールは具体的に、
前記１つまたは複数のＭＰＩノードにおいて動作する各々ＭＰＩノード上のプロセススターター、サーバ、サブプロセススターターおよびプロセスマネージャーを含み、
前記１つまたは複数のＭＰＩノード中のいずれか１つのノードにおけるプロセススターターは、受信したユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令に基づき、前記各ＭＰＩノードのサーバへサービス接続リクエストを送信し、前記ＭＰＩ各ノード上のサーバ間との通信接続を確立し、
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出し、
前記各ＭＰＩノード上のサブプロセススターターは、対応するノード上のプロセスマネージャーを呼び出し、
前記各ＭＰＩノード上のプロセスマネージャーは、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを起動し、前記基礎機能ライブラリを介して、オペレーティングシステム層組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【０００８】
好ましくは、前記各ＭＰＩノード上のサーバは具体的に、
前記プロセススターターと前記ＭＰＩ各ノード上のサーバの間の通信接続が確立された後、受信した前記サービス接続リクエストに基づき、前記プロセススターターが送信した前記ＭＰＩアプリケーションプログラムのパラメーターを受信し、
前記各ＭＰＩノード上のサーバは、前記ＭＰＩにおけるサブプロセススターターを呼び出し、前記ＭＰＩアプリケーションプログラムのパラメーターを自身に対応するサブプロセススターターまで送信する。
【０００９】
好ましくは、前記ユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令を受信したプロセスマネージャーは、前記各ＭＰＩノード上のサブタスクの実行結果を総括し、前記ＭＰＩアプリケーションプログラムの動作結果を取得する。
【００１０】
好ましくは、前記各ＭＰＩノード上のプロセスマネージャーは具体的に、
自身が位置するＭＰＩノード上のサブタスクのプロセスを作成し、前記プロセスは前記組み込み型リアルタイムオペレーティングシステムのサービス機能を直接呼び出すか、または前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出しこれにより、前記ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【００１１】
好ましくは、前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すことは、
前記プロセスは、１つまたは複数のＭＰＩ＿Ｓｅｎｄ、ＭＰＩ＿Ｂｓｅｎｄ、ＭＰＩ＿Ｓｓｅｎｄ、ＭＰＩ＿Ｉｓｅｎｄ、ＭＰＩ＿Ｉｂｓｅｎｄ、ＭＰＩ＿Ｉｓｓｅｎｄインターフェースを呼び出し,特定のデータを指定ノードまで送信する指定プロセスのプロセスを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するか、または、
前記プロセスは、ＭＰＩ＿Ｒｅｃｖを呼び出し、ＭＰＩ＿Ｉｒｅｃｖインターフェースにおける１つまたは複数の指定ＭＰＩノードの指定プロセスから受信したデータを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現する。
【００１２】
好ましくは、前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すことは、
前記プロセスは、ＭＰＩ＿Ｗｉｎ＿ｃｒｅａｔｅインターフェースを呼び出すことにより、遠隔メモリー機能を使用するか、または、
前記プロセスがＭＰＩ＿Ｗｉｎ＿ｌｏｃｋ／ＭＰＩ＿Ｗｉｎ＿ｕｎｌｏｃｋインターフェースを呼び出すことにより、アクセスされた作成に対してロックとアンロックを行うか、または、
前記プロセスがＭＰＩ＿Ｐｕｔを呼び出すことにより、データをサーバ上までプッシュするか、または、
前記プロセスは、ＭＰＩ＿Ｇｅｔを呼び出すことにより、サーバ上からデータを取得する。
【００１３】
第２方面として、本発明の１つの実施形態が提供する、通信システムに適用する、組み込み型オペレーティングシステムに基づくＭＰＩ実現方法において、前記通信システムは、アプリケーション層と、ＭＰＩ層と、オペレーティングシステム層とを含む。前記アプリケーション層のＭＰＩアプリケーションプログラムは、１つまたは複数のＭＰＩノードのアプリケーションプログラムに割り当てられており、前記ＭＰＩ層は、プロセス処理モジュール、基礎機能ライブラリおよび前記ＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースを含み、前記方法は、
前記プロセス処理モジュールは、ユーザーが前記ＭＰＩアプリケーションプログラムを呼び出す指令を受信するステップと、
前記プロセス処理は、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップとを含む。
【００１４】
好ましくは、前記ＭＰＩ層は前記１つまたは複数のＭＰＩノードにおいて動作する各々ＭＰＩノード上のプロセススターター、サーバ、サブプロセススターターおよびプロセスマネージャーをさらに含む。前記プロセス処理モジュールは、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップは、
前記１つまたは複数のＭＰＩノード中のいずれか１つのノードにおけるプロセススターターは、受信したユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令に基づき、前記各ＭＰＩノードのサーバへサービス接続リクエストを送信し、前記ＭＰＩ各ノード上のサーバ間との通信接続を確立するステップと、
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出ステップと、
前記各ＭＰＩノード上のサブプロセススターターは、対応するノード上のプロセスマネージャーを呼び出すステップと、
前記各ＭＰＩノード上のプロセスマネージャーは、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを起動し、前記基礎機能ライブラリを介して、オペレーティングシステム層組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【００１５】
好ましくは、前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出すステップは、
前記プロセススターターと前記ＭＰＩ各ノード上のサーバの間の通信接続が確立された後、受信した前記サービス接続リクエストに基づき、前記プロセススターターが送信した前記ＭＰＩアプリケーションプログラムのパラメーターを受信するステップと、
前記各ＭＰＩノード上のサーバは、前記ＭＰＩにおけるサブプロセススターターを呼び出し、前記ＭＰＩアプリケーションプログラムのパラメーターを自身に対応するサブプロセススターターまで送信するステップとを含む。
【００１６】
好ましくは、前記ユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令を受信したプロセスマネージャーは、前記各ＭＰＩノード上のサブタスクの実行結果を総括し、前記ＭＰＩアプリケーションプログラムの動作結果を取得する。
【００１７】
好ましくは、前記各ＭＰＩノード上のプロセスマネージャーは、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップは、
前記各ＭＰＩノード上のプロセスマネージャーは、自身が位置するＭＰＩノード上のサブタスクのプロセスを作成し、前記プロセスは前記組み込み型リアルタイムオペレーティングシステムのサービス機能を直接呼び出す。または前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出す。これにより、前記ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップを含む。
【００１８】
好ましくは、前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すステップは、
前記プロセスは、１つまたは複数の,ＭＰＩ＿Ｓｅｎｄ、ＭＰＩ＿Ｂｓｅｎｄ、ＭＰＩ＿Ｓｓｅｎｄ、ＭＰＩ＿Ｉｓｅｎｄ、ＭＰＩ＿Ｉｂｓｅｎｄ、ＭＰＩ＿Ｉｓｓｅｎｄインターフェースを呼び出し、特定のデータを指定ノードまで送信する指定プロセスのプロセスを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するステップ、または
前記プロセスは、ＭＰＩ＿Ｒｅｃｖを呼び出し、ＭＰＩ＿Ｉｒｅｃｖインターフェースにおける１つまたは複数の指定ＭＰＩノードの指定プロセスから受信したデータを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するステップとを含む。
【００１９】
好ましくは、前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すステップは、
前記プロセスは、ＭＰＩ＿Ｗｉｎ＿ｃｒｅａｔｅインターフェースを呼び出すことにより、遠隔メモリー機能を使用するステップ、または
前記プロセスは、ＭＰＩ＿Ｗｉｎ＿ｌｏｃｋ／ＭＰＩ＿Ｗｉｎ＿ｕｎｌｏｃｋインターフェースを呼び出すことにより、アクセスされた作成に対してロックとアンロックを行うステップ、または
前記プロセスは、ＭＰＩ＿Ｐｕｔを呼び出すことにより、データをサーバ上までプッシュするステップ、または
前記プロセスは、ＭＰＩ＿Ｇｅｔを呼び出すことにより、サーバ上からデータを取得するステップとを含む。第３方面として、本発明の実施形態３は、メモリー中に記憶したコンピュータプログラムを実行する時に第1方面の実施形態において記述したステップを実現するプロセッサを備えるコンピュータ装置を提供する。
【００２０】
第４方面として、本発明の実施形態４は、コンピュータ指令を記憶し、前記指令がコンピュータ上で動作する時に、コンピュータに第１方面の実施形態において記述した方法を実行させるコンピュータ読み取り可能な記録媒体を提供する。
【発明の効果】
【００２１】
本発明の実施形態に係る１つまたは複数の技術案は、少なくとも以下の技術効果または利点を有する。
【００２２】
組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法を提供することにより、規模が大きく、演算が複雑な計算で、特定のアルゴリズムに従い、計算プロセスを多段階化し、規模が大きく、演算が複雑な計算で、特定のアルゴリズムに従い、計算プロセスを多段階化し、ＭＰＩによりこの中の１段または複数段を複数ＭＰＩ動作ノード（各ノードは１つの独立コンピュータと言える）まで分配し、単独で計算し、計算結果をＭＰＩが統一して提示できる。分配と結果の総括はＭＰＩが自動で完了し、人が関与する必要は無い。従来技術と比べて、組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法はコンピュータのプロセッサのハードウェアに対する要求を下げ、マルチスレッド同時処理を支援し、アプリケーションプログラムの動作速度を高め、拡張性に優れている。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係る組み込み型オペレーティングシステムに基づくＭＰＩ実現システムの第１アーキテクチャブロック図である。
【図２】本発明の実施形態に係る組み込み型オペレーティングシステムに基づくＭＰＩ実現システムの第２アーキテクチャブロック図である。
【図３】本発明の実施形態に係るＭＰＩアプリケーションプログラムの開発および動作フローチャートである。
【図４】本発明の実施形態に係る組み込み型オペレーティングシステムに基づくＭＰＩ実現方法的フローチャートである。
【発明を実施するための形態】
【００２４】
前記技術問題を解決するため、本発明の実施形態における技術案の全体的な考え方は以下の通りである。
【００２５】
組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法において、前記ＭＰＩ実現システムは、アプリケーション層、ＭＰＩ層およびオペレーティングシステム層を含む。前記アプリケーション層のＭＰＩアプリケーションプログラムは、１つまたは複数のＭＰＩノードのアプリケーションプログラムに割り当てられている。前記ＭＰＩ層は、プロセス処理モジュール、基礎機能ライブラリおよび前記ＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースを含み、前記プロセス処理モジュールは、ユーザーが前記ＭＰＩアプリケーションプログラムを呼び出す指令を受信し、前記プロセス処理モジュールはさらに、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。ここで、組み込み型リアルタイムオペレーティングシステムのメッセージ伝達インターフェース（ＭＰＩ）の実現は、組み込み型リアルタイムオペレーティングシステムからは独立しているが、組み込み型リアルタイムオペレーティングシステムが提供する関連サービスに依存している。組み込み型リアルタイムオペレーティングシステムのＭＰＩ実現における上位層（アプリケーションプログラム層）では、サービスインターフェースＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ，アプリケーションプログラムプログラミングインターフェース）を提供し、ＭＰＩアプリケーションプログラムの呼び出しに用いて、関連のＡＰＩインターフェース名称および完了した機能の記述は全てＭＰＩ標準により定義する。下位層（組み込み型リアルタイムオペレーティングシステム層）では、組み込み型リアルタイムオペレーティングシステム相応の基本機能を必ず提供することを要求する。ＭＰＩのネットワーク通信機能は、オペレーティングシステムが提供するＴＣＰ／ＩＰプロトコル層上に確立し、標準のｓｏｃｋｅｔインターフェースに基づき実現する。プロセス管理機能は、オペレーティングシステムが提供するタスク管理機能に依存して実現する。ＩＯ機能は、オペレーティングシステムのファイルシステム、標準のＩＯ操作インターフェースに基づき実現する。ＭＰＩコンポーネント内部に使用する同期、相互排他機能は、信号量、排他ロック、非同期信号等のシステムの同期、相互排他メカニズムに依存する。したがって、ＭＰＩコンポーネントはＭＰＩアプリケーションとオペレーティングシステムが交互に接続する橋渡し役となる。
【００２６】
この他に、ＭＰＩ（Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇ  Ｉｎｔｅｒｆａｃｅ，メッセージ伝達インターフェース）は、メッセージ伝達に基づくパラレルプログラミング技術である。メッセージ伝達インターフェースはプログラミングインターフェース標準であり、具体的なプログラミング言語ではない。簡潔に言えば、ＭＰＩ標準は、移植性を有するプログラミングインターフェースを定義する。ＭＰＩ標準バージョンは、ＭＰＩ１．１、ＭＰＩ２．０、ＭＰＩ３．０の３つがあり、本発明は、ＭＰＩ３．０に基づき実現する。機能ポイントは主に、Ｐ２Ｐ通信、集合通信、パラレルＩＯ、遠隔メモリー、プロセス管理およびＭＰＩ標準関数インターフェースを含む。
【００２７】
前記技術案をより詳細に理解するため、以下に図と具体的な実施形態を結合して詳細に説明する。
【００２８】
図１は、本発明の実施形態１に係る組み込み型オペレーティングシステムに基づくＭＰＩ実現システムであり、アプリケーション層と、ＭＰＩ層と、オペレーティングシステム層とを含む。前記アプリケーション層のＭＰＩアプリケーションプログラムは、１つまたは複数のＭＰＩノードのアプリケーションプログラムに割り当てられている。
【００２９】
前記ＭＰＩ層は、プロセス処理モジュール、基礎機能ライブラリおよび前記ＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースを含む。
【００３０】
前記プロセス処理モジュールは、ユーザーが前記ＭＰＩアプリケーションプログラムを呼び出す指令を受信する。
【００３１】
前記プロセス処理モジュールはさらに、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【００３２】
ここで、前記プロセス処理モジュールは具体的に、前記１つまたは複数のＭＰＩノードにおいて動作する各々ＭＰＩノード上のプロセススターター、サーバ、サブプロセススターターおよびプロセスマネージャーを含む。
【００３３】
図２は、アプリケーションプログラム、ＭＰＩおよび組み込み型リアルタイムオペレーティングシステムが全ての計算システムアーキテクチャに位置する階層構造のブロック図である。ここで、ＭＰＩ層におけるＭＰＩ  ＡＰＩインターフェースとプロセス処理モジュールにおけるプロセススターター、サーバ、サブプロセススターターおよびプロセスマネージャーの主な作用は以下の通りである。
【００３４】
ＭＰＩサーバ（ｐｅｒｓｉｓｔ＿ｓｅｒｖｅｒ）：常駐プロセス（ｒｅｓｉｄｅｎｔ  ｐｒｏｃｅｓｓ）であり、プロセススターター（ｍｐｉｅｘｅｃ）が送信したサービスリクエストをモニタリングする。
【００３５】
プロセススターター（ｍｐｉｅｘｅｃ）：全ＭＰＩアプリケーションの開始者であり、タスク動作パラメーターを伝達する。
【００３６】
プロセスマネージャー（ｈｙｄｒａ＿ｐｍｉ＿ｐｒｏｘｙ）：全ＭＰＩアプリケーションタスクのモニタリングと管理を担当する。
【００３７】
基礎機能ライブラリ（ｌｉｂｍｐｉ）：ＭＰＩ全ての内部の通信メカニズムおよび動作状態メンテナンスの具体的な実現形態を保存しており、他の全てのアプリケーションは前記ライブラリに依存している。
【００３８】
ＭＰＩ  ＡＰＩインターフェース：ＭＰＩ３．０標準が定義したインターフェース定義を提供し、ＭＰＩアプリケーション使用に用いる。
【００３９】
サブプロセススターター（ｐｅｒｓｉｓｔ＿ｓｅｒｖｅｒ＿ｓｌａｖｅｒ）：プロセスマネージャーの呼び出しを担当し、プロセスマネージャーが正常に起動した後、本体は姿を隠してログオフする。
【００４０】
ここで、１つまたは複数のＭＰＩノード中のいずれか１つのノードにおけるプロセススターターは、受信したユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令に基づき、前記各ＭＰＩノードのサーバへサービス接続リクエストを送信し、前記ＭＰＩ各ノード上のサーバ間との通信接続を確立する。具体的に、前記各ＭＰＩノード上のプロセスマネージャーは、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを起動し、前記基礎機能ライブラリを介して、オペレーティングシステム層組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【００４１】
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出し、
前記各ＭＰＩノード上のサブプロセススターターは、対応するノード上のプロセスマネージャーを呼び出す。
【００４２】
具体的に、各ＭＰＩアプリケーションの動作は全て１つのノード上のプロセススターターから開始する。前記プロセススターターが動作後、まず各ノードにおいて動作しているＭＰＩサーバはｓｏｃｋｅｔ通信チャネルを確立し、プリケーションが動作するパラメーターをＭＰＩサーバにまで伝達し、続いて待機状態に変わり、全ノードアプリケーション実行が完了するのを待って、プロセススターターの呼び出しを終了する。
【００４３】
ここで、前記各ＭＰＩノード上のサーバは具体的に、
前記プロセススターターと前記ＭＰＩ各ノード上のサーバの間の通信接続が確立された後、受信した前記サービス接続リクエストに基づき、前記プロセススターターが送信した前記ＭＰＩアプリケーションプログラムのパラメーターを受信し、
前記各ＭＰＩノード上のサーバは、前記ＭＰＩにおけるサブプロセススターターを呼び出し、前記ＭＰＩアプリケーションプログラムのパラメーターを自身に対応するサブプロセススターターまで送信する。
【００４４】
具体的に、ＭＰＩサーバは、組み込み型リアルタイムシステムの起動に伴い、自動的に動作する。ＭＰＩサーバはプログラムとして各ノード上において動作し、プロセススターターが開始したサービス接続リクエストをモニタリングする。
【００４５】
ＭＰＩサーバはプロセススターター接続リクエストを受信し、サブプロセススターターをローディングし、プロセススターターが送信したパラメーターを受信する。続いてモニタリングを継続して実行し、他の接続リクエストを受信する。
【００４６】
サブプロセススターターは、サブプロセスの作成を担当し、これの目的はプロセスマネージャーをローディングし、プロセスマネージャーのローディングに成功するとサブプロセススターターは身を隠してログオフする。
【００４７】
プロセスマネージャーはＭＰＩのコア部分であり、主にユーザーのａｐｐを起動し、各ａｐｐ間の通信チャネルおよび各ａｐｐの動作状態を管理する。前記ノード上の全ａｐｐ実行が完了するのを待って、プロセスマネージャーは自動的に終了し、終了メッセージをプロセススターターへ通知する。
【００４８】
ＭＰＩ  ＡＰＩはＭＰＩアプリケーションプログラム開発向け、ＭＰＩ標準に合致するインターフェース層であり、前記インターフェース層はデルタシステムに基づき、システム操作上での基礎機能ライブラリのサービス機能を呼び出し、アプリケーション開発者は前記層が提供したインターフェースに基づき、複数システム間のＭＰＩアプリケーション移行および新ＭＰＩアプリケーションの開発を実現できる。
【００４９】
基礎機能ライブラリは、組み込み型オペレーティングシステム機能（例：ｐｏｓｉｘインターフェース、Ｉ／Ｏインターフェース、ｓｏｃｋｅｔインターフェース等）に基づき、カプセル化が実現したＭＰＩ基礎機能ライブラリであり、デルタシステムのような組み込み型リアルタイムオペレーティングシステムのＭＰＩコンポーネントのその他機能モジュールは全てこれの基礎能力ライブラリに基づき、相応のサービス機能を実現する。
【００５０】
さらに、前記各ＭＰＩノード上のプロセスマネージャーは具体的に、
自身が位置するＭＰＩノード上のサブタスクのプロセスを作成し、前記プロセスは前記組み込み型リアルタイムオペレーティングシステムのサービス機能を直接呼び出す。または前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出す。これにより、前記ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【００５１】
前記ユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令を受信したプロセスマネージャーは、前記各ＭＰＩノード上のサブタスクの実行結果を総括し、前記ＭＰＩアプリケーションプログラムの動作結果を取得する。
【００５２】
前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すステップは、
前記プロセスは、１つまたは複数の、ＭＰＩ＿Ｓｅｎｄ、ＭＰＩ＿Ｂｓｅｎｄ、ＭＰＩ＿Ｓｓｅｎｄ、ＭＰＩ＿Ｉｓｅｎｄ、ＭＰＩ＿Ｉｂｓｅｎｄ、ＭＰＩ＿Ｉｓｓｅｎｄインターフェースを呼び出し、特定のデータを指定ノードまで送信する指定プロセスのプロセスを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するステップ、または、
前記プロセスは、ＭＰＩ＿Ｒｅｃｖを呼び出し、ＭＰＩ＿Ｉｒｅｃｖインターフェースにおける１つまたは複数の指定ＭＰＩノードの指定プロセスから受信したデータを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するステップと、
前記プロセスは、ＭＰＩ＿Ｗｉｎ＿ｃｒｅａｔｅインターフェースを呼び出すことにより、遠隔メモリー機能を使用するステップ、または、
前記プロセスがＭＰＩ＿Ｗｉｎ＿ｌｏｃｋ／ＭＰＩ＿Ｗｉｎ＿ｕｎｌｏｃｋインターフェースを呼び出すことにより、アクセスされた作成に対してロックとアンロックを行うステップ、または、
前記プロセスがＭＰＩ＿Ｐｕｔを呼び出すことにより、データをサーバ上までプッシュするステップ、または、
前記プロセスは、ＭＰＩ＿Ｇｅｔを呼び出すことにより、サーバ上からデータを取得するステップとを含む。
【００５３】
図３は、実施形態に提供したＭＰＩアプリケーションプログラムの開発および動作フローであり、具体的に以下のＳ３０１からＳ３０５を含む。
【００５４】
Ｓ３０１では、ユーザーはＣ言語でＭＰＩソースコードを編集する。
【００５５】
Ｓ３０２では、ＭＰＩアプリケーションソースコードはＭＰＩ関数ライブラリと共にリンクをコンパイルし、実行可能ＭＰＩプログラムを形成する。
【００５６】
Ｓ３０３では、ユーザーは、実行可能ＭＰＩプログラムを各ＭＰＩ動作ノードに配置する。
【００５７】
Ｓ３０４では、ユーザーは、サブプロセススターター指令を呼び出し、ＭＰＩタスクを起動する。
【００５８】
Ｓ３０５では、各ＭＰＩ動作ノード上のＭＰＩプログラムはプロセスマネージャーの管理下にてタスクをパラレルで完了する。
【００５９】
本実施形態において、常用ＭＰＩアプリケーションの開発フローおよびステップは以下の通りである。
【００６０】
ＭＰＩ  ＡＰＩベース中に提供したＭＰＩ＿Ｉｎｉｔインターフェースを呼び出し、ＭＰＩアプリケーション動作に必要な環境を初期化する。初期化は、ＭＰＩコンポーネント状態の初期化、全ノード状態の初期化、各ノード間通信チャネル状態の初期化およびコンポーネント内部に使用する各種リソースの初期化を含む。
【００６１】
ＭＰＩ＿Ｇｅｔ＿ｐｒｏｃｅｓｓｏｒ＿ｎａｍｅインターフェースを呼び出し、現在のＭＰＩアプリケーションの前記ノード下における名称を取得し、後続データの処理および通信の使用に用いる。
【００６２】
ＭＰＩ＿Ｃｏｍｍ＿ｓｉｚｅインターフェースを呼び出し、特定通信エリアに備えるプロセス総数を取得し、後続処理データ時の使用を容易にする。
【００６３】
ＭＰＩ＿Ｃｏｍｍ＿ｒａｎｋを呼び出し、現在のプロセスの特定通信エリアにおけるプロセスＩＤを取得し、通信エリア内の全プロセスは唯一無二のＩＤを１つ有し、前記ＩＤは、他のプロセスを区別する。ＩＤは、ＭＰＩコンポーネントにより内容割り当てとメンテナンスを行い、データ通信時はデータフローの目的地を特定できる。
【００６４】
アプリケーション中のデータはＰ２Ｐ通信を使用しており、ＭＰＩ＿Ｓｅｎｄ／  ＭＰＩ＿Ｂｓｅｎｄ／  ＭＰＩ＿Ｓｓｅｎｄ／ＭＰＩ＿Ｉｓｅｎｄ／ＭＰＩ＿Ｉｂｓｅｎｄ／ＭＰＩ＿Ｉｓｓｅｎｄインターフェースを使用して、特定のデータを指定のプロセス［１つのノードは複数プロセスを動作でき、Ｐ２Ｐ通信は一般的に２プロセス間の通信を指し、２ノード間の通信ではない。互いの通信における２つのプロセスはノード上に位置でき、異なるノード上にも位置できる］まで送信できる。同時に、ＭＰＩ＿Ｒｅｃｖ／ＭＰＩ＿Ｉｒｅｃｖインターフェースを使用して、指定プロセスから送信したデータを受信し、データタイプおよびデータ量はアプリケーションを編集する者により確認できる。
【００６５】
もしアプリケーション中のデータを特定通信グループ内にてブロードキャストしなければならない場合、ＭＰＩ＿Ｂｃａｓｔインターフェースを使用して、メッセージを自身を含めてグループ内の全プロセスまでブロードキャストして送信できる。
【００６６】
もしアプリケーションが各プロセスの計算結果をｒｏｏｔプロセスまで総括しなければならない場合、ＭＰＩ＿Ｒｅｄｕｃｅインターフェースを使用して、グループ内の各プロセスの計算結果をＩＤがｒｏｏｔであるプロセスまで返し、前記プロセスにより統一して総括できる。
【００６７】
もしアプリケーションを遠隔メモリー機能にまで使用しなければならない場合、ＭＰＩ＿Ｗｉｎ＿ｃｒｅａｔｅインターフェースを呼び出し、ウィンドウを作成し、他のプロセスアクセスに用いる。つまり、ｓｅｒｖｅｒセクションにキャッシュメモリを設置し、他のプロセスの使用に用いることと同等である。他のプロセスは、ＭＰＩ＿Ｗｉｎ＿ｌｏｃｋ／ＭＰＩ＿Ｗｉｎ＿ｕｎｌｏｃｋインターフェースを呼び出すことができ、アクセスされた作成に対してロックとアンロックを行い、ＭＰＩ＿Ｐｕｔを呼び出し、データをｓｅｒｖｅｒ上までプッシュし、ＭＰＩ＿Ｇｅｔを呼び出し、ｓｅｒｖｅｒ上からデータを取得する。
【００６８】
もしアプリケーションがパラレルＩＯ操作を使用しなければならない場合、ＭＰＩベースが提供したＩＯ操作インターフェースを使用できる。例えば、ＭＰＩ＿Ｆｉｌｅ＿ｏｐｅｎ：パラレルＩＯファイルを開く、ＭＰＩ＿Ｆｉｌｅ＿ｗｒｉｔｅ＿ｓｈａｒｅｄ：共有ファイルに写入データを書き込む。ＭＰＩ＿Ｆｉｌｅ＿ｇｅｔ＿ｓｉｚｅ：ファイルサイズを取得する。ＭＰＩ＿Ｆｉｌｅ＿ｒｅａｄ＿ｓｈａｒｅｄ：共有ファイルからデータを読み込む。ＭＰＩ＿Ｆｉｌｅ＿ｃｌｏｓｅ：共有ファイルを閉じる。
【００６９】
全アプリケーション動作が終了する時、ＭＰＩ＿Ｆｉｎａｌｉｚｅインターフェースを呼び出さなければならない。前記インターフェースは主にＭＰＩ基礎機能ライブラリにリソース回収を通知し、通信エリアおよび全ノードの初期化状態を再度設定し、後続アプリケーションの再起動に用いる。
【００７０】
ＭＰＩアプリケーション工程をコンパイルし、対応する実行可能二ファイルを生産する。
【００７１】
コンパイルして生成した実行可能二進法ファイルを各ノードに対応する位置［ノード数量は実際のニーズに応じて確認し、アプリケーションの二進法ファイルはノード下にて全て必ず同じディレクトリーに位置しなければならない。例：全ての二進法アプリケーションファイルは／ａｈｃｉ０２１／ｍｐｉディレクトリー下に置く］に配置する。
【００７２】
ｒｏｏｔノード上にてｍｐｉｅｘｅｃ．ｖｘｅファイルを使用し、各ノードの二進法ファイル［いずれかのノード上でｍｐｉｅｘｅｃ．ｖｘｅファイルを動作すれば、そのノードがｒｏｏｔノードとなる。アプリケーションは、各ノードに置いた具体的位置はパラメーターを介してｍｐｉｅｘｅｃ．ｖｘｅへ伝達しなければならず、各ノード上にてｍｐｉアプリケーションを実行するのにいくつのプロセスが必要であるかもパラメーターを介してｍｐｉｅｘｅｃ．ｖｘｅへ伝達する］を起動する。
【００７３】
ＭＰＩアプリケーション動作結果を見て、想定と一致しているか否かを確認する。
【００７４】
図４は、本発明の実施形態２に係る組み込み型オペレーティングシステムに基づくＭＰＩ実現方法であり、通信システムに応用する。前記通信システムは、アプリケーション層、ＭＰＩ層およびオペレーティングシステム層を含む。前記アプリケーション層のＭＰＩアプリケーションプログラムは、１つまたは複数のＭＰＩノードのアプリケーションプログラムに割り当てられている。前記ＭＰＩ層は、プロセス処理モジュール、基礎機能ライブラリおよび前記ＭＰＩアプリケーションプログラムの呼び出しに用いるＭＰＩ  ＡＰＩインターフェースを含み、前記方法は、以下のＳ４０１とＳ４０２を含む。
【００７５】
Ｓ４０１では、前記プロセス処理モジュールは、ユーザーが前記ＭＰＩアプリケーションプログラムを呼び出す指令を受信する。
【００７６】
Ｓ４０２では、前記プロセス処理は、前記指令に基づき、前記アプリケーションプログラムを起動し、前記基礎機能ライブラリを介して、前記オペレーティングシステム層の組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、前記１つまたは複数のＭＰＩノード実行を制御し、各ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【００７７】
ここで、前記プロセス処理モジュールは具体的に、
前記１つまたは複数のＭＰＩノードにおいて動作する各々ＭＰＩノード上のプロセススターター、サーバ、サブプロセススターターおよびプロセスマネージャーを含む。
【００７８】
図２は、アプリケーションプログラム、ＭＰＩおよび組み込み型リアルタイムオペレーティングシステムが全ての計算システムアーキテクチャに位置する階層構造のブロック図である。ここで、ＭＰＩ層におけるＭＰＩ  ＡＰＩインターフェースとプロセス処理モジュールにおけるプロセススターター、サーバ、サブプロセススターターおよびプロセスマネージャーの主な作用は以下の通りである。
【００７９】
ＭＰＩサーバ（ｐｅｒｓｉｓｔ＿ｓｅｒｖｅｒ）：プロセスに常駐し、プロセススターター（ｍｐｉｅｘｅｃ）が送信したサービスリクエストをモニタリングする。
【００８０】
プロセススターター（ｍｐｉｅｘｅｃ）：全ＭＰＩアプリケーションの開始者であり、タスク動作パラメーターを伝達する。
【００８１】
プロセスマネージャー（ｈｙｄｒａ＿ｐｍｉ＿ｐｒｏｘｙ）：全ＭＰＩアプリケーションタスクのモニタリングと管理を担当する。
【００８２】
基礎機能ライブラリ（ｌｉｂｍｐｉ）：ＭＰＩ全ての内部の通信メカニズムおよび動作状態メンテナンスの具体的な実現形態を保存しており、他の全てのアプリケーションは前記ライブラリに依存している。
【００８３】
ＭＰＩ  ＡＰＩインターフェース：ＭＰＩ３．０標準が定義したインターフェース定義を提供し、ＭＰＩアプリケーション使用に用いる。
【００８４】
サブプロセススターター（ｐｅｒｓｉｓｔ＿ｓｅｒｖｅｒ＿ｓｌａｖｅｒ）：プロセスマネージャーの呼び出しを担当し、プロセスマネージャーが正常に起動した後、本体は姿を隠してログオフする。
【００８５】
ここで、前記ステップＳ４０２は具体的に、
１つまたは複数のＭＰＩノード中のいずれか１つのノードにおけるプロセススターターは、受信したユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令に基づき、前記各ＭＰＩノードのサーバへサービス接続リクエストを送信し、前記ＭＰＩ各ノード上のサーバ間との通信接続を確立するステップを含む。具体的に、前記各ＭＰＩノード上のプロセスマネージャーは、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを起動し、前記基礎機能ライブラリを介して、オペレーティングシステム層組み込み型リアルタイムオペレーティングシステムのサービス機能を呼び出し、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了する。
【００８６】
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出し、
前記各ＭＰＩノード上のサブプロセススターターは、対応するノード上のプロセスマネージャーを呼び出す。
【００８７】
具体的に、各ＭＰＩアプリケーションの動作は全て１つのノード上のプロセススターターから開始する。前記プロセススターターが動作後、まず各ノードにおいて動作しているＭＰＩサーバはｓｏｃｋｅｔ通信チャネルを確立し、プリケーションが動作するパラメーターをＭＰＩサーバにまで伝達し、続いて待機状態に変わり、全ノードアプリケーション実行が完了するのを待って、プロセススターターの呼び出しを終了する。
【００８８】
前記各ＭＰＩノード上のサーバは、受信した前記サービス接続リクエストに基づき、対応するノード上のサブプロセススターターを呼び出すステップは、
前記プロセススターターと前記ＭＰＩ各ノード上のサーバの間の通信接続が確立された後、受信した前記サービス接続リクエストに基づき、前記プロセススターターが送信した前記ＭＰＩアプリケーションプログラムのパラメーターを受信するステップと、
前記各ＭＰＩノード上のサーバは、前記ＭＰＩにおけるサブプロセススターターを呼び出し、前記ＭＰＩアプリケーションプログラムのパラメーターを自身に対応するサブプロセススターターまで送信するステップとを含む。
【００８９】
具体的に、ＭＰＩサーバは、組み込み型リアルタイムシステムの起動に伴い、自動的に動作する。ＭＰＩサーバはプログラムとして各ノード上において動作し、プロセススターターが開始したサービス接続リクエストをモニタリングする。
【００９０】
ＭＰＩサーバはプロセススターター接続リクエストを受信し、サブプロセススターターをローディングし、プロセススターターが送信したパラメーターを受信する。続いてモニタリングを継続して実行し、他の接続リクエストを受信する。
【００９１】
サブプロセススターターは、サブプロセスの作成を担当し、これの目的はプロセスマネージャーをローディングし、プロセスマネージャーのローディングに成功するとサブプロセススターターは身を隠してログオフする。
【００９２】
プロセスマネージャーはＭＰＩのコア部分であり、主にユーザーのａｐｐを起動し、各ａｐｐ間の通信チャネルおよび各ａｐｐの動作状態を管理する。前記ノード上の全ａｐｐ実行が完了するのを待って、プロセスマネージャーは自動的に終了し、終了メッセージをプロセススターターへ通知する。
【００９３】
ＭＰＩ  ＡＰＩはＭＰＩアプリケーションプログラム開発向け、ＭＰＩ標準に合致するインターフェース層であり、前記インターフェース層デルタシステムに基づき、システム操作上での基礎機能ライブラリのサービス機能を呼び出し、アプリケーション開発者は前記層が提供したインターフェースに基づき、複数システム間のＭＰＩアプリケーション移行および新ＭＰＩアプリケーションの開発を実現できる。
【００９４】
基礎機能ライブラリは、組み込み型オペレーティングシステム機能（例：ｐｏｓｉｘインターフェース、Ｉ／Ｏインターフェース、ｓｏｃｋｅｔインターフェース等）に基づき、カプセル化が実現したＭＰＩ基礎機能ライブラリであり、デルタシステムのような組み込み型リアルタイムオペレーティングシステムのＭＰＩコンポーネントのその他機能モジュールは全てこれの基礎能力ライブラリに基づき、相応のサービス機能を実現する。
【００９５】
前記各ＭＰＩノード上のプロセスマネージャーは、自身が位置するＭＰＩノード実行を制御し、自身のノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップは、
前記各ＭＰＩノード上のプロセスマネージャーは、自身が位置するＭＰＩノード上のサブタスクのプロセスを作成し、前記プロセスは前記組み込み型リアルタイムオペレーティングシステムのサービス機能を直接呼び出す。または前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出す。これにより、前記ノード上のＭＰＩアプリケーションプログラムに対応するサブタスクを完了するステップを含む。
【００９６】
前記ユーザーがアプリケーション層のＭＰＩアプリケーションプログラムを呼び出す指令を受信したプロセスマネージャーは、前記各ＭＰＩノード上のサブタスクの実行結果を総括し、前記ＭＰＩアプリケーションプログラムの動作結果を取得する。
【００９７】
前記プロセスは、ＭＰＩ  ＡＰＩインターフェースを介して、前記組み込み型リアルタイムオペレーティングシステム上の前記基礎機能ライブラリのサービス機能を呼び出すステップは、
前記プロセスは、１つまたは複数の、ＭＰＩ＿Ｓｅｎｄ、ＭＰＩ＿Ｂｓｅｎｄ、ＭＰＩ＿Ｓｓｅｎｄ、ＭＰＩ＿Ｉｓｅｎｄ、ＭＰＩ＿Ｉｂｓｅｎｄ、ＭＰＩ＿Ｉｓｓｅｎｄインターフェースを呼び出し、特定のデータを指定ノードまで送信する指定プロセスのプロセスを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現するステップ、または
前記プロセスは、ＭＰＩ＿Ｒｅｃｖを呼び出し、ＭＰＩ＿Ｉｒｅｃｖインターフェースにおける１つまたは複数の指定ＭＰＩノードの指定プロセスから受信したデータを呼び出すことにより、プロセス間のＰ２Ｐ通信を実現する；
前記プロセスは、ＭＰＩ＿Ｗｉｎ＿ｃｒｅａｔｅインターフェースを呼び出すことにより、遠隔メモリー機能を使用するステップ、または
前記プロセスがＭＰＩ＿Ｗｉｎ＿ｌｏｃｋ／ＭＰＩ＿Ｗｉｎ＿ｕｎｌｏｃｋインターフェースを呼び出すことにより、アクセスされた作成に対してロックとアンロックを行うステップ、または
前記プロセスがＭＰＩ＿Ｐｕｔを呼び出すことにより、データをサーバ上までプッシュするステップ、または
前記プロセスは、ＭＰＩ＿Ｇｅｔを呼び出すことにより、サーバ上からデータを取得するステップとを含む。
【００９８】
本実施形態においてＭＰＩアプリケーションプログラムの開発および動作フローおよび常用ＭＰＩアプリケーションの開発フローおよびステップは、実施形態１と同じであり、ここでは説明を繰り返さない。
【００９９】
本発明の実施形態３は、コンピュータ装置を提供しており、メモリー中に記憶したコンピュータプログラムを実行する時に実施形態１に示した前記方法のステップを実現する。
【０１００】
本発明の実施形態４はコンピュータ読み取り可能な記録媒体を提供しており、前記コンピュータ読み取り可能な記録媒体記憶コンピュータ指令を有し、前記指令がコンピュータ上で動作する時に、コンピュータに実施形態１に示した前記方法を実行させる。
【０１０１】
前記本発明の実施形態における技術案は、少なくとも具有以下の技術効果または利点を有する。
【０１０２】
組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法を提供することにより、規模が大きく、演算が複雑な計算で、特定のアルゴリズムに従い、計算プロセスを多段階化し、規模が大きく、演算が複雑な計算で、特定のアルゴリズムに従い、計算プロセスを多段階化し、ＭＰＩによりこの中の１段または複数段を複数ＭＰＩ動作ノード（各ノードは１つの独立コンピュータと言える）まで分配し、単独で計算し、計算結果をＭＰＩが統一して提示できる。分配と結果の総括はＭＰＩが自動で完了し、人が関与する必要は無い。従来技術と比べて、組み込み型オペレーティングシステムに基づくＭＰＩ実現システムおよび方法はコンピュータのプロセッサのハードウェアに対する要求を下げ、マルチスレッド同時処理を支援し、アプリケーションプログラムの動作速度を高め、拡張性に優れている。
【０１０３】
本発明の好ましい実施形態を詳しく解説したが、当業者により、基本的な創造性を理解した上での前記した技術的な解決手段の改造、またはその中の一部の技術要素を置換することもできる。そのような改造と置換は本発明の各実施例の技術の範囲から逸脱するとは見なされない。
【０１０４】
無論、本分野の技術者は本発明の精神と範囲を逸脱せずに本発明に対する種々の変更と変形を行うことができる。このようにして、本発明のこれらの修正と変形は本発明の権利請求および同等の技術範囲内に属するものであり、本発明はこれらの変更と変形を含むことを意図する。
【図１】
2019071037.tif 000003
【図２】
2019071037.tif 000004
【図３】
2019071037.tif 000005
【図４】
2019071037.tif 000006