TOP > 国内特許検索 > 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、および、プログラムを記録した記録媒体

演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、および、プログラムを記録した記録媒体 コモンズ

国内特許コード P110003942
整理番号 A281P12
掲載日 2011年7月4日
出願番号 特願2006-544976
登録番号 特許第4444293号
出願日 平成17年11月11日(2005.11.11)
登録日 平成22年1月22日(2010.1.22)
国際出願番号 JP2005020716
国際公開番号 WO2006051902
国際出願日 平成17年11月11日(2005.11.11)
国際公開日 平成18年5月18日(2006.5.18)
優先権データ
  • 特願2004-328157 (2004.11.11) JP
発明者
  • 長谷川 秀彦
出願人
  • 国立研究開発法人科学技術振興機構
発明の名称 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、および、プログラムを記録した記録媒体 コモンズ
発明の概要 数値データ転送部(22A)が、演算の入力値としての数値データおよびそのデータ形式を、ユーザプログラムシステム(2)からライブラリプログラムシステム(3)へ転送し、名前をつけて登録・管理する。また、演算依頼部(22B)が、演算内容の情報をユーザプログラムシステムからライブラリプログラムシステムへ転送する。ライブラリプログラムシステムにおいて、演算方法決定部(41B)は、受信した演算内容の情報に基づいて、利用するライブラリプログラムの種類、およびその実行順序を決定する。そして、ユーザの要求に応じて、実行結果が演算結果送信部(41C)によってライブラリプログラムシステムからユーザプログラムシステムへ転送される。これにより、ユーザプログラムのユーザが、ライブラリプログラムシステムにおける具体的な処理を意識することなく、より容易にライブラリプログラムを利用することを可能とする。
従来技術、競合技術の概要

従来、科学技術計算等の複雑かつ膨大な演算を行う場合などに、汎用の数値計算ライブラリの利用が広く行われている。汎用の数値計算ライブラリとは、例えば連立一次方程式を解く、行列の固有値を求める、スプライン補間する、微分方程式を解くなど、数値計算法のサブルーチン集のことである。


数値計算ライブラリを利用した演算は、基本的には、ユーザが生成し、利用するユーザプログラムが実行されるユーザプログラムシステムと、ライブラリプログラムが実行されるライブラリプログラムシステムとからなる演算処理システムによって実現される。ユーザは、ユーザプログラム中に、ライブラリプログラムの実行に関する命令を含めることにより、ライブラリプログラムを利用することになる。


以上のように、数値計算ライブラリを利用することによって、ユーザは、複雑な数値解析プログラムを自分で作成する必要がなくなる。よって、科学技術計算を行う上でのユーザのプログラミングの負担を軽減することができる。


従来の演算処理システムを用いて、例えば連立1次方程式Ax=bを解く場合には、ユーザプログラムは次のような命令列となる。
REAL*8A(LDA,N),B(N)
(データ生成)
計算:ライブラリコール
CALL LU(LDA,N,A,IERR)
CALL SOLVE(LDA,N,A,B,IERR)
(結果の利用)
END
ここで、Aは2次元配列Aに格納された行列であり、bは1次元配列Bに格納されたベクトルであるものとしている。


上記のように、ユーザプログラムは、ライブラリプログラムの実行命令ごとにデータを指定するようになっている。すなわち、ライブラリプログラムの選択、使用する順番、データ形式の選択、および中間結果などのデータの管理のすべてについてユーザプログラムが責任を負わなければならない。


また、ライブラリプログラムシステムにおけるライブラリプログラムが改良されたり新たに追加されたりした場合、ユーザプログラムのユーザは、これを考慮して、ユーザプログラムの内容を変更する必要が生じる。


また、ライブラリプログラムの実行命令には、データの形式についての指定も含まれているので、入力値を変更したい場合には、入力値を変更するだけでなく、データの形式に応じて実行命令自体も変更する必要が生じる。


ここで、特許文献1(特開平9-128352号公報;公開日:1997年5月16日)には、「並列計算機上でユーザプログラムを一台の親プロセッサで実行し、ライブラリルーチン内部のみを複数の子プロセッサで実行する際に、子プロセッサは、最初に一回だけ起動して無限ループで待たせておき、ライブラリコール時に親プロセッサから通信で指令と実行に必要なデータを送って並列実行を行わせた後、再び実行前と同じ状態、すなわち,無限ループで親プロセッサからの通信待ち状態にする」構成が記載されている。これにより、ライブラリが複数回コールされる場合に子プロセッサ起動のオーバーヘッドが削減でき,並列計算機上でのライブラリコールを高速化できる。


また、特許文献2(特開平11-039271号公報;公開日:1999年2月12日)には、「ユーザが解こうとするデータのサイズに応じて、ライブラリに格納されたサブルーチンの中から最適なサブルーチンを選択して割り当てる」構成が記載されている。


さらに、非特許文献1(GridRPC Tutorial;http://ninf.apgrid.org/papers/gridrpc_tutorial/gridrpc_tutorial_e.html)および2(OmniRPC:a Grid RPC system for Parallel Programming;http://www.omni.hpcc.jp/OmniRPC/index.html.ja)には、グリッドRPC(Remote Procedure Call)システムが記載されている。


また、特許文献3(特開2000-231478号公報;公開日:2000年8月22日)には、「基本となるデータ処理を表す計算式や、当該計算式に必要なデータの抽出元と計算結果の移行先、および上記データの処理条件に関する各種仕様情報を定義するための仕様情報定義部と、定義された仕様情報に基づいて、抽出元からデータを取り込んで計算を行い、その結果を移行先に移行することを実現するためのプログラムを生成するプログラム生成部とを設け、元の基本的な計算式を含む仕様情報を要求に合わせて表形式で定義するだけで、その仕様情報に従ったデータ処理を実現するためのプログラムを自動的に生成することができるようにした」構成が記載されている。


さらに、特許文献4(特開2002-073578号公報;公開日:2002年3月12日)には、「クライアントコンピュータから発行されたリクエストを中継するプロクシコンピュータを備え、該プロクシコンピュータ内には、クライアントコンピュータから発行されたリクエストの種類と転送すべきサーバオブジェクトの対応関係を予め定義した転送先リストと、クライアントコンピュータから発行されたリクエストの種類に応じて前記転送先リストに示されたサーバオブジェクトに対しリクエストを転送するリクエスト転送手段と、サーバオブジェクトから返送された結果を元のクライアントコンピュータに転送する結果転送手段とを備える」構成が記載されている。また、特許文献5(特開2004-102507号公報;公開日:2004年4月2日)に記載のシステムでは、通信モジュールの受付部が第1のオブジェクトから第2のオブジェクトへの通信要求及び送信データを受け付けると、通信決定部は、ネットワーク装置への問い合わせを行い、ネットワーク装置から第2のオブジェクトに対応する通信プロトコル及びアドレス情報を受け取り、これを使用するものと決定している。さらに、通信部は、上記通信決定部で決定した通信プロトコル及びアドレス情報に従い、送信データを送信する。これによって、第1および第2のオブジェクトの間のオブジェクト間通信を実現している。

産業上の利用分野

本発明は、ユーザプログラムを実行するユーザプログラムシステムと、上記ユーザプログラムにおいて利用されるライブラリプログラムを実行するライブラリプログラムシステムとを備えた演算処理システムに関するものである。

特許請求の範囲 【請求項1】
ユーザプログラムを実行するユーザプログラムシステムと、上記ユーザプログラムにおいて利用されるライブラリプログラムを実行するライブラリプログラムシステムとを備えた演算処理システムにおける演算処理方法において、
上記ユーザプログラムシステムが、上記ライブラリプログラムシステムに、演算処理の対象となる処理対象データを転送する第1転送ステップと、
上記ユーザプログラムシステムが、上記ライブラリプログラムシステムから上記処理対象データを演算処理した結果を示す処理結果データを受け取る第2転送ステップと、
上記第1および第2転送ステップの間に、これらのステップとは独立して実施される演算指示ステップおよび演算処理ステップとを含み、
上記演算指示ステップでは、上記ユーザプログラムシステムが、上記演算処理の内容を、上記第1および第2転送ステップを実施するためのプログラムを記述したプログラム言語と、上記ライブラリプログラムを記述したプログラム言語とのいずれからも独立した文法で記述された文字列によって、上記ライブラリプログラムシステムへ指示すると共に、
上記演算処理ステップでは、上記ライブラリプログラムシステムが、上記文字列を解析して、上記演算処理の際に利用するライブラリプログラムの種類、および、その実行順序を決定すると共に、当該決定されたライブラリプログラムを、上記決定された実行順序にて実行することによって、上記処理対象データを演算処理することを特徴とする演算処理方法。

【請求項2】
ユーザプログラムを実行するユーザプログラムシステムと、上記ユーザプログラムにおいて利用されるライブラリプログラムを実行するライブラリプログラムシステムとを備えた演算処理システムにおいて、
上記ユーザプログラムシステムには、上記ライブラリプログラムシステムに、演算処理の対象となる処理対象データを転送する第1転送手段と、上記ライブラリプログラムシステムから上記処理対象データを演算処理した結果を示す処理結果データを受け取る第2転送手段と、当該処理対象データおよび処理結果データの転送とは独立して、上記演算処理の内容を、上記処理対象データおよび処理結果データの転送処理を実施するためのプログラムを記述したプログラム言語と、上記ライブラリプログラムを記述したプログラム言語とのいずれからも独立した文法で記述された文字列により上記ライブラリプログラムシステムへ指示する演算依頼手段とが設けられ、
上記ライブラリプログラムシステムには、上記文字列を解析して、上記演算処理の際に利用するライブラリプログラムの種類、および、その実行順序を決定すると共に、当該決定されたライブラリプログラムを、上記決定された実行順序にて実行することによって、上記処理対象データを演算処理する演算処理手段が設けられていることを特徴とする演算処理システム。

【請求項3】
ユーザプログラムを実行するユーザプログラムシステムと、上記ユーザプログラムにおいて利用されるライブラリプログラムを実行するライブラリプログラムシステムとを備えた演算処理システムにおいて、
上記ユーザプログラムシステムが、
上記ライブラリプログラムシステムに演算を行わせる処理が上記ユーザプログラムによって行われる際に、演算の入力値に関する入力値情報を上記ライブラリプログラムシステムに転送する処理を行う入力値転送手段と、
上記ライブラリプログラムシステムにおいて演算処理を行わせる演算内容の情報としての演算依頼情報を該ライブラリプログラムシステムに転送する処理を行う演算依頼手段と、
上記ライブラリプログラムシステムにおけるライブラリプログラムの実行結果を該ライブラリプログラムシステムから受信する処理を行う演算結果受信手段とを備え、
上記ライブラリプログラムシステムが、
上記ユーザプログラムシステムから、ライブラリプログラムの実行時に用いられる演算の入力値に関する入力値情報を受信する処理を行う入力値受信手段と、
上記ユーザプログラムシステムから送られてきた演算依頼情報を解析することによって、利用するライブラリプログラムの種類、およびその実行順序を決定する処理を行う演算方法決定手段と、
ライブラリプログラムの実行結果を上記ユーザプログラムシステムへ送信する処理を行う演算結果送信手段とを備え
上記演算依頼情報が、上記入力値情報およびライブラリプログラムの実行結果の転送処理を実施するためのプログラムを記述したプログラム言語と、上記ライブラリプログラムを記述したプログラム言語とのいずれからも独立した文法で記述された文字列であることを特徴とする演算処理システム。

【請求項4】
上記入力値転送手段が、上記入力値情報として、数値データおよびそのデータ形式を転送することを特徴とする請求項3記載の演算処理システム。

【請求項5】
上記入力値受信手段が、受信した入力値情報を記憶部に格納するとともに、
上記演算方法決定手段が、ライブラリプログラムの実行の際に、上記記憶部に格納されているどの入力値情報を用いるかを決定することを特徴とする請求項3記載の演算処理システム。

【請求項6】
上記演算依頼手段が、演算内容の情報として、数学の演算式そのものを表す文字列を転送することを特徴とする請求項3記載の演算処理システム。

【請求項7】
上記ユーザプログラムシステム、および上記ライブラリプログラムシステムが、同一のコンピュータにおいて動作することを特徴とする請求項2または3記載の演算処理システム。

【請求項8】
上記ユーザプログラムシステムが第1のコンピュータにおいて動作するとともに、上記ライブラリプログラムシステムが、上記第1のコンピュータと通信接続された別のコンピュータにおいて動作することを特徴とする請求項2または3記載の演算処理システム。

【請求項9】
上記ライブラリプログラムシステムが動作するコンピュータが複数存在することを特徴とする請求項8記載の演算処理システム。

【請求項10】
上記ユーザプログラムシステムが第1のコンピュータにおいて動作するとともに、上記ライブラリプログラムシステムが、上記第1のコンピュータと通信接続された別の複数のコンピュータにおいて動作し、
上記入力値転送手段および上記演算依頼手段が、上記入力値情報および上記演算内容の情報を、ライブラリプログラムシステムが動作する1つのコンピュータに対して転送するとともに、
上記入力値情報および上記演算内容の情報を受信したライブラリプログラムシステムにおける上記演算方法決定手段が、演算処理の分担を決定し、他のコンピュータにおける分担分の処理内容を転送する処理を行うことを特徴とする請求項3記載の演算処理システム。

【請求項11】
上記ユーザプログラムシステムが第1のコンピュータにおいて動作するとともに、上記ライブラリプログラムシステムが、上記第1のコンピュータと通信接続された別の複数のコンピュータにおいて動作し、
上記入力値転送手段および上記演算依頼手段が、上記入力値情報および上記演算内容の情報を、ライブラリプログラムシステムが動作する1つのコンピュータに対して転送し、
上記入力値情報および上記演算内容の情報を受信したライブラリプログラムシステムにおける上記演算方法決定手段が、演算処理の分担を決定し、この分担方法の結果をユーザプログラムシステムに送信し、
上記演算依頼手段が、受信した分担方法の結果に基づいて、各コンピュータに対して演算依頼情報を転送するとともに、上記入力値転送手段が、上記演算の分担方法に基づいて各コンピュータに対して入力値情報を転送することを特徴とする請求項3記載の演算処理システム。

【請求項12】
ユーザプログラムを実行するユーザプログラムシステムと、上記ユーザプログラムにおいて利用されるライブラリプログラムを実行するライブラリプログラムシステムとを備えた演算処理システムにおける演算処理方法において、
上記ユーザプログラムシステムにおける、
上記ライブラリプログラムシステムに演算を行わせる処理が上記ユーザプログラムによって行われる際に、演算の入力値に関する入力値情報を上記ライブラリプログラムシステムに転送する処理を行う入力値転送ステップと、
上記ライブラリプログラムシステムにおいて演算処理を行わせる演算内容の情報としての演算依頼情報を該ライブラリプログラムシステムに転送する処理を行う演算依頼ステップと、
上記ライブラリプログラムシステムにおけるライブラリプログラムの実行結果を該ライブラリプログラムシステムから受信する処理を行う演算結果受信ステップと、
上記ライブラリプログラムシステムにおける、
上記ユーザプログラムシステムから、ライブラリプログラムの実行時に用いられる演算の入力値に関する入力値情報を受信する処理を行う数値データ受信ステップと、
上記ユーザプログラムシステムから送られてきた演算依頼情報を解析することによって、利用するライブラリプログラムの種類、およびその実行順序を決定する処理を行う演算方法決定ステップと、
ライブラリプログラムの実行結果を上記ユーザプログラムシステムへ送信する処理を行う演算結果送信ステップとを有し
上記演算依頼情報が、上記入力値情報およびライブラリプログラムの実行結果の転送処理を実施するためのプログラムを記述したプログラム言語と、上記ライブラリプログラムを記述したプログラム言語とのいずれからも独立した文法で記述された文字列であることを特徴とする演算処理方法。

【請求項13】
請求項2または3記載の演算処理システムが備えるユーザプログラムシステム。

【請求項14】
請求項2または3記載の演算処理システムが備えるライブラリプログラムシステム。

【請求項15】
請求項13記載のユーザプログラムシステムが備える各手段が有する機能をコンピュータに実行させることを特徴とするコンピュータ読み取り可能なプログラム。

【請求項16】
請求項15記載のプログラムを記録した記録媒体。

【請求項17】
請求項14記載のライブラリプログラムシステムが備える各手段が有する機能をコンピュータに実行させることを特徴とするコンピュータ読み取り可能なプログラム。

【請求項18】
請求項17記載のプログラムを記録した記録媒体。
国際特許分類(IPC)
出願権利状態 登録
参考情報 (研究プロジェクト等) CREST シミュレーション技術の革新と実用化基盤の構築(CRESTプログラム、さきがけプログラムの混合型領域) 領域
ライセンスをご希望の方、特許の内容に興味を持たれた方は、問合せボタンを押してください。


PAGE TOP

close
close
close
close
close
close
close