Кусок памяти в привязках SQL Server 2008 и LAPACK - PullRequest
0 голосов
/ 27 апреля 2011

Что это такое LAPACK bindings Как я могу использовать их для чтения этого фрагмента памяти?

  • Как сделать блок памяти, содержащий эту матрицу "таблица" в SQL Server 2008?
  • Если это невозможно, возможно указатель памяти, содержащий матрицу?

1 Ответ

1 голос
/ 27 апреля 2011

LAPACK - это библиотека линейной алгебры, написанная на Фортране или Си (не помню, какая именно).Чтобы использовать его из другой среды программирования, вам нужен обертка для библиотеки, иногда называемая «Bindings».

Мне не ясно, хотите ли вы выполнить вычисления и использовать результаты в рамках хранимой процедуры, илипросто хотите извлечь данные из базы данных и выполнить вычисления на ней.

Если вам нужно использовать LAPACK из хранимой процедуры, наиболее вероятным вариантом будет создание хранимой процедуры CLR (то есть C #).) который оборачивает ваш код, который использует библиотеку LAPACK.Вам может понадобиться создать обертку (возможно, с использованием управляемого C ++), чтобы использовать ее из .Net.LAPACK обеспечит функциональность, которая позволит вам выделить эту память и вернуть ей указатель или дескриптор.

Хранимая процедура CLR может представлять результаты (например, в виде табличной функции), которые будут возвращать результаты вычисления матрицы в форме, которую можно использовать в запросе.

Если вы хотите извлечь данные для использования в LAPACK, вам нужно запросить данные из базы данных, а затем загрузить их в матрицу («кусок памяти»).Вы можете сделать это на любом языке, который может связываться с LAPACK и читать из базы данных.Для этого вам нужно иметь оболочку, которую вы можете использовать для построения матрицы с данными из вашего запроса.Если это не обязательно должно находиться в базе данных, вы можете написать это на любом языке с привязками LAPACK и ODBC.Если он действительно должен находиться в базе данных (по возможности избегайте этого), то вы можете использовать хранимую процедуру CLR почти так же, как описано выше.

...