Объем памяти в SQL Server 2008 и привязках LAPACK

#sql-server-2008 #memory #lapack #chunks

#sql-server-2008 #память #lapack #фрагменты

Вопрос:

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

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

Ответ №1:

LAPACK — это библиотека линейной алгебры, написанная на Fortran или C (не помню, на каком именно). Чтобы использовать его из другой среды программирования, вам нужна оболочка для библиотеки, иногда называемая «Привязками».

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

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

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

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

Комментарии:

1. Но, есть ли какой-либо пример, который превращает результирующую таблицу в фрагмент памяти?, или что-то в этомроде… Итак, я бы вызвал CLR Store Procedure напрямую, и LAPACK прочитал таблицу?

2. сначала я получаю матрицу (результирующую таблицу, как в примере), полученную из процедуры хранения в SQL Server 2008, эту «матрицу», я хочу напрямую указать на память и манипулировать матрицей, но я хочу использовать МОЩНОСТЬ LAPACK, поэтому, как вы говорите, «LAPACK обеспечит эту функциональность», Но я не знаю, с чего начать, не могли бы вы, пожалуйста, помочь мне, выполнив шаги для выполнения?

3. Вероятно, лучше всего использовать RTFM здесь. Руководство можно найти по адресу netlib.org/lapack/lug . Некоторые примеры можно найти по адресу people.sc.fsu.edu /~jburkardt/f_src/lapack/lapack.html . Google здесь ваш друг — в Интернете есть куча ресурсов.