![]() |
|
|
![]()
|
|
| OlikFleur |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 23.10.2009 Репутация: нет Всего: нет |
Здравствуйте!
Пытаюсь подключить заголовочный файл для распараллеливания вычислений по потокам. Пыталась подключать omp_lib.f. Вот код, с помощью которого я подключаю заголовочный файл:
В ответ компилятор выдает ошибки:
Пишу на Fortran под Visual Studio 2005 с использованием компилятора Intel Visual Fortran Compiler 11.0.074. Подскажите, пожалуйста, почему компилятор ругается на стандартную библиотеку и как с этим справиться? Заранее спасибо! |
||||
|
|||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
По умолчанию в Фортране "Сишные" препроцессорные #-директивы могут не обрабатываться.
(Для этого в Intel надо использовать fpp-препроцессор) Можно попробовать так !DEC$ IF DEFINED ( _OPENMP ) INCLUDE 'omp_lib.h' !DEC$ ENDIF Еще можно попробовать вместо INCLUDE ... USE OMP_LIB ( возможно для OPENMP необходима опция компилятора - что-нибудь типа /Qopenmp) Это сообщение отредактировал(а) FCM - 26.1.2011, 11:05 |
|||
|
||||
| OlikFleur |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 23.10.2009 Репутация: нет Всего: нет |
Спасибо, FCM!
Сделала так:
Теперь omp_lib вроде бы подключается, но все равно не воспринимает функции этой библиотеки:
|
||||
|
|||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
1) Должно быть omp_lib.h, а не omp_lib.f.
(а лучше просто USE OMP_LIB) 2) Нужно зайти в свойства проекта и во вкладке Fortran/Language и в пункте Process OpenMP Directives выставить Generate Parallel Code (что соответствует ранее упомянутой опции компиялтора /Qopenmp ) |
|||
|
||||
| OlikFleur |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 23.10.2009 Репутация: нет Всего: нет |
FCM, спасибо, теперь все работает!
|
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
PS
При использовании OpenMP в Фортране два символа !$ заменяют условную (т.е. при условии определенности макроса _OPENMP) компиляцию . Например,
Это сообщение отредактировал(а) FCM - 22.2.2011, 10:40 |
|||
|
||||
| OlikFleur |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 23.10.2009 Репутация: нет Всего: нет |
Большое спасибо! Очень полезное замечание!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Fortran | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |