説明

粒子挙動解析装置、プログラム

【課題】力分割法を適用した粒子挙動解析において、計算効率の低下を防止する。
【解決手段】力マトリックスに割り当てられた粒子に関して、カットオフ距離を設定した処理を行なうように対処する。カットオフ領域内の粒子を確実に含む最小の力マトリクスに短縮したとき、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量がキャッシュメモリ容量に収まるようにカットオフ距離を調整する。設定したカットオフ領域内の粒子に着目して、代用粒子IDを利用して、元の力マトリクスを、カットオフ領域内の粒子を確実に含むような力マトリクスに短縮する。カットオフ領域内の解析対象の実際の粒子IDと、短縮した力マトリクスにおける代用粒子IDとの対応関係を管理する。カットオフ領域内の解析対象の実際の粒子と短縮した力マトリクスにおける粒子との対応関係を参照して、短縮された力マトリクスで示される計算対象の相互作用力を求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、粒子挙動解析装置並びにプログラムに関する。より詳細には、たとえば、プリンタ装置、ファクシミリ装置、あるいはそれらの機能を有する複合機などの画像形成装置において使用される色材(粉体、現像剤)などにおける、複数の粒子が混合された状態での粒子の挙動をシミュレーションにより解析する仕組みに関する。
【背景技術】
【0002】
たとえば、プリンタ装置、ファクシミリ装置、あるいはそれらの機能を有する複合機などの画像形成装置において、電子写真方式を利用する場合、一般的には、感光ドラムなどの光導電性絶縁体上に一様な静電荷を与え、様々な手段によりこの光導電性絶縁体上に光像を照射することによって静電潜像を形成し、次いで、形成した潜像を現像器を用いて磁性粉体を用いて現像可視化し、紙などの記録媒体にトナー粉像を転写した後に定着させ、印刷物を得る。
【0003】
このような電子写真法による画像形成装置においては、容器に収容されている磁性粉体の攪拌や磁性ローラへの搬送、磁性ローラへの吸着、記録画像に応じて帯電され潜像が形成されている感光体への飛翔などの振る舞いが記録画像の画質に影響を与える。そこで、この磁性粉体の挙動の解析が電子写真装置本体や現像装置の開発にとって重要となる。
【0004】
粉体や粒体などの粒子の挙動シミュレーションについては、個別要素法あるいは離散粒子法と呼ばれる方法が普及されている。しかしながら、個別要素法に基づいた粒子挙動計算アルゴリズムでは、概ね粒子数の2乗で解析負荷が増大するので、粒子数が多くなると、計算量が膨大になり、いくら計算機の性能が向上したとはいっても、実際の系と同等の粒子数での計算を実行することは困難な場合が多い。
【0005】
そこで、従来の粒子挙動シミュレーション方法として、計算時間の短縮を目的として、プログラムがインストールされた電子計算機を複数台使用し、各プログラムの並列化動作による分散処理が提案されている(たとえば特許文献1を参照)。
【0006】
【特許文献1】特開2005−309605号公報
【0007】
特許文献1に記載の仕組みでは、効率的な多体問題演算システムを構築するべく、対となる2個の粒子の種類により特定される相互作用パラメータデータを記憶する相互作用パラメータデータ記憶装置と、相互作用パラメータデータ記憶装置から読み出した相互作用パラメータデータを用いて注目する粒子について他の複数の粒子との間の相互作用を演算する粒子間相互作用演算装置とでシステムを構成している。
【0008】
そして、粒子間相互作用演算装置に関しては、さらに、相互作用パラメータデータ記憶装置に記憶された相互作用パラメータデータの一部を読み出す相互作用パラメータデータ読出手段と、相互作用パラメータデータ読出手段により読み出された相互作用パラメータデータを記憶する相互作用パラメータデータ記憶手段と、相互作用パラメータデータ記憶手段に記憶された相互作用パラメータデータを用いて注目する粒子について他の複数の粒子との間の相互作用を演算する相互作用演算手段で構成するようにしている。
【0009】
粒子間相互作用演算装置では、その外部にある相互作用パラメータデータ記憶装置から相互作用パラメータデータの一部を読み出して内部の相互作用パラメータデータ記憶手段に記憶し、記憶した相互作用パラメータデータを用いて演算を行なう。これにより、外部の相互作用パラメータデータ記憶装置にその都度アクセスする場合や、相互作用パラメータデータの全てを内部に保持するような場合と比べて、粒子間相互作用の計算において効率化を図るようにしている。
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は、複数の電子計算機を並列に稼働させて粒子挙動解析を行なう場合において、計算効率の低下を防止することのできる仕組みを提供することを目的とする。
【課題を解決するための手段】
【0011】
請求項1に記載の発明である粒子挙動解析装置は、粒子を力マトリクスを使用した力分割法により分割し、それぞれの分割部分を各計算装置に割り当てる分割処理部と、外部記憶装置よりも高速なアクセスが可能な、データ処理部での処理過程で使用されるデータを記憶する一時記憶部と、力分割法により割り当てられた分割部分についてカットオフ距離を設定した処理を行なうように対処するとともに、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量が、一時記憶部の記憶容量に収まるようにカットオフ距離を調整するカットオフ領域設定部とを備えた。
【0012】
さらに、カットオフ領域設定部が設定するカットオフ領域内の粒子に関して、分割部分についての元の力マトリクスを、カットオフ領域内の粒子を含むような力マトリクスに短縮する力マトリクス短縮部と、カットオフ領域内の解析対象の実際の粒子と力マトリクス短縮部が短縮した力マトリクスにおける粒子とを対応付ける相関管理部と、他の計算装置との間でデータ通信を行ないつつ、相関管理部により対応付けられているカットオフ領域内の解析対象の実際の粒子と力マトリクス短縮部が短縮した力マトリクスにおける粒子との対応関係を参照して、力マトリクス短縮部により短縮された力マトリクスで示される計算対象の相互作用力を求める相互作用演算部とを備えた。
【0013】
請求項2に記載の発明は、請求項1に記載の発明においてさらに、力マトリクス短縮部は、カットオフ領域設定部が設定するカットオフ領域内の粒子を確実に含む最小の矩形の力マトリクスに短縮することを特徴とする。
【0014】
請求項3に記載の発明である粒子挙動解析用のプログラムは、電子計算機に備えられる中央演算制御部を、次の各機能部として機能させることを特徴とする。先ず、粒子を力マトリクスを使用した力分割法により分割し、それぞれの分割部分を各計算装置に割り当てる分割処理部と、力分割法により割り当てられた記分割部分についてカットオフ距離を設定した処理を行なうように対処するとともに、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量が、外部記憶装置よりも高速なアクセスが可能な、データ処理部での処理過程で使用されるデータを記憶する一時記憶部の記憶容量に収まるようにカットオフ距離を調整するカットオフ領域設定部として機能させる。
【0015】
また、カットオフ領域設定部が設定するカットオフ領域内の粒子に関して、分割部分についての元の力マトリクスを、カットオフ領域内の粒子を含むような力マトリクスに短縮する力マトリクス短縮部と、カットオフ領域内の解析対象の実際の粒子と力マトリクス短縮部が短縮した力マトリクスにおける粒子とを対応付ける相関管理部と、他の計算装置との間でデータ通信を行ないつつ、相関管理部により対応付けられているカットオフ領域内の解析対象の実際の粒子と力マトリクス短縮部が短縮した力マトリクスにおける粒子との対応関係を参照して、力マトリクス短縮部により短縮された力マトリクスで示される計算対象の相互作用力を求める相互作用演算部として機能させる。
【発明の効果】
【0016】
請求項1に記載の発明によれば、一時記憶部の使用量が抑制され、高速アクセス可能な一時記憶部を効率的に利用した計算処理が実現できる。外部の記憶装置よりも内部の一時記憶部を効率的に使用した計算処理が実現されるので、計算速度の高速化を図ることができる。
【0017】
請求項2に記載の発明によれば、矩形の力マトリクス内の全てを処理対象とした効率的な処理ができる。
【0018】
請求項3に記載の発明によれば、一時記憶部の使用量が抑制され、高速アクセス可能な一時記憶部を利用して効率的に計算処理を行なう仕組みを、コンピュータを用いて実現できる。
【発明を実施するための最良の形態】
【0019】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【0020】
<現像装置の概要>
図1は、印刷装置(プリンタ)や複写装置(コピー機)などの画像形成装置に使用される現像装置100の一構成例を示す図である。
【0021】
図1(A)に示すように、現像装置100は、感光体130に対向して配置されており、現像剤102を収納容器101の内部に充填している。収納容器101は、現像剤102を感光体130側に飛翔させるための開口部101aが形成されている。
【0022】
現像剤102は、図1(B)に示すように、それぞれ物性や粒径の異なるキャリア粒子102aとトナー粒子102b(たとえば黒色トナー粒子)とを含有して構成された2成分方式のものである。キャリア粒子102aとトナー粒子102bとの対によって、全体として磁性粉体が形成されるようにしている。すなわち、キャリア粒子102aは磁性体から構成され、マグネットに吸着するようになっている。一方、トナー粒子102bは非磁性トナーであって、所定の色を持つ粉体である。一般的には、キャリア粒子102aの粒径の方がトナー粒子102bの粒径よりも大きい。なお、トナー粒子102bとしては、磁性トナーを使用することも可能である。
【0023】
収納容器101内には、表面に現像剤102を担持する担持ロールの一例である現像ロール(マグロール、マグネットローラ、磁気搬送ローラとも言われる)140を、周面が開口部101aから少し突き出すように備えている。現像ロール140内には、その内周縁に沿って、所定間隔で所定数のマグネット142が配置されている。
【0024】
また、現像装置100は、現像ロール140の近傍に、高さ規制部材や層形成部材として機能する規制ブレード(トリマーバー)150を備えており、マグネット142による磁力線に沿ってできた現像剤102の穂立ちの高さを規制するようになっている。
【0025】
また、収納容器101内には、現像剤102を攪拌するとともに現像ロール140側に搬送する1対の攪拌搬送ロール160(それぞれを160a,160bとする)を備えている。一方の攪拌搬送ロール160aは、収納容器101内の奥の方に配置され、他方の攪拌搬送ロール160bは現像ロール140と対向して配置されている。攪拌搬送ロール160は、その回転動作によって、現像剤102を現像ロール140側に攪拌しながら搬送する。
【0026】
現像ロール140は、矢印X方向に回転される感光体130とともに、感光体130と対向する側のその表面の回転移動方向が、感光体130の移動方向Xと同じき(矢印Y方向)に回転される。なお、感光体130の移動方向Xと逆向きに回転駆動するようにしてもよい。
【0027】
現像ロール140内にはマグネット142を内蔵している。現像ロール140は、現像剤102を攪拌搬送ロール160bから磁気力により吸着する。現像ロール140に吸着された現像剤102は、規制ブレード150により現像剤102の吸着量が規制される。すなわち、キャリア粒子102aおよびトナー粒子102bは、攪拌機能を持つ攪拌搬送ロール160により攪拌され摩擦帯電されつつ現像ロール140側に搬送され、規制ブレード150によって一定の高さで、現像ロール140の周縁に付着する。
【0028】
トナー粒子102bは、キャリア粒子102aに静電力により互いに吸着されている。キャリア粒子102aは、現像ロール140に内蔵されたマグネット142からの磁場により磁気ブラシを構成する。トナー粒子102bはキャリア粒子102aとともに、感光体130に対向する部分まで搬送される。
【0029】
現像ロール140は、感光体130に対向して設けられており、現像ロール140に吸着された現像剤102のうちトナー粒子102bは、帯電されており、感光体130に吸着される。このとき、感光体130の表面は、記録画像に応じて帯電されることで静電潜像が形成されており、トナー粒子102bは、感光体130に形成された静電潜像に応じて吸着される。
【0030】
つまり、現像ロール140は、キャリア粒子102aを介して現像ロール140に担持されたトナー粒子102bを感光体130側に飛翔させ、感光体130の表面に形成された潜像を現像化するようになっている。現像処理後のキャリア粒子102aと、感光体130側に飛翔されなかったトナー粒子102bは、収納容器101内に回収される。
【0031】
ここで、図1(B)に示すように、感光体130の表面は、記録画像に応じて帯電されており、トナー粒子102bは、静電力により感光体130の表面に飛翔する。感光体130の表面には、飛翔したトナー粒子102bが付着し、記録画像に応じたトナー像が形成される。このとき、トナー粒子102bの感光体130への吸着のされ方によって、記録画像の画質が左右される。
【0032】
トナー粒子102bは、キャリア粒子102aにより感光体130に搬送されているので、トナー粒子102bの感光体130への吸着のされ方は、現像ロール140と感光体130との間の現像ギャップでのキャリア粒子102aおよびトナー粒子102bの挙動により決定される。このため、キャリア粒子102aおよびトナー粒子102bの挙動の解析が電子写真装置本体や現像装置100の開発にとって重要な要素となる。
【0033】
<粒子挙動解析システム;基本>
図2は、本発明に係る粒子挙動解析装置の一構成例である粒子挙動解析システムの基本構成を示すブロック図である。基本構成の粒子挙動解析システム200は、それぞれ粒子挙動解析機能を有する複数台の粒子挙動解析装置202がネットワーク接続されて構成されている。
【0034】
各粒子挙動解析装置202は、主要の処理データを相互にネットワーク208を介して伝達し合い、粒子挙動解析処理を並列的に実行可能になっており、粒子挙動解析システム200としては、事実上の並列型計算装置(クラスタ計算機)として構成されている。ネットワーク208は、通信状態がルーティング機能を持つネットワーク管理装置208aで管理されるようになっている。
【0035】
各粒子挙動解析装置202は、一般の電子計算機と同様のもので構成されている。また、図示した例では、粒子挙動解析システム200を構成する各粒子挙動解析装置202のうちの1台が全体を統括する計算管理ノードとしての機能を持つ主粒子挙動解析装置202aとして機能するようになっており、この主粒子挙動解析装置202aに対して残りの粒子挙動解析装置202が、主粒子挙動解析装置202aにより制御される副粒子挙動解析装置202bとしてネットワーク接続されている。
【0036】
なお、図では便宜的に、ネットワーク管理装置208aから1本のネットワーク線を出し、そのネットワーク線上に主粒子挙動解析装置202aと副粒子挙動解析装置202bとを接続する態様で示しているが、実際には、ネットワーク管理装置208aに備えられる個別のポートに各粒子挙動解析装置202が接続され、各粒子挙動解析装置202間の通信は、このネットワーク管理装置208aを介してなされるようになっている。
【0037】
主粒子挙動解析装置202aには、粒子挙動解析処理用の各種の操作を行なうためのキーボードやマウスなどの指示入力装置210と、処理結果をユーザに画像情報として提示する表示装置212とが接続されている。
【0038】
このような基本構成のシステム構成を採ることで、複数種類の多体粒子間相互作用がある系について粒子挙動解析処理を行なうに当たり、各粒子の磁気相互作用、静電相互作用、あるいは機械的相互作用(接触力;壁などと粒子間の接触力や粒子間接触)などの各相互作用について、並列処理にて解析を実行する。なお、機械的相互作用は、たとえば、壁やその他の物体と粒子間の接触力や粒子間接触による接触力である。
【0039】
たとえば、キャリア粒子102aについてはMaxwell方程式を基礎とした磁場解析法などを利用した磁気的な運動解析を行ない、またトナー粒子102bについては粒子要素法などを利用した純力学的な運動解析やクーロン力に着目した静電界解析を行ない、最終的には、各解析結果を組み合わせて、現像剤102の流動挙動を高精度で予測する。
【0040】
特に本実施形態では、各粒子挙動解析装置202において各相互作用の解析を行なう際、領域分割法(SD;Spatial Decomposition Method)や粒子分割法(PD;Particle Decomposition Method あるいはRD;Replicated Data Method)ではなく力分割法(力マトリックスを用いたアルゴリズム)を用いて解析することで、全プロセッサ(本実施形態の各粒子挙動解析装置202)間の通信量を低減させるようにしている。通信量を低減させることで、多プロセッサ使用時のプログラムの並列化性能を向上させ、計算時間を大幅に短縮するのである。
【0041】
なお、図2に示した粒子挙動解析システム200の基本構成では、事実上の並列型計算装置(クラスタ計算機)の構成で示したが、これに限らず、図示を割愛するが、それぞれ粒子挙動解析機能を有する複数台の粒子挙動解析装置を第1ネットワークにてネットワーク接続されて並列型計算装置として構成されている複数の粒子挙動解析システムを、さらに、別の第2ネットワークで接続して構成されたものとしてもよい。
【0042】
この場合、各粒子挙動解析システムは、主要の処理データを相互に外部ネットワーク(第2ネットワーク)を介して伝達し合い、それぞれ対象の異なる粒子挙動解析処理を並列的に実行可能になり、このような変形例の粒子挙動解析システムとしては、事実上の並列型計算装置をネットワーク接続してなるグリッド型計算装置として構成される。
【0043】
たとえば、各粒子挙動解析システムにおいては、磁気相互作用、静電相互作用、あるいは機械的相互作用(接触力)などの各相互作用の何れかに特化した解析処理を行ない、それぞれ個別の相互作用についての解析処理を並列して実行する。つまり、複数種類の相互作用を、それぞれ独立して同時に、別の粒子挙動解析システムを用いて解析する。
【0044】
あるいは、現像剤102を構成するキャリア粒子102aやトナー粒子102bの別に、磁気相互作用、静電相互作用、あるいは機械的相互作用(接触力)などの各相互作用の解析処理を並列して実行する。たとえば、磁気力の影響度が大きいキャリア粒子102aについては特に磁気力に特化した粒子挙動解析処理を行ないつつ、磁気力および静電気力の双方の影響度が大きいトナー粒子102bについては特に磁気力および静電気力に特化した粒子挙動解析処理を行なうなど、粒子種ごとに、別の粒子挙動解析システムを用いて粒子挙動解析処理を行なってもよい。
【0045】
各粒子挙動解析システムは、基本構成で説明したように、各相互作用の解析を行なう際、粒子分割法ではなく力分割法を用いて解析する。処理速度の改善効果を高めるべく、並列計算装置として構成されている粒子挙動解析システム同士での通信においても、通信量の少ない力分割並列化法を採用する。つまり、このような変形構成のシステム構成を採ることで、各粒子挙動解析システムは、それぞれ独立した粒子挙動解析処理を行なうことで、基本構成のシステム構成よりもさらに処理時間の短縮を図る。
【0046】
また、粒子間相互作用の計算負荷の程度に応じて、使用する粒子挙動解析システム(事実上の並列計算装置)を、その処理能力を基に選択してもよい。たとえば、異種環境(性能など)のシステムが混在する状況において、効率的に計算機リソースを用いて粒子挙動解析処理を行なう。
【0047】
<粒子挙動解析装置;機能ブロック>
図3は、各粒子挙動解析装置202の一構成例を示すブロック図である。ここでは、特に計算管理ノードの機能を具備した主粒子挙動解析装置202aについて示している。図示のように、主粒子挙動解析装置202aは、指示入力装置210などを利用して処理対象データを取り込むデータ入力部220と、粒子挙動解析処理を行なうデータ処理部230と、処理結果を表示装置212などを利用してユーザに提示する情報提示部240とを備えている。データ入力部220と情報提示部240とは、主粒子挙動解析装置202aの計算管理ノードに相当する部分に設けられている。
【0048】
データ入力部220は、指示入力装置210を構成するキーボードやマウスを介してユーザより入力されるコマンドやデータを受け付け、データ処理部230に渡す。
【0049】
副粒子挙動解析装置202bは、その主要部をなすデータ処理部230とデータ記憶部238とを有する。データ処理部230は、データ入力部220から入力されたデータに基づいて後述する粒子挙動解析処理を行なう。このデータ処理部230は、より詳細には、データ受付部232、数値演算処理部234、および出力データ処理部236を有している。
【0050】
データ受付部232は、図示を割愛したデータ記憶部を具備しており、データ入力部220から入力されたデータをデータ記憶部に記憶し、数値計算時に必要なデータを数値演算処理部234に供給する。データ受付部232のデータ記憶部には、たとえば、解析の対象としている現像装置100の構成および現像剤102の物性値に関するデータなどが記憶される。
【0051】
数値演算処理部234は、注目粒子の粒子データを1つまたは複数個記憶するレジスタを有しており、データバスに乗せて転送される粒子データを読み込み、その粒子と内部保持する注目粒子との間に働く相互作用を演算し、その累積値を結果用のレジスタに保持する機能を有している。たとえば、データ受付部232から供給されたデータに基づいて、粒子の一例である現像剤102(詳細にはキャリア粒子102aやトナー粒子102b)について、磁気相互作用、静電相互作用、あるいは機械的相互作用(接触力)など、複数の相互作用を同時に考慮した粒子挙動を、力分割法を適用してシミュレーション処理にて解析する。数値演算処理部234はその解析結果を出力データ処理部236に供給する。
【0052】
出力データ処理部236は、数値演算処理部234での計算結果を受け取り、数値演算処理部234での計算結果を表示データに変換し、表示装置212に供給する。表示装置212は、出力データ処理部236から供給された表示データに基づいた処理結果画像を表示する。実際には確認困難な現像剤102の挙動を視覚的に把握することができるように、現像剤102の挙動予測を可視化して表示装置212上に表示するのである。
【0053】
データ記憶部238は、相互作用を計算するためのパラメータ表のデータを記憶する装置であり、メモリバスを介して数値演算処理部234に接続される。ここで、詳細は後述するが、データ記憶部238は、いわゆるCPUと同一の半導体基板上に内蔵される内蔵メモリ(キャッシュメモリ:Cache Memoryとも称される)と同様の一時記憶部238aと、いわゆるメインメモリとも称される外部の半導体製の記憶媒体(たとえば数100MB〜数GB程度の容量のもの)、およびメインメモリより大容量(数100GB以上)のハードディスク装置(HDD)などの外部記憶装置238bとで構成される。周知のように、CPUのアクセスは、メインメモリよりもキャッシュメモリの方が高速である。
【0054】
また、主粒子挙動解析装置202aの計算管理ノードに相当する部分に、処理対象要素を力分割法により分割するに当たり、それぞれ計算装置で構成され力分割法による粒子挙動解析を行なう各計算システム(プロセッサとも称する;図1では粒子挙動解析装置202)に各分割部分を割り当てる分割処理部250を備えている。分割処理部250は、プロセッサ数Mに対して、N^2<M<(N+1)^2となるように、縦N・横Nの力マトリックスを使用するように設定する。
【0055】
<粒子挙動解析装置;計算機構成>
図4は、各粒子挙動解析装置202の他の構成例を示すブロック図である。ここでは、パーソナルコンピュータなどの電子計算機を利用して、粒子挙動解析をソフトウェアを実行するマイクロプロセッサなどから構築されるより現実的なハードウェア構成を示している。
【0056】
すなわち、本実施形態において、2種類以上の相互作用力を考慮して、力マトリクスを使用した力分割並列化アルゴリズムを用いて、粒子の挙動を解析する仕組みは、ハードウェア処理回路により構成することに限らず、その機能を実現するプログラムコードに基づき電子計算機(コンピュータ)を用いてソフトウェア的に実現することも可能である。
【0057】
よって、本発明に係る仕組みを、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。
【0058】
電子計算機に、力分割並列化アルゴリズムを用いて2種類以上の相互作用力を考慮した粒子挙動解析処理機能をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ(組込マイコンなど)、あるいは、CPU(Central Processing Unit )、論理回路、記憶装置などの機能を1つのチップ上に搭載して所望のシステムを実現するSOC(System On a Chip:システムオンチップ)、または、各種のプログラムをインストールすることで各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0059】
記録媒体は、コンピュータのハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気などのエネルギの状態変化を引き起こして、それに対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。
【0060】
たとえば、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクFDを含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MO(Magneto Optical Disk)を含む)、または半導体メモリなどよりなるパッケージメディア(可搬型の記憶媒体)により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMやハードディスクなどで構成されてもよい。
【0061】
また、ソフトウェアを構成するプログラムは、記録媒体を用いずに、記録媒体を介して提供されることに限らず、有線あるいは無線などの通信網を介して提供されてもよい。
【0062】
たとえば、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ハードウェア処理回路にて構成する場合と同様の効果は達成される。この場合、記憶媒体から読み出されたプログラムコード自体が力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理の機能を実現する。
【0063】
また、コンピュータが読み出したプログラムコードを実行することで、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理を行なう機能が実現されるだけでなく、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(Operating Systems ;基本ソフト)などが実際の処理の一部または全部を行ない、その処理により力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理を行なう機能が実現される場合であってもよい。
【0064】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって粒子挙動解析処理を行なう機能が実現される場合であってもよい。
【0065】
なお、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理を行なう機能を実現するプログラムコードを記述したファイルとしてプログラムが提供されるが、この場合、一括のプログラムファイルとして提供されることに限らず、コンピュータで構成されるシステムのハードウェア構成に応じて、個別のプログラムモジュールとして提供されてもよい。
【0066】
たとえば、コンピュータシステム900は、コントローラ部901と、ハードディスク装置、フレキシブルディスク(FD)ドライブ、あるいはCD−ROM(Compact Disk ROM)ドライブ、半導体メモリコントローラなどの、所定の記憶媒体からデータを読み出したり記録したりするための記録・読取制御部902とを有する。
【0067】
コントローラ部901は、CPU(Central Processing Unit )912、読出専用の記憶部であるROM(Read Only Memory)913、随時書込みおよび読出しが可能であるとともに揮発性の記憶部の一例であるRAM(Random Access Memory)915、および不揮発性の記憶部の一例であるRAM(NVRAMと記述する)916を有している。
【0068】
なお、上記において“揮発性の記憶部”とは、装置の電源がオフされた場合には、記憶内容を消滅してしまう形態の記憶部を意味する。一方、“不揮発性の記憶部”とは、装置のメイン電源がオフされた場合でも、記憶内容を保持し続ける形態の記憶部を意味する。記憶内容を保持し続けることができるものであればよく、半導体製のメモリ素子自体が不揮発性を有するものに限らず、バックアップ電源を備えることで、揮発性のメモリ素子を“不揮発性”を呈するように構成するものであってもよい。
【0069】
また、半導体製のメモリ素子により構成することに限らず、磁気ディスクや光ディスクなどの媒体を利用して構成してもよい。たとえば、ハードディスク装置を不揮発性の記憶部として利用できる。また、CD−ROMなどの記録媒体から情報を読み出す構成を採ることでも不揮発性の記憶部として利用できる。
【0070】
また、コンピュータシステム900は、ユーザインタフェースをなす機能部としての指示入力部903と、操作時のガイダンス画面や処理結果などの所定の情報をユーザに提示する表示出力部904と、各機能部との間のインタフェース機能をなすインタフェース部(IF部)909とを有する。
【0071】
なお、解析処理結果を印刷出力してユーザに提示する構成とするべく、処理結果を所定の出力媒体(たとえば印刷用紙)に出力する画像形成部906を設けてもよい。
【0072】
指示入力部903としては、たとえば、ユーザインタフェース部985の操作キー部985bを利用してもよい。あるいは、キーボードやマウスなどを利用してもよい。
【0073】
表示出力部904は、表示制御部919と表示装置とを備える。表示装置としては、たとえば、ユーザインタフェース部985の操作パネル部985aを利用してもよい。あるいは、CRT(Cathode Ray Tube;陰極線管)やLCD(Liquid Crystal Display;液晶)などでなるその他のディスプレイ部を利用してもよい。
【0074】
たとえば、表示制御部919が、操作パネル部985aやディスプレイ部上に、ガイダンス情報や画像読取部905が取り込んだ全体画像などを表示させる。また、各種の情報をユーザに通知する際の表示デバイスとしても利用される。なお、表示面上にタッチパネルを有するディスプレイ部とすることで、指先やペンなどで所定の情報を入力する指示入力部903を構成してもよい。
【0075】
インタフェース部909としては、処理データ(画像データを含む)や制御データの転送経路であるシステムバス991の他、たとえば、画像形成部906や他のプリンタとのインタフェース機能をなすプリンタIF部996、およびネットワークとの間の通信データの受け渡しを仲介する通信IF部999を有している。
【0076】
このような構成において、CPU912は、システムバス991を介してシステム全体の制御を行なう。ROM913は、CPU912の制御プログラムなどを格納する。RAM915は、SRAM(Static Random Access Memory )などで構成され、プログラム制御変数や各種処理のためのデータなどを格納する。また、RAM915は、所定のアプリケーションプログラムに従って演算して得たデータや外部から取得したデータなどを一時的に格納する領域を含んでいる。
【0077】
たとえば、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理機能をコンピュータに実行させるプログラムは、CD−ROMなどの記録媒体を通じて配布される。あるいは、このプログラムは、CD−ROMではなくFDに格納されてもよい。また、MOドライブを設け、MOに前記プログラムを格納してもよく、またフラッシュメモリなどの不揮発性の半導体メモリカードなど、その他の記録媒体にプログラムを格納してもよい。さらに、他のサーバなどからインターネットなどのネットワークを経由してプログラムをダウンロードして取得したり、あるいは更新したりしてもよい。
【0078】
なおプログラムを提供するための記録媒体としては、FDやCD−ROMなどの他にも、DVDなどの光学記録媒体、MOなどの光磁気記録媒体、テープ媒体、磁気記録媒体、ICカードやミニチュアカードなどの半導体メモリを用いてもよい。記録媒体の一例としてのFDやCD−ROMなどには、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理機能を実現する際の、一部または全ての機能を格納してもよい。
【0079】
また、ハードディスク装置は、制御プログラムによる各種処理のためのデータを格納したり、自装置で取得したデータや外部から取得したデータなどを大量に一時的に格納したりする領域を含んでいる。
【0080】
このような構成により、操作キー部985bを介した操作者による指令にて、後述する粒子挙動解析方法を実行するプログラムが記憶されているCD−ROMなどの読取可能な記録媒体からRAM915に粒子挙動解析プログラムがインストールされ、また操作キー部985bを介した操作者による指令や自動処理にて粒子挙動解析プログラムが起動される。
【0081】
CPU912は、この粒子挙動解析プログラムに従って後述する粒子挙動解析方法に伴う計算処理を施し、処理結果をRAM915やハードディスクなどの記憶装置に格納し、必要により操作パネル部985a、あるいはCRTやLCDなどの表示装置に出力する。
【0082】
なお、このようなコンピュータを用いた構成に限らず、図4を用いて示した各機能部の処理をなす専用のハードウェアの組合せにより、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理を行なう粒子挙動解析システム200や粒子挙動解析装置202を構成してもよい。
【0083】
たとえば、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理のための各機能部分の全ての処理をソフトウェアで行なうのではなく、これら機能部分の一部を専用のハードウェアにて行なう処理回路908を設けてもよい。ソフトウェアで行なう仕組みは、並列処理や連続処理に柔軟に対処し得るものの、その処理が複雑になるに連れ、処理時間が長くなるため、処理速度の低下が問題となる。
【0084】
これに対して、ハードウェア処理回路で構築すると、処理が複雑であっても、処理速度の低下を防ぐことができ、高いスループットを得ることができる高速化を図ったアクセラレータシステムが構築される。
【0085】
たとえば、力分割並列化法を利用し複数種の相互作用力を考慮した粒子挙動解析処理機能を実現する場合であれば、処理回路908としては、図4に示したデータ処理部230を構成するデータ受付部232に相当するデータ受付部908a、数値演算処理部234に相当する数値演算処理部908b、出力データ処理部236に相当する出力データ処理部908cなどをハードウェアで構成するとよい。
【0086】
また、全体を統括する主粒子挙動解析装置202aを構成する場合であれば、分割処理部250に相当する分割処理部908dをハードウェアで構成するとよい。
【0087】
<力分割並列処理;基本>
図5〜図9は、本実施形態の粒子挙動解析処理において適用する力分割法(力マトリックスを用いたアルゴリズム)の並列化処理を説明する図である。ここで、図5は、力分割並列処理手順の一例を示したフローチャートである。図6は、解析対象粒子を各ノードに割り当てる手法を説明する図である。
【0088】
図7は、各ノードで求められた相互作用力の加算処理(特に力マトリクスの行方向について)を説明する図である。図8は、行方向および列方向に計算した相互作用力を通信し合う必要のある他の特定プロセッサを説明する図である。図9は、力分割法における力マトリクスを利用した際の通信対象のプロセッサを、ノード#6に着目して纏めた図である。なお、力マトリクスでは、全粒子がキャリア粒子102aであるものとし、磁気力の相互作用で示す。
【0089】
本実施形態では、各粒子挙動解析装置202において各相互作用の解析を行なう際、領域分割法や粒子分割法ではなく力分割法(力マトリックスを用いたアルゴリズム)を用いて解析することで、全プロセッサ間の通信量を低減させるようにしている。通信量を低減させることで、多プロセッサ使用時のプログラムの並列化性能を向上させ、計算時間を短縮するのである。
【0090】
先ず、主粒子挙動解析装置202aにおいて、分割処理部250は、現時点において粒子挙動解析処理に使用可能なクラスタ構成の粒子挙動解析システム200を構成する粒子挙動解析装置202の数やグリッド構成の粒子挙動解析システムを構成する各粒子挙動解析システム200の数(纏めてプロセッサ数Mと呼ぶ)を特定する(S102)。
【0091】
ここで、力分割法の基本原理としては、プロセッサ数Mは、N^2であり、N行N列の正方の力マトリクスに配されることが前提となっている。ここでは、一例として、N=4で、プロセッサ数Mが計16(=4^2)台であるとする。この場合、各プロセッサは、4行4列の力マトリクスに配される。
【0092】
この後、データ処理部230は、データ入力部220を介して、計算に必要な各種物理パラメータや粒子の初期配置や力分割法で特に必要となる解析対象粒子数などの計算条件を読み込む(S104)。
【0093】
次に、分割処理部250は、ステップS102にて特定した各プロセッサを、図6に示すように正方行列でマトリクス配置して、解析対象の粒子(現像剤102を構成するキャリア粒子102aやトナー粒子102b)を割り当てる(S105)。各番号のプロセッサ(各粒子挙動解析装置202もしくは各粒子挙動解析システム200)をノードN(本例では0〜15の計16台)とも呼ぶ。
【0094】
次に、データ処理部230は、力マトリックスに割り当てられた粒子に関して、計算の過程において全粒子について相互作用計算を実施するのではなく、カットオフ距離を設定した処理を行なうように対処する。このとき、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量がキャッシュメモリ容量に収まるようにカットオフ距離を調整する(S106)。
【0095】
そして、データ処理部230は、設定したカットオフ領域内の粒子に着目して、代用粒子IDを利用して、元の標準的な力マトリクスを、カットオフ領域内の粒子を確実に含むような力マトリクスに短縮する変形処理を行なう(S108:詳細は後述する)。このとき、データ処理部230は、カットオフ領域内の解析対象の実際の粒子IDと、短縮した力マトリクスにおける代用粒子IDとの対応関係を管理する。
【0096】
データ処理部230は、特に、カットオフ領域内の粒子を確実に含む最小の力マトリクスに短縮したとき、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量がキャッシュメモリ容量に収まるようにカットオフ距離を調整する。キャッシュメモリに記憶されるデータ量の最小化とキャッシュ・ヒット・ミスの防止の双方を最適な状態で満足するようにするためである。
【0097】
たとえば、力マトリクスの短縮処理を行なわない場合、図6に示す例では、32粒子を16個のプロセッサで並列計算する場合の力マトリクスを示している。縦方向が実体のあるプロセッサであり、自身のノードN(プロセッサ番号)と着目粒子とを示し、横方向は通信相手のノードN(プロセッサ番号)と着目粒子とを示す。
【0098】
16個のプロセッサで32粒子について並列計算するので、4行4列の力マトリクスに配される各プロセッサは、先ず、それぞれ2個の粒子に着目して、着目粒子ごとに対象となる他の粒子との間での相互作用を解析することになる。たとえば、ノード#6に着目すると、先ず、12番目と13番目の粒子を着目粒子とする。
【0099】
次に、複数種類の多体粒子間相互作用力を、力マトリクス中の自身を中心とする行方向および列方向に存在する通信を必要とするプロセッサ(特に特定プロセッサと呼ぶ)に分散して計算する(S110)。このとき、複数種類の多体粒子間相互作用に対しては、それぞれ別の力マトリックスを用いて計算する。
【0100】
たとえば、磁気相互作用を解析するための力マトリックスを用いて磁気相互作用を解析する。また、静電相互作用を解析するための力マトリックスを用いて静電相互作用を解析する。また、機械的相互作用(接触力)を解析するための力マトリックスを用いて接触力を解析する。
【0101】
各相互作用用の各別の力マトリックスは、取り扱う粒子番号が異なる点に特徴を有する。複数種類の多体粒子間相互作用に対して各別の力マトリックスを用いて計算することで、各力マトリックスでは相互作用計算に必要な最小数の粒子のみを計算するようにし、全粒子を計算する場合に比べて計算時間を短縮するのである。また、その時間短縮分、つまり計算負荷の低減分を見越して、各プロセッサが担当する解析対象の粒子数を増やす方向で調整するようにしてもよい。各別の力マトリックスを用いることにより、各々のマトリックスでは必要最小数の粒子のみを計算するようにし、マトリックスによっては計算時間を短縮する。
【0102】
なお、たとえば図6から分かるように、力分割法では、相互作用力を求める際の相手粒子の組合せ方に特徴があり、たとえば、ノード#6に着目すると、解析対象粒子の関係を、行方向の粒子番号と、列方向の粒子番号との相互作用計算を示すインデックス“−”で対応付けて示すように(一部は省略して示す)、粒子番号8〜15のそれぞれは、粒子番号4,5,12,13,20,21,28,29のそれぞれとの間の相互作用を解析する。
【0103】
各粒子は自分自身に作用する、他粒子からの作用力の総和を計算する。このために、粒子番号12,13に関しては、12番の粒子は13番の相互作用力を、13番の粒子は12番の相互作用力を必要とする。ただし、12と13,13と12の相互作用力の大きさは同じであるから、計算は1回で行なってもよい。
【0104】
組合せ的には自分自身を結びつけた“12−12”や“13−13”を採り得るが、これは自己相互作用を意味し、本実施形態では、その解析は不要である。
【0105】
次に、特定プロセッサ間で通信し、磁気相互作用、静電相互作用、あるいは機械的相互作用(接触力)などの各相互作用について、力マトリックスにおける行方向の相互作用同士を足し合わせる、つまり、分散して計算した全ての相互作用力の全総和値SUM_Totalを求める(S112)。全総和値SUM_Totalは、静電気力、磁気力、機械的接触力、あるいは付着力などの複数の相互作用を一括して表わしたものとなる。
【0106】
たとえば、図7に示すように、ノード#6に着目すると、ノード4,5,7での相互作用値をノード#6に送り、ノード#6にて総和計算を行なう。これにより、ノード#6の担当粒子12,13の相互作用力の総和値が求まる。
【0107】
次に、複数の相互作用を一括して表している全総和値SUM_Totalを使用して、各粒子の運動方程式を解き、位置座標を計算する(S114)。そして、このようにして求めた各粒子の位置座標を、相互作用マトリクスに関係する特定プロセッサに送り(通信し)、計算情報を更新する(S116)。
【0108】
たとえば、図8に示すように、ノード#6に着目すると、相互作用力の総和値から計算して更新されたノード#6が担当する担当粒子12,13の位置座標を、相互作用マトリクスに関係する行方向のノード4,5,7および列方向のノード2,10,14に送る。これは、ノード#6が担当する粒子12,13の情報を必要とするのは、行方向のノード4,5,7および列方向のノード2,10,14のみだからである。よって、ノード#6は、この6つのノードとの間でのみ通信を行なうことで、通信量を少なくする。
【0109】
この後、所定の計算ステップに到達するまで、ステップS110に戻り、同様の処理を繰り返す(S118)。ここで“所定の計算ステップ”とは、解析対象の全粒子が、概ね安定した位置に納まった状態(全て流れてしまった状態)となるまでとすればよい。
【0110】
このように、プロセッサ数MがN^2の関係を満たす場合において、演算プロセッサとしてのCPUや記憶媒体(メモリ)としてのRAMなどを備えたプロセッサ(各粒子挙動解析装置202や各粒子挙動解析システム200)をネットワーク208で接続して相互通信可能にして並列型計算装置(クラスタ計算機)やグリッド型計算機を構成し、図6〜図8に示したように、力マトリクスに従って力分割並列化アルゴリズムを用いて、磁気相互作用、静電相互作用、あるいは機械的相互作用(接触力)など、複数の相互作用を同時に考慮して挙動解析を行なう。
【0111】
画像形成装置1の現像装置100に収容される現像剤102(詳しくはキャリア粒子102aやトナー粒子102b)における磁気力、静電気力、機械的接触など電子写真現像プロセスの粒子挙動シミュレーションのように、複数種類の多体粒子間相互作用がある粒子について挙動解析を、図9に示す力マトリックス(粒子間相互作用規則)を用いて処理を行なう。1種類の粒子の挙動に限らず、キャリア粒子102aとトナー粒子102bから構成される2成分現像剤の相互作用を解析してもよい。
【0112】
たとえば、感光体130にトナー粒子102bを電着した後のキャリア粒子102aからの電磁気的影響や摺擦の影響、また、キャリア粒子102aの中から現像に寄与するトナー粒子102bがどの程度の量、感光体130に飛翔しているのなどの解析、さらに、トナー粒子102bとキャリア粒子102aに働く接触力の影響などを解析してもよい。
【0113】
また、電子写真における現像剤粒子シミュレーションに適用するために必要となる、静電気力、磁気力、機械的接触力、あるいは付着力などを同時に考慮した高速並列処理アルゴリズムを実現するようにしてもよい。
【0114】
それぞれの特定プロセッサは、相互作用マトリクスに関係する自身を中心とする行方向および列方向の他の特定プロセッサとの間でのみ通信を行なえばよい。使用する特定プロセッサの数を増やすほど通信量を少なくすることで、解析処理時間を確実に低減するのである。
【0115】
なお、ステップS110以降での具体的な処理例では、力マトリクスの短縮処理を行なわない場合で説明したが、力マトリクスの短縮処理を行なう場合には、実際の粒子IDではなく、短縮した力マトリクスで使用される代用粒子IDについて、それと対応するカットオフ領域内の解析対象の実際の粒子IDとの対応関係を参照して処理を行なう。
【0116】
<数値演算処理部とデータ記憶部の構成例>
図10は、電子計算機の仕組みを適用した場合の数値演算処理部234とデータ記憶部238の構成例の詳細を示す図である。
【0117】
数値演算処理部234は、粒子間の相互作用を計算する相互作用演算部310と、その演算結果を累算する累算部312とを有し、電子計算機に設けられるCPU(中央演算制御部)の数値演算機能部で構成される。
【0118】
また、本実施形態の数値演算処理部234は、分割処理部250によって力分割法により割り当てられた分割部分についてカットオフ距離を設定した処理を行なうように対処するとともに、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量が、一時記憶部の一例であるキャッシュメモリの記憶容量に収まるようにカットオフ距離を調整するカットオフ領域設定部320とを有する。
【0119】
さらに、数値演算処理部234は、カットオフ領域設定部320が設定するカットオフ領域内の粒子に関して、分割部分についての元の力マトリクスを、カットオフ領域内の粒子を含むような力マトリクスに短縮する力マトリクス短縮部322と、カットオフ領域内の解析対象の実際の粒子と力マトリクス短縮部322が短縮した力マトリクスにおける粒子とを対応付ける相関管理部324とを有する。
【0120】
相互作用演算部310は、他の計算装置との間でデータ通信を行ないつつ、相関管理部324により対応付けられているカットオフ領域内の解析対象の実際の粒子と力マトリクス短縮部322が短縮した力マトリクスにおける粒子との対応関係を参照して、力マトリクス短縮部322により短縮された力マトリクスで示される計算対象の相互作用力を求める。
【0121】
データ記憶部238は、相互作用パラメータデータを記憶する相互作用パラメータデータ外部記憶装置330と、相互作用パラメータデータを一時的に記憶する相互作用パラメータデータ一時記憶部332と、注目粒子のデータを保持する注目粒子データ記憶部334とを有する。
【0122】
相互作用パラメータデータ外部記憶装置330は、図3の外部記憶装置238bに相当し、たとえば半導体メモリが回路基板上に配置され記憶容量が数100MB〜数GB程度のメインメモリで構成される。相互作用パラメータデータ一時記憶部332や注目粒子データ記憶部334は、図3の一時記憶部238aに相当し、数値演算処理部234をなすCPUと同一の半導体デバイス内に実装されるキャッシュメモリで構成される。
【0123】
一般的には、キャッシュメモリの容量が増えるほど処理速度は向上するが、高速なキャッシュメモリを実現するにはコストが嵩むので、複数の異なった仕組みのキャッシュメモリを用意することがある。この場合、CPUのレジスタから近い順に1次キャッシュ、2次キャッシュ、3次キャッシュと呼ぶ。図示した例では2次キャッシュまでを示す。
【0124】
数値演算処理部234は、注目粒子のデータを保持する注目粒子データ記憶部334を内蔵しており、データ入力部220が送る粒子データをデータ受付部232を介して読み取り、読み取った粒子データに対応する粒子と注目粒子データ記憶部334が保持する注目粒子データに対応する粒子との間に働く相互作用を、相互作用演算部310により計算し、その計算結果を累算部312により累算する。
【0125】
ここで、複数種類の相互作用のある粒子計算における力分割並列化法は、粒子間の相互作用を示す力マトリックスが定める特定プロセッサ間で並列計算を実施する。しかしながら、力マトリックスに割り当てられた粒子に関しては、計算の過程においてメモリへのデータの格納と読出しをしながら相互作用判定などを行なう。このとき、必要な全ての相互作用パラメータデータを記憶することができる容量は対応する粒子種の数の2乗に比例するため、相互作用パラメータデータの記憶手段の全てを数値演算処理部234を含むデータ処理部230をなすCPUと同一の半導体に内蔵することは、粒子情報をストアするメモリコストが大きくなり(高コストとなり)現実的ではない。このため、必要容量を小さくする工夫が必要となる。
【0126】
一方、一時記憶部としての内蔵メモリ(キャッシュメモリ)の容量を小さくし過ぎると、キャッシュメモリに必要な計算データが入り切らず、CPUにおいて粒子データの再読込み(キャッシュ・ヒット・ミスと称する)が発生し、高速アクセス可能なメモリであるキャッシュメモリの利用効率が悪くなり計算パフォーマンスが低下する。メモリコスト、計算コスト、キャッシュメモリの利用の点から計算効率(計算パフォーマンス)が悪い。
【0127】
そこで、本実施形態では、CPUのアクセスは、メインメモリよりもキャッシュメモリの方が高速であるという点と、キャッシュ・ヒット・ミスの防止の双方の観点に着目した仕組みを採る。
【0128】
すなわち、メインメモリはコスト安のため、キャッシュメモリよりも大容量にできるが、アクセスは遅い。一方、キャッシュメモリはコスト高のため小容量とせざるを得ないがアクセスは速い。ここで、計算に用いるデータサイズを、キャッシュメモリに記憶可能なサイズに調整すれば、相互作用パラメータデータ外部記憶装置330とその外部バスであるパラメータメモリバスを駆動することなく、相互作用の計算を処理することが可能となるので、消費電力が大幅に低減するし、計算効率の低下が防止され、高速・効率的な計算処理ができると考えられる。
【0129】
次に、このような本実施形態の仕組みに適用される「計算に用いるデータサイズを、キャッシュメモリに記憶可能なサイズに調整する」具体的な手法について説明する。
【0130】
<力分割並列処理;メモリ配置の適正化手法の基本>
図11および図12は、本実施形態で採用する、力分割法におけるメモリ配置の適正化手法、すなわち図5のステップS106〜S108の詳細を説明する図である。ここで、図11は、カットオフ距離を設定した処理の基本を説明する図である。図12は、複数段階のカットオフ距離を設定することでメモリ配置の適正化を行なう仕組みを説明する図である。
【0131】
力分割法では、各プロセッサが担当する力マトリックスに割り当てられた粒子に関して、計算の過程において全粒子について相互作用計算を実施するのが基本ではあるが、カットオフ領域設定部320を設けることで、図11に示すように、カットオフ距離を設定した処理を行なうことができる。この場合、計算の過程において全粒子についてカットオフ距離内にあるか否かの相互作用判定を伴う。
【0132】
相互作用の有効距離は、接触では計算対象である粒子の最大粒子径であり、静電相互作用のように、数式上は無限遠方まで作用する場合には、必要に応じてカットオフ距離を設定して、それを有効距離とする方法などを採ることができる。なお、有効距離の設定方法は、計算対象あるいは解析の目的などに応じて適切に定めればよく、公知の様々な手法を採用することができる。
【0133】
この場合、各プロセッサが担当する力マトリックスに割り当てられた粒子に関して、計算の過程において相互作用判定などを行ない全粒子について相互作用計算を実施するわけではないので、相互作用判定の計算コストがかかる懸念があるものの、カットオフ距離の設定値次第で、相互作用の計算対象となる粒子数を低減でき、そのデータ記憶装置に記憶すべき相互作用パラメータデータ量を低減できる。
【0134】
そこで、本実施形態では、このようなカットオフ距離を設定した処理を行なうことによる利点を積極的に利用して、カットオフ領域設定部320は、相互作用パラメータデータ量がキャッシュメモリ量(相互作用パラメータデータ一時記憶部332をなすキャッシュメモリの記憶容量)以下となるように、カットオフ距離を変更する。力マトリクス短縮部322は、その変更結果に基づき相互作用を計算する粒子へのメモリ配置が最適になるように力マトリックスの動的な構築を行なう。こうすることで、メモリ使用量を抑制し、キャッシュ・ヒット・ミスの防止を図りながら、キャッシュメモリを効率的に利用できる粒子データのメモリ配置を可能とする仕組みを採る。
【0135】
「力マトリックスの動的な構築を行なう」と称したのは、各計算時点で、カットオフ距離を設定した処理を行なうように対処するに当たり、カットオフ領域内の粒子に関しての相互作用計算用のデータ量がキャッシュメモリ容量に収まるように、その都度適正にカットオフ距離を調整するステップS106の処理に基づく。
【0136】
たとえば、図12は、カットオフ距離を動的に変更するに当たり、n段階のプライオリティー付けを行なう例を示す。図では、カットオフ距離を3段階(各距離の領域を優先度エリアと称する)に設定する例を示している。最外部すなわちカットオフ距離が最長の第3優先度エリア内に存在する粒子数よりも、最内部すなわちカットオフ距離が最短の第1優先度エリア内に存在する粒子数の方が少なくなることが期待できる。第1優先度エリア内が図11のカットオフ領域内に対応する。
【0137】
したがって、そのデータ記憶装置に記憶すべき相互作用パラメータデータ量は、第3優先度エリアに比べると、第1優先度エリアの方が少なくなることが期待できる。よって、カットオフ距離がより短い領域に基づいて優先的に処理することで、メモリ使用量を抑制し、キャッシュ・ヒット・ミスの防止を図りながら、キャッシュメモリを効率的に利用できることが期待できる。
【0138】
たとえば、第1優先度内の粒子についてはカットオフ領域内に存在し確実に相互作用ありなので計算を行ない、第2優先度内の粒子については相互作用の計算を行なわないが、カットオフ領域に近く次回の計算時点では相互作用計算を行なう可能性が高いと認識しておき、さらにカットオフ距離の大きな第3優先度内の粒子についてはカットオフ領域にやや近く、次回の計算時点では相互作用計算を行なう可能性があると認識しておくことができる。
【0139】
これは、プライオリティー付けの結果に基づき相互作用を計算する粒子へのメモリ配置が最適になるように力マトリックスの動的な構築を行なうことで、カットオフ距離内の相互作用計算対象の粒子のみが力マトリックスに配置されるので、カットオフ距離の設定値次第で、計算に用いるデータサイズ(相互作用パラメータデータ量)を、キャッシュメモリに記憶可能なサイズに調整することができ、計算速度の速いキャッシュメモリを有効に利用するようになる。その結果、キャッシュ・ヒット・ミスが起こり難くなり、消費電力が大幅に低減するし、高速・効率的な処理になる。
【0140】
<力分割並列処理;メモリ配置の適正化手法の具体例>
図13〜図15は、カットオフ距離のプライオリティー付けを利用したメモリ配置の適正化手法の具体例を説明する図である。
【0141】
ここで、図13は、図11に示した通常のカットオフ法に対して、図11に示したように、n段階(図では3段階)のプライオリティー付けを行なった計算領域を用いた場合における、ある計算時点でのノード#6での優先度をつけた粒子と力マトリックスとの関係を説明する図である。図14は、図13に基づき、図12において付けた優先度に応じて動的に力マトリックスを変形する手法を説明する図である。図15は、優先度に応じて動的に力マトリックスを変形する場合において、元の粒子IDと動的に変形(短縮)した力マトリックスでの粒子IDとの相関を説明する図である。
【0142】
図13に示すように、ノード#6では、粒子番号8〜15のそれぞれに対して、粒子番号4,5,12,13,20,21,28,29のそれぞれとの間の8×8個の組合せ(実際には自身との組合せとなる12−12と13−13は除く)の相互作用を解析することになる。そのうち、図12に示した3段階のプライオリティー付けに従う場合、図示した例では、8〜15番の各着目粒子に対して第1〜第3優先度エリア内に存在する粒子は以下の通りとなっている。
【0143】
先ず、8番の着目粒子に対しては、4,13番が第1優先度エリア内に存在し、5,20番が第2優先度エリア内に存在し、12番が第3優先度エリア内に存在し、その他は第3優先度エリア外に存在する。9番の着目粒子に対しては、5,13,21番が第1優先度エリア内に存在し、12,20番が第2優先度エリア内に存在し、その他は第3優先度エリア外に存在する。10番の着目粒子に対しては、5番が第1優先度エリア内に存在し、12番が第2優先度エリア内に存在し、13番が第3優先度エリア内に存在し、その他は第3優先度エリア外に存在する。11番の着目粒子に対しては、5番が第1優先度エリア内に存在し、13番が第2優先度エリア内に存在し、20番が第3優先度エリア内に存在し、その他は第3優先度エリア外に存在する。
【0144】
12番の着目粒子に対しては、4,13,21番が第1優先度エリア内に存在し、28番が第2優先度エリア内に存在し、20番が第3優先度エリア内に存在し、その他は第3優先度エリア外に存在する。13番の着目粒子に対しては、4,20,29番が第1優先度エリア内に存在し、5,12番が第2優先度エリア内に存在し、その他は第3優先度エリア外に存在する。14番の着目粒子に対しては、12,13番が第1優先度エリア内に存在し、5番が第2優先度エリア内に存在し、20番が第3優先度エリア内に存在し、その他は第3優先度エリア外に存在する。15番の着目粒子に対しては、12,13番が第1優先度エリア内に存在し、20番が第2優先度エリア内に存在し、その他は第3優先度エリア外に存在する。
【0145】
ここで、データ容量を削減するべく、ノード#6は、粒子番号(粒子ID)8〜15のそれぞれに対しての全ての組合せの相互作用を計算するのではなく、3段階にプライオリティー付けした各優先度エリアの内、第1優先度内の粒子について相互作用の計算を行なうことにする。
【0146】
このため、力マトリクス短縮部322は、図13に示すプライオリティー付けに応じて、図14に示すように、力マトリックスの動的な変形(短縮)を行なう。この力マトリクスの短縮は、8番〜15番の着目粒子に対して代用(仮想的な)の粒子ID0a〜7aを割り当てて、8×8の組合せの相互作用を計算することを示す力マトリクスを作成する。そして、8番〜15番の着目粒子ごとに、優先度の高い順に(本例では第1→第2→第3の順)、たとえば粒子番号0a側から順に各優先度エリア内の粒子を対応付けて配置していく。こうすることで、図14に示した例では、8番〜15番の着目粒子に関しては、図中に太線で囲んだ枠内の、代用粒子ID0a〜2aまでに、第1優先度エリア内の全粒子が確実に配置されることになる。
【0147】
つまり、太線で囲んだ枠は、ノード#6での相互作用の計算対象となる粒子ID8〜15に関して、矩形の力マトリクスにするに当たり、第1優先度エリア内の全粒子を含む最小範囲で、かつ、その限りにおいて、キャッシュ・ヒット・ミスを防止し得るキャッシュメモリ容量を最小にする範囲でもある。
【0148】
ノード#6は、代用粒子ID0a〜2aまでの部分(つまり第1優先度エリアの最小範囲)を相互作用の計算に用いる力マトリックスとする。このようにすることで、元の8×8の組合せの力マトリクスが、8×3の組合せの力マトリクスに短縮でき、データ容量が低減される。
【0149】
図15は、図14に対して、代用粒子ID0a〜7aと実際の粒子ID4,5,12,13,20,21,28,29を入れ替えて示したものであり、図13の力マトリクスを図14の力マトリクスへ短縮したときの、元の粒子IDと動的に変形した力マトリックスでの代用粒子IDとの相関が示されている。相関管理部324は、このような対応関係(相関関係)の情報を、所定の記憶媒体(アクセス速度の関係では一時記憶部238aの方が好ましい)に記憶して管理しておく。
【0150】
図6に示したステップS110以降では、図14に示す短縮した力マトリクスで使用される代用粒子IDについて、それと対応するカットオフ領域内の解析対象の実際の粒子IDとの対応関係(相関関係)を参照して処理を行なうことになる。たとえば、図14に示す短縮した力マトリクスにおいて、12−0aの相互作用を計算するときには、図15に示す対応関係に基づき、0a番の代用粒子IDが実際には4番の粒子IDであることを特定し、12−4の相互作用を計算する。
【0151】
図14や図15から分かるように、ノード#6では、できるだけ第1優先度エリア内の粒子のみを相互作用の計算対象とすることで、つまり代用粒子ID0a〜2aまでの部分を相互作用の計算に用いる力マトリックスとすることで、8−4,8−13,9−5,9−13,9−21,10−5,11−5,12−4,12−13,12−21,13−4,13−20,13−29,14−12,14−13,15−12,15−13の相互作用のみを計算すればよくなる。
【0152】
図14から明らかなように、相互作用の計算対象となる組合せが少なくなるので、キャッシュメモリに記憶させるデータ量が低減される。つまり、事実上、図14は、ノード#6のプロセッサが、実際にアクセスするメモリ配置を模式的に表していることになる。
【0153】
第1優先度エリアのサイズ(つまりカットオフ距離)を適正に設定することで、短縮した8×3の力マトリクスでのデータ量がキャッシュメモリ容量と同等(同一もしくは少し少ない)程度にする。このようにして、プライオリティー付けの結果に基づき相互作用を計算する粒子へのメモリ配置が最適になるように力マトリックスの動的な構築を行なうと、計算に用いるデータサイズ(相互作用パラメータデータ量)を、キャッシュメモリに記憶可能なサイズに調整され、高速アクセス可能で計算速度の速いキャッシュメモリが効率的に利用され、キャッシュ・ヒット・ミスが起こり難くなる。カットオフ距離を適正に設定して、力マトリクスを動的に変形して、メモリ使用量を抑制した力マトリックスを用いることで、キャッシュメモリが効率的に利用されることになる。
【0154】
なお、図中に太線で囲んだ枠(つまり第1優先度エリアの最小範囲)内の全ての粒子(その結果としての粒子間相互作用:以下同様)を処理対象とするのではなく、忠実に第1優先度エリア内の粒子のみを処理対象とすることもできる。この場合、相互作用の計算対象となる組合せがさらに少なくなるので、キャッシュメモリに記憶させるデータ量が一層低減される。しかしながらこの場合、8×3の組合せの力マトリクスの中で、着目粒子ごとに第1優先度エリア内の粒子のみを処理対象とする判別処理を要してしまい、その処理負荷が問題となる。
【0155】
力マトリクス短縮部322によって短縮された第1優先度エリア(カットオフ領域)内の粒子を確実に含む最小の矩形の力マトリクス内の全て、すなわち第1優先度エリアの最小範囲内の全ての粒子間相互作用を処理対象とするのが好ましいか、真に第1優先度エリア内の粒子間相互作用のみを処理対象とするのが好ましいかは、一義的ではない。しかしながら、一般的には、力分割法を適用した処理を行なう場合、第1優先度エリア外の粒子を多少含んでいても、矩形の力マトリクス内の全てを処理対象とした方が効率的であると考えられる。
【図面の簡単な説明】
【0156】
【図1】現像装置の一構成例を示す図である。
【図2】粒子挙動解析システムの一実施形態を示すブロック図である。
【図3】粒子挙動解析装置の一構成例を示すブロック図である。
【図4】粒子挙動解析装置を、電子計算機を用いて構成する場合のハードウェア構成の一例を示した図である。
【図5】力分割並列処理手順の一例を示したフローチャートである。
【図6】解析対象粒子を各ノードに割り当てる手法を説明する図である。
【図7】各ノードで求められた相互作用力の加算処理(特に力マトリクスの行方向について)を説明する図である。
【図8】行方向および列方向に計算した相互作用力を通信し合う必要のある他の特定プロセッサを説明する図である。
【図9】力分割法における力マトリクスを利用した際の通信対象のプロセッサを、ノード#6に着目して纏めた図である。
【図10】電子計算機の仕組みを適用した場合の数値演算処理部234とデータ記憶部238の構成例の詳細を示す図である。
【図11】カットオフ距離を設定した処理の基本を説明する図である。
【図12】複数段階のカットオフ距離を設定することでメモリ配置の適正化を行なう仕組みを説明する図である。
【図13】プライオリティー付けを行なった計算領域を用いた場合における、ある計算時点でのノード#6での優先度をつけた粒子と力マトリックスとの関係を説明する図である。
【図14】図13に基づき、図12において付けた優先度に応じて動的に力マトリックスを変形する手法を説明する図である。
【図15】力マトリックスの短縮を行なう際の、元の粒子IDと短縮した力マトリックスでの粒子IDとの相関を説明する図である。
【符号の説明】
【0157】
100…現像装置、101…収納容器、101a…開口部、102…現像剤、102a…キャリア粒子、102b…トナー粒子、130…感光体、140…現像ロール、142…マグネット、150…規制ブレード、160…攪拌搬送ロール、200…粒子挙動解析システム、202…粒子挙動解析装置、208…ネットワーク、208a…ネットワーク管理装置、210…指示入力装置、212…表示装置、220…データ入力部、230…データ処理部、232…データ受付部、234…数値演算処理部、236…出力データ処理部、238…データ記憶部、238a…一時記憶部(キャッシュメモリ)、238b…外部記憶装置(メインメモリなど)、240…情報提示部、250…分割処理部、310…相互作用演算部、312…累算部、320…カットオフ領域設定部、322…力マトリクス短縮部、324…相関管理部、330…相互作用パラメータデータ外部記憶装置、332…相互作用パラメータデータ一時記憶部、334…注目粒子データ記憶部

【特許請求の範囲】
【請求項1】
粒子を力マトリクスを使用した力分割法により分割し、それぞれの分割部分を各計算装置に割り当てる分割処理部と、
外部記憶装置よりも高速なアクセスが可能な、前記データ処理部での処理過程で使用されるデータを記憶する一時記憶部と、
前記力分割法により割り当てられた前記分割部分についてカットオフ距離を設定した処理を行なうように対処するとともに、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量が、前記一時記憶部の記憶容量に収まるようにカットオフ距離を調整するカットオフ領域設定部と、
前記カットオフ領域設定部が設定するカットオフ領域内の粒子に関して、前記分割部分についての元の力マトリクスを、前記カットオフ領域内の粒子を含むような力マトリクスに短縮する力マトリクス短縮部と、
前記カットオフ領域内の解析対象の実際の粒子と前記力マトリクス短縮部が短縮した力マトリクスにおける粒子とを対応付ける相関管理部と、
他の前記計算装置との間でデータ通信を行ないつつ、前記相関管理部により対応付けられている前記カットオフ領域内の解析対象の実際の粒子と前記力マトリクス短縮部が短縮した力マトリクスにおける粒子との対応関係を参照して、前記力マトリクス短縮部により短縮された力マトリクスで示される計算対象の相互作用力を求める相互作用演算部と
を備えたことを特徴とする粒子挙動解析装置。
【請求項2】
前記力マトリクス短縮部は、前記カットオフ領域設定部が設定するカットオフ領域内の粒子を確実に含む最小の矩形の力マトリクスに短縮する
ことを特徴とする請求項1に記載の粒子挙動解析装置。
【請求項3】
電子計算機に備えられる中央演算制御部を、
粒子を力マトリクスを使用した力分割法により分割し、それぞれの分割部分を各計算装置に割り当てる分割処理部と、
前記力分割法により割り当てられた前記分割部分についてカットオフ距離を設定した処理を行なうように対処するとともに、設定するカットオフ領域内の粒子に関しての相互作用計算用のデータ量が、外部記憶装置よりも高速なアクセスが可能な、前記データ処理部での処理過程で使用されるデータを記憶する一時記憶部の記憶容量に収まるようにカットオフ距離を調整するカットオフ領域設定部と、
前記カットオフ領域設定部が設定するカットオフ領域内の粒子に関して、前記分割部分についての元の力マトリクスを、前記カットオフ領域内の粒子を含むような力マトリクスに短縮する力マトリクス短縮部と、
前記カットオフ領域内の解析対象の実際の粒子と前記力マトリクス短縮部が短縮した力マトリクスにおける粒子とを対応付ける相関管理部と、
他の前記計算装置との間でデータ通信を行ないつつ、前記相関管理部により対応付けられている前記カットオフ領域内の解析対象の実際の粒子と前記力マトリクス短縮部が短縮した力マトリクスにおける粒子との対応関係を参照して、前記力マトリクス短縮部により短縮された力マトリクスで示される計算対象の相互作用力を求める相互作用演算部と
して機能させることを特徴とする粒子挙動解析用のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2008−269443(P2008−269443A)
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願番号】特願2007−113707(P2007−113707)
【出願日】平成19年4月24日(2007.4.24)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】