0

它是什么LAPACK bindings我如何使用它们来读取那块内存?

  • 如何制作包含此矩阵“表”的内存块SQL Server 2008
  • 如果那不可能,包含矩阵的内存指针是否可行?
4

1 回答 1

1

LAPACK 是一个用 Fortran 或 C 编写的线性代数库(不记得是哪个)。要在不同的编程环境中使用它,您需要库的包装器,有时称为“绑定”。

我不清楚您是要进行计算并在存储过程中使用结果,还是只想从数据库中提取数据并在其上运行计算。

如果您需要在存储过程中使用 LAPACK,最有可能使用的选项是创建一个 CLR 存储过程(即 C#)来包装使用 LAPACK 库的代码。您可能需要构建一个包装器(可能使用托管 C++)才能从 .Net 中使用它。LAPACK 将提供允许您分配此内存并返回指针或句柄的功能。

CLR 存储过程可以呈现结果(例如,作为表值函数),该结果将以可以在查询中使用的形式返回矩阵计算的结果。

如果要提取数据以在 LAPACK 中使用,则需要从数据库中查询数据,然后将其加载到矩阵中(“内存块”)。您可以使用任何既可以绑定到 LAPACK 又可以从数据库中读取的语言来执行此操作。为了做到这一点,您需要有一个包装器,您可以使用它来使用查询中的数据构造矩阵。如果这不需要驻留在数据库中,那么您可以使用任何具有 LAPACK 和 ODBC 绑定的语言编写它。如果它确实需要驻留在数据库中(如果可能,请避免这种情况),那么您可以以与上述大致相同的方式使用 CLR 存储过程。

于 2011-04-27T15:23:08.543 回答