0

LAPACK bindingsそれらを使用してメモリのチャンクを読み取るにはどうすればよいですか?

  • この行列「テーブル」を含むメモリチャンクを作成するにはどうすればよいSQL Server 2008ですか?
  • それが不可能な場合、マトリックスを含むメモリポインタは実行可能ですか?
4

1 に答える 1

1

LAPACKは、FortranまたはCで記述された線形代数ライブラリです(どちらかを思い出せません)。別のプログラミング環境から使用するには、ライブラリのラッパーが必要です。これは「バインディング」と呼ばれることもあります。

計算を実行して結果をストアドプロシージャ内で使用するのか、それともデータベースからデータを抽出して計算を実行するのかがわかりません。

ストアドプロシージャ内からLAPACKを使用する必要がある場合、使用する可能性が最も高いオプションは、LAPACKライ​​ブラリを使用するコードをラップするCLRストアドプロシージャ(つまりC#)を作成することです。.Netからラッパーを使用するには、ラッパーを作成する必要がある場合があります(マネージC ++を使用している可能性があります)。LAPACKは、このメモリを割り当てて、ポインタまたはハンドルを返すことができる機能を提供します。

CLRストアドプロシージャは、クエリ内で使用できる形式でマトリックス計算の結果を返す結果を(たとえば、テーブル値関数として)表示できます。

LAPACK内で使用するデータを抽出する場合は、データベースからデータをクエリしてから、それをマトリックス(「メモリのチャンク」)にロードする必要があります。これは、LAPACKにバインドし、データベースから読み取ることができる任意の言語から実行できます。これを行うには、クエリのデータを使用してマトリックスを作成するために使用できるラッパーが必要です。これがデータベース内に存在する必要がない場合は、LAPACKバインディングとODBCバインディングの両方を使用して任意の言語でこれを記述できます。データベース内に常駐する必要がある場合(可能であればこれは避けてください)、上記とほぼ同じ方法でCLRストアドプロシージャを使用できます。

于 2011-04-27T15:23:08.543 に答える