シェアウェア:Mol/Dsl について

  • Mol は Windows .Net 用大規模数値計算クラスライブラリ-です。
  • Dsl は Windows .Net 用数値シミュレーションクラスライブラリ-です。
  • 個人の非営利目的に限り、無償で使用可能です。
  • 営利利用にはライセンスを購入してください(個人長期利用も…)。
[Mol/Dsl は高速大規模数値計算ライブラリーインテル® MKLを利用します。]
  1. MKL をダウンロードしてから手順に従ってインストールしてください(MKL の入手方法等、無償版有)
  2. MKL をダウンロードせずに Mol/Dsl を利用する場合は、
    以下の(MKL をスタティックにリンクした)DLLをダウンロードしてください。
    ※ 上記スタティック DLL を使用すれば、別途、MKL を用意する必要はありません。
    ※ しかし、計算速度(インテル® MKL の制限)が若干劣ります。また、最新 MKL に追随していません。




 Mol (Math Object Library) for .Net

✓ .Net 上で C# 等による数値計算を強力にサポートするクラスライブラリー

各計算はCPUに最適化されたインテル® MKLを直接利用することでマルチコア、マルチスレッド、巨大データに対応した圧倒的高速性能を実現しています。

✓詳細とダウンロード
✓プログラム例(C#)と解説

 Mol による線形連立方程式解法例

 // 計算例:密な一般行列で A*X = B を解く
 int n = 2000; // 行列のサイズ = 2000 x 2000
 // 定数行列
 MatrixDenseGeneralDouble B = new MatrixDenseGeneralDouble(n, 10);   
 for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= 10; ++j) B[i, j] = 1.0;
 }
 // 係数行列
 MatrixDenseGeneralDouble A = new MatrixDenseGeneralDouble(n, n);
 for (int i = 1; i <= n; ++i) {
    A[i, i] = 2;
    if (i > 1) A[i - 1, i] = -1;
    if (i < n) A[i, i + 1] = -1;
 }
 DateTime time = DateTime.Now;
 LuSolver lu = LuSolver.Create(A);          // 行列 A を因子分解する。
 MatrixDenseGeneralDouble X = lu.Solve(B);  // A*X = B を解く
 Console.WriteLine("計算時間 = " + (DateTime.Now - time));
 MatrixDenseGeneralDouble D = A * X - B;
 Console.WriteLine("Norm =" + D.NormE());   // A * X - B を確認
※一般行列以外は計算時間・メモリ使用量を最小にするため複雑・特殊な内部構造を持っています(が使用方法は同じです)。

 Dsl (Digital Simulation Library) for .Net

✓ .Net 対応の汎用数値シミュレーション・クラスライブラリー
  • 変数相互の計算式定義・目的変数値等を指定 ==> 自動的に連立方程式・計算順序などを構築
  • 値を知りたい変数指定 ==> 不必要な変数・計算式を除外
  • 連立常微分方程式 ==> 動的シミュレーション
  • 常微分方程式の微係数をゼロ指定 ==> 連立方程式を構築して「定常状態」を直接計算
  • 計算結果の折れ線グラフ描画

✓詳細とダウンロード
✓プログラム例(C#)と解説



 動作・開発環境・インストール

[開発環境]
 Mol、Dsl の利用環境
  • Microsoft .Net Framework ® version 4.0 以上が動作するコンピューター環境(Microsoftの WEB サイト、詳細・ダウンロード)。
  • プログラム開発環境:Visual Studio
  • ソルバー以外の Dll は、上記開発環境で、「参照設定」してください(付属の例題を参考にしてください)。
[ソルバー]
 ソルバーは MKL を呼び出す非 .Net アプリケーション(DLL)で以下の区別があります。※1

ソルバー説明 
32 bit ダイナミックリンク版('Mol.C++D32.dll') MKLをダイナミックリンクした 32 ビットバージョン
64 bit ダイナミックリンク版('Mol.C++D64.dll') MKLをダイナミックリンクした 64 ビットバージョン※2
(64 ビット OS でのみ稼働)
前記 Mol の連立方程式解法例実行結果:
   計算時間 = 00:00:00.1248003
※Intel CORE i7-2600S 2.8GHz 8GBメモリ
※本例はマルチスレッドに適した例
  • ※1) 32ビット、64ビット環境に応じてどちらかが Mol.C++.dll という名前でコピーされます(手動でコピーしてもかまいません)。
  • ※2) 64ビット版は、int型が32ビットで、long型とポインタが64ビット幅の LP64 データモデルです。 int型も64ビット幅になる ILP64 データモデルはサポートしていません。
  • ※3) スタティックリンク版も用意されています(別途ダウンロードしてください)。

[インストール]
 Mol、Dsl にインストーラーは付属しません。  (✓Let's 'C# で数値計算' 参照)

  • 付属の DLL を開発環境に応じたアプリケーションと同じフォルダにコピーしてください。
  • 複数あるソルバーのうち意図する一つを Mol.C++.Dll という名前でコピーしてください。
    全ソルバーをそのままコピーした場合、実行環境に応じたソルバーが自動選択されます。
  • Visual Studio で編集時の詳細なツールヒントを表示したい場合、同梱の XML ファイル(Mol.Net.XML等)をプロジェクトに追加してください(実行時には必要ありません)。
  • インストールプログラムは付属しませんので、アンインストールは手動で削除してください。


 ライセンスと価格

Mol/Dsl はクラスライブラリー(DLL)です。ダウンロードした評価版を正式版として利用するには以下のライセンスを購入・設定する必要があります。

 
ライセンス名称説明  価格(税込)
個人ライセンス 非営利目的・個人利用に限定。開発した Dsl・Mol を使用するソフトウェアを第三者に販売・譲渡・配布・貸与することはできません。   1,000円
商用ライセンス 開発したソフトウェアと Dsl と Mol 付属 DLLを第三者に販売・譲渡・配布することができます。   100,000円
※ライセンスは無期限に有効です。
※ライセンスが設定されてない、または誤ったライセンスキーを設定した場合は評価版とみなされます。

ライセンスの詳細はソフトウェア使用許諾契約書をお読みください。

 ご購入方法

ご購入の手順は次のようになります。
  1. ダウンロード & 試用:
    • 解く問題のサイズ等に制限はありません(評価版であるメッセージが表示されます)。
    • この時点で、ご利用目的に合致するか、ご判断願います。
    • 疑問・質問等は「お問い合わせフォーム」でお受けします。

  2. ご購入:

    銀行振り込みで、手順は以下の通りになります。

    • まず、こちらから以下の情報をお知らせください。
      • ご連絡(返信)用のメールアドレス
      • お名前、製品名、ご購入ライセンス種別等の基本情報
    • お知らせいただいたメールアドレスに振込先の銀行名・口座番号等を返信いたします。
    • 以後のライセンスキー等もお知らせいただいたメールアドレスに送信いたします。
    • 代金振り込みとライセンスキー受領:
      ・入金確認・正式ユーザーとして登録後にライセンスキーをご連絡(メール送信)いたします。
      ・振り込み時には、お客様を特定できる情報を付記してください。
      ・代金振り込み前にソフトウェア使用許諾契約書をお読みください。