BBOリートベルトの仕組み#

システム概要図#

system diagram

仕組み#

GSAS-IIの利用#

BBOリートベルトでは、リートベルト解析エンジンにGSAS-IIを利用しています。 粉末リートベルト解析機能しか利用していません。 GSAS-IIによる制限があるところもあり、たとえばプロファイル関数は非対称擬フォークト関数以外の選択肢はありません。

Optunaによる解析条件探索#

機械学習ハイパーパラメータ最適化ツールOptunaを使って学習しながら解析条件を探索します。

解析タスクの非同期処理#

BBOリートベルトサーバーでは解析は非同期で行われます。 すなわち、解析は一旦タスクとしてタスクキューに格納され、別ノードであるワーカーサーバーがタスクを順番に処理していきます。

タスク処理の優先順位#

優先順位の異なるタスクキューが複数あり、優先順位の高いキューのタスクから順番に処理されていきます。 トライアル数の多い解析の場合は、後のトライアルほど優先順位の低いキューに入ります。 また、グループや使用頻度によってどのキューに入れるかの規則が異なることがあります。 これにより、他のユーザーに気遣うことなく解析タスクを実行することができ、逆に他のユーザーの使用状況が過度に影響することもありません。

ワーカーサーバーの自動起動#

ワーカーサーバーは常に稼働しているわけではありません。 解析タスクがキューに入れられるタイミングで、起動していなければ起動します。 起動にはおおよそ5分かかります。 シャットダウンについては、3時間おき(0時、3時、6時、…)にワーカーがタスク処理をしているかどうかチェックが入り、していなければ自動終了します。 これにより、少ないコストで大きな計算資源を割り当てることができます。