| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Fortran > [Tools] Использование OpenMP в Fortran |
| Автор: OlikFleur 25.1.2011, 19:28 | ||||
| Здравствуйте! Пытаюсь подключить заголовочный файл для распараллеливания вычислений по потокам. Пыталась подключать omp_lib.f. Вот код, с помощью которого я подключаю заголовочный файл:
В ответ компилятор выдает ошибки:
Пишу на Fortran под Visual Studio 2005 с использованием компилятора Intel Visual Fortran Compiler 11.0.074. Подскажите, пожалуйста, почему компилятор ругается на стандартную библиотеку и как с этим справиться? Заранее спасибо! |
| Автор: FCM 25.1.2011, 21:52 |
| По умолчанию в Фортране "Сишные" препроцессорные #-директивы могут не обрабатываться. (Для этого в Intel надо использовать fpp-препроцессор) Можно попробовать так !DEC$ IF DEFINED ( _OPENMP ) INCLUDE 'omp_lib.h' !DEC$ ENDIF Еще можно попробовать вместо INCLUDE ... USE OMP_LIB ( возможно для OPENMP необходима опция компилятора - что-нибудь типа /Qopenmp) |
| Автор: OlikFleur 26.1.2011, 19:12 | ||||
| Спасибо, FCM! Сделала так:
Теперь omp_lib вроде бы подключается, но все равно не воспринимает функции этой библиотеки:
|
| Автор: FCM 27.1.2011, 08:32 |
| 1) Должно быть omp_lib.h, а не omp_lib.f. (а лучше просто USE OMP_LIB) 2) Нужно зайти в свойства проекта и во вкладке Fortran/Language и в пункте Process OpenMP Directives выставить Generate Parallel Code (что соответствует ранее упомянутой опции компиялтора /Qopenmp ) |
| Автор: OlikFleur 27.1.2011, 11:37 |
| FCM, спасибо, теперь все работает! |
| Автор: FCM 22.2.2011, 10:39 | ||
| PS При использовании OpenMP в Фортране два символа !$ заменяют условную (т.е. при условии определенности макроса _OPENMP) компиляцию . Например,
|
| Автор: OlikFleur 28.2.2011, 23:51 |
| Большое спасибо! Очень полезное замечание! |