2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 
Сообщение10.12.2007, 13:44 
Заслуженный участник
Аватара пользователя


20/01/06
1037
Еще один ламерский вопрос по MKL. Что такое workspace array и зачем он нужен? Например лапаковская функция:

Код:
?getrf(n,a,lda,ipiv,work,lwork,info)


Непонятно предназначение массива
Код:
work
, в мануале написано, что это workspace array, он вроде входной, как его задавать?

Спасибо

 Профиль  
                  
 
 
Сообщение10.12.2007, 15:27 


05/08/07

194
Freude писал(а):
Еще один ламерский вопрос по MKL. Что такое workspace array и зачем он нужен? Например лапаковская функция:

$?getrf(n,a,lda,ipiv,work,lwork,info)$

Непонятно предназначение массива $work$, в мануале написано, что это workspace array, он вроде входной, как его задавать?

Спасибо

Какой язык программирования Вы собираетесь изучать?

 Профиль  
                  
 
 
Сообщение10.12.2007, 15:39 
Заслуженный участник
Аватара пользователя


20/01/06
1037
Прогу пишу на Fortran90.

 Профиль  
                  
 
 
Сообщение10.12.2007, 15:42 


05/08/07

194
Freude писал(а):
Прогу пишу на Fortran90.

А я на C.

 Профиль  
                  
 
 
Сообщение10.12.2007, 15:46 
Заслуженный участник
Аватара пользователя


20/01/06
1037
По-моему никакой разницы :) Я имею в виду по отношению к вопросу. С лучше, привильно делаете.

Добавлено спустя 3 минуты 48 секунд:

Кажется разобрался, его можно задать любым, потом прописать
Код:
lwork=-1
, и subroutine сам его переопределит как надо, правильно?

 Профиль  
                  
 
 
Сообщение11.12.2007, 00:09 
Заслуженный участник


15/05/05
3445
USA
Freude писал(а):
Что такое workspace array и зачем он нужен?... как его задавать?

work - это рабочий массив, используемый внутри подпрограмы. Такая техника типична для Фортрана и берет начало в глубокой древности, когда в Фортране еще не было динамического распределения памяти. Поэтому рабочие массивы обеспечивались именно вызывающей программой.
Если задать lwork = -1, то подпрограмма НЕ вычисляет ничего, кроме требуемого размера work:
Цитата:
If lwork = -1, then a workspace query is assumed; the routine only calculates the optimal size of the work array, returns this value as the first entry of the work array, and no error message related to lwork is issued by xerbla.
See Application Notes below for the suggested value of lwork
Получив требуемое lwork в work(1), нужно повторно обратиться к подпрограмме, задав рабочий массив и его длину (>0).
Посмотрите Application Notes в http://www.intel.com/software/products/mkl/docs/WebHelp/lle/functn_getri.html.

 Профиль  
                  
 
 
Сообщение11.12.2007, 12:01 
Заслуженный участник
Аватара пользователя


20/01/06
1037
Спасибо за информацию.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group