Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Работа с Intel Fortran через Visual Studio 2003 и не только

Автор: akaGM
Дата сообщения: 26.01.2012 12:57
Andrew10

Цитата:
Threshold for Auto-Parallelization
Threshold for Vectorization
Первая, как я понимаю, связана с развертыванием циклов, а вторая?

по-моему, в большей степени с развёртыванием связана как раз вторая
а первая без /Qparall вообще игнорируется и больше связана именно с _параллельным_ вычислением циклов, с запуском циклов в своих трейдах...

ты всё-таки лучше у нас "дома" :) спроси...
Автор: Andrew10
Дата сообщения: 26.01.2012 15:10
akaGM

Повожусь еще сам, если не получится, спрошу "дома".
Спасибо!
Автор: Andrew10
Дата сообщения: 26.01.2012 22:25
Вопрос из моего поста на предыдущей странице решен: найдена ошибка, разумеется не в компиляторе, а в собственном коде
Забыл, что подключение модуля, в котором определены переменные, управляется директивами препроцессора. В результате подключался не тот модуль.

И на старуху бывает проруха
Автор: zeliboba1
Дата сообщения: 07.02.2012 19:48
[more] Здравствуйте!
Помогите, пожалуйста, разобраться с проблемой. возникла необходимость, использовать в программе на с++ библиотеку, написанную на фортране. в ходе освоения всего этого дела возникла проблема с COMMON блоком.
Суть: в с++ этот блок глобальных переменных не видать (хотя с функциями проблем не возникло) В интернете ответа не нашел.
Понимаю, что где-то простая глупая ошибка, но найти не выходит.
MS VS 2008 + IFC 11.0

Код:
*******************FORTRAN*******************
Subroutine F
!DEC$ ATTRIBUTES DLLEXPORT::F,/abc/
!DEC$ ATTRIBUTES ALIAS: '_F@0' :: F
!DEC$ ATTRIBUTES ALIAS: '_abc' :: /abc/

real*8 a
common /abc/ a
    
write(*,*) "Test!"
write(*,*) a
end

****************c++**************************
#include <iostream>
#pragma comment(lib,"fdll.lib")
using namespace std;

struct variables { double a; };

extern "C" {
    extern struct variables abc;
    void __stdcall F(); };

int main()
{
abc.a=1.0;
F();
return 0;
}

**********************************************

В итоге "Недопустимы внешний символ _abc".

В чем ошибка кроется? [/more]
Автор: Igorr
Дата сообщения: 07.02.2012 20:12
zeliboba1
Может Interoperability with C поможет?
Автор: zeliboba1
Дата сообщения: 07.02.2012 20:27
спасибо за совет.
Через BIND() пробовал делать - всё так же.
real*8 в фортране, соответсвует double в с++, вроде всё Ок... Не вижу ошибки
аналогичный код, на мой взгляд, у людей работает.
ALIAS пробовал и так и сяк задавать - безрезультатно.
Автор: zeliboba1
Дата сообщения: 08.02.2012 03:33
[more] [more] "Может Interoperability with C поможет?"
Igorr, помогло! и еше __declspec(dllimport) необходимо в описании структуры.
глупая ошибка, но почему почти ни в одной статье о смешивании фортрана и с++ нет упоминания ни об одном ни о втором, работает и так...

рабочая версия:
*********************************************
subroutine F
USE ISO_C_BINDING

COMMON /abc/ a
REAL(C_DOUBLE) :: a
BIND(C) :: /abc/

!DEC$ ATTRIBUTES DLLEXPORT::F,/abc/

a=12.34
write(*,*) "Test!"

end

*********************************************
#include <iostream>
#pragma comment(lib,"fdll.lib")
using namespace std;

extern "C" {
extern __declspec(dllimport) struct variables { double a; } abc;
void F();
}

int main()
{
F();
std::cout<<abc.a;
return 0;
}
********************************************** [/more]


ПРОБЛЕМА РЕШИЛАСЬ!
Дело было в настройках среды.
1) Разверните узел Свойства конфигурации и выберите пункт Общие. Справа, в области Значения по умолчанию для проекта установите для параметра Поддержка общеязыковой среды выполнения (CLR) значение Поддержка общеязыковой среды выполнения (/clr).
2) Свойства проекта -> Свойства конфигурации -> с/с++ -> предварительно скомпилированные заголовки -> не использовать [/more]
Автор: Andrew_1231
Дата сообщения: 17.08.2012 21:09
Доброго времени суток!
Пишу на Intel Visual Fortran 11.0 в среде VS 2008/ Ось Win 7.
При отладке кода программы с помощью Debug> Step Into......
для пошагового выполнения программы выдает окно с Кодом в каком-то непонятном виде..
(очень похоже на язык С#{как будто он его перевел} или асемблер,хотя код-то фортрановский),подскажите пожалуйста,как настроить этот Visualizer или еще что(может так проявляются ошибки интеграции IVF в VS 2008 ?-хотя при моём довольно длительном пользовании других не было...), так,чтобы был виден именно код на Фортране,
курсор выделял В ЭТОМ КОДЕ строку и выполнялись строки пошагово. Заранее большое спасибо за пояснения.
Автор: Andrew_1231
Дата сообщения: 18.08.2012 09:51
[more] Исходный код выглядит так:
--------------------------------------------------------------
program Simpson
!Переменные
integer n,j,n0,m
real :: d=2,t=4
real s1,s2,s3,x,y,h,I
!Основной модуль
write(*,"(A,\)")"Enter nignii predel integrirovania";read(*,*)a
write(*,"(A,\)")"Enter verhnii predel integrirovania";read(*,*)b
write(*,"(A,\)")"Enter chislo yzlov integrirovania";read(*,*)n
h=(b-a)/n;m=n/2; ................

-----------------------------------------------------------------

В отладчике Step into открывается это:

------------------------------------------------------------------
/***
*crt0.c - C runtime initialization routine
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
* This is the actual startup routine for apps. It calls the user's main
* routine [w]main() or [w]WinMain after performing C Run-Time Library
* initialization.
*
* With ifdefs, this source file also provides the source code for:
* wcrt0.c the startup routine for console apps with wide chars
* wincrt0.c the startup routine for Windows apps
* wwincrt0.c the startup routine for Windows apps with wide chars
*
*******************************************************************************/

#ifndef CRTDLL

#include <cruntime.h>
#include <dos.h>
#include <internal.h>
#include <process.h>
#include <stdlib.h>
#include <string.h>
#include <rterr.h>
#include <rtcapi.h>
#include <windows.h>
#include <awint.h>
#include <tchar.h>
#include <dbgint.h>
#include <locale.h>
#include <sect_attribs.h>

#if defined (_WIN64) && defined (_M_IA64)
#pragma section(".base", long, read)
__declspec(allocate(".base"))
extern

.....................................................
-----------------------------------------------------------------------------
Что это, как увидеть здесь Fortran ? Изменить надо какую-то настройку? [/more]
Автор: Harmfuly
Дата сообщения: 10.02.2013 02:00
Здравствуйте!
Помогите, пожалуйста! уже замучилась с установкой библиотеки IMSL
У меня стоит VS 2008, Intel(R) Visual Fortran 11.0.072 и IMSL 7.0
НО библиотека почему-то не работает
Ошибки, которые выдает:

Ошибка    1     error #5102: Cannot open include file 'link_f90_static_imsl.h'    D:\Console1\Console1\Console1.f90    4    
Ошибка    2    Compilation Aborted (code 1)    D:\Console1\Console1\Console1.f90    1    

путь в include правильный прописан
Автор: karakurt2
Дата сообщения: 10.02.2013 10:15
Harmfuly
там загаловочные файлы лежат в двух каталогах, используйте опции компилятора, которые указывают на каталоги для статической сборки, например, вот так:

Цитата:

F90FLAGS = /F6000000 /fpe:3 /Qopenmp /w /I:"C:\Program Files (x86)\VNI\imsl\fnl700\winin111e64\include\static" /nologo

LINK_FNL_STATIC=imsl.lib imslsuperlu.lib imslhpc_l.lib imsllapack_vendor.lib imslblas_vendor.lib imsls_err.lib imslmpistub.lib \
mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5mt.lib lmgr.lib kernel32.lib user32.lib netapi32.lib advapi32.lib \
gdi32.lib comdlg32.lib comctl32.lib wsock32.lib libcrvs.lib libFNPload.lib libsb.lib /link /force:multiple

BUILDFLAGS=$(F90FLAGS) /debug:none /gen-interfaces /warn:interfaces /MT


Автор: Harmfuly
Дата сообщения: 10.02.2013 11:57
То есть в include путь вот так прописать C:\Program Files (x86)\VNI\imsl\fnl700\winin111e64\include\static" /nologo?
Автор: karakurt2
Дата сообщения: 10.02.2013 16:27
Harmfuly
совершенно верно, но без /nologo.
Автор: Harmfuly
Дата сообщения: 10.02.2013 22:54
сделала так, как вы сказали.. но всё равно те же самые ошибки..
Автор: karakurt2
Дата сообщения: 11.02.2013 03:21
Harmfuly
ссылку на файл link_f90_static_imsl.h следует заменить на link_fnl_static_imsl.h и исходных текстах.
Автор: Harmfuly
Дата сообщения: 11.02.2013 14:08
всё равно те же ошибки. ничего не меняется.
Автор: karakurt2
Дата сообщения: 11.02.2013 17:43
Harmfuly
Ну что ж, показывайте файл Console1.f90
Автор: boryaboris
Дата сообщения: 22.04.2013 02:16
Доброго времени суток!
Столкнулся с проблемой - при отладке программы не срабатывают брейкпоинты, то есть программа работает, всё дебажится, но брейкпоинты в любом месте, даже в программе из пары строчек не срабатывают. При тыканьи на них курсором, вижул студия пишет: "This breakpoint will not be hit. No symbols have been loaded for this document".
12 фортран, интегрирован в VS 2008, c 11 версией то же самое.
Говорят, дело может быть в некоем pdb файле, но где он и что такое я так и не разобрался.
Жизнь в тягость без нормального дебага, помогите, и спасибо заранее.
Автор: nandr
Дата сообщения: 09.12.2013 08:45
По просьбе тестя скачал с Интеловского сайта (после заполнения формы регистрации) триальную версию Intel Visual Fortran Studio XE 2013 SP1. Установил ее. В "Программах" появилась папка "Intel Parallel Studio XE 2013". Но ни внутри ее, ни за ее пределами я не вижу заветной строчки для запуска Фортрана. Как его вызывать?

С Фортраном раньше не работал (ну, если не считать ЕС/СМ ЭВМ ).
Автор: Igorr
Дата сообщения: 09.12.2013 16:51
nandr

Цитата:
я не вижу заветной строчки для запуска Фортрана. Как его вызывать?

В самом установленном фортране есть файл типа "\Program Files (x86)\Intel\Composer XE 2013 SP1\Documentation\en_US\get_started....htm" - он приводит к нужной информации, напр. http://software.intel.com/en-us/node/463140
Автор: SuperAlexis
Дата сообщения: 09.12.2013 19:48
А как с постоянной лицензией для Intel Visual Fortran Studio XE 2013 SP1 UPD1?
Автор: nandr
Дата сообщения: 09.12.2013 20:35

Цитата:
http://software.intel.com/en-us/node/463140

Так там всё про "Command Line"!
А что - его теперь нельзя использовать в виде среды, как было в DIGITAL Visual Fortran Professional v6.0?
Автор: Igorr
Дата сообщения: 09.12.2013 20:55
nandr

Цитата:
Так там всё про "Command Line"! А что - его теперь нельзя использовать в виде среды, как было в DIGITAL Visual Fortran Professional v6.0?


Пройдитесь по ссылкам:

Цитата:
Igorr
В самом установленном фортране есть файл типа "\Program Files (x86)\Intel\Composer XE 2013 SP1\Documentation\en_US\get_started....htm" - он приводит к нужной информации, напр.
http://software.intel.com/en-us/node/463014

А если хотите DIGITAL Visual Fortran Professional v6.0, так можете и его установить (напр. в дополнение к интеловскому) - ставится на любой виндоус.
Автор: nandr
Дата сообщения: 09.12.2013 21:03

Цитата:
А если хотите DIGITAL Visual Fortran Professional v6.0, так можете и его установить (напр. в дополнение к интеловскому) - ставится на любой виндоус.

Нет, речь идет как раз о замене DIGITAL Visual Fortran Professional v6.0 на Интеловский - в связи с тем, что DIGITAL вроде как не ставится на Win7.
Автор: Igorr
Дата сообщения: 09.12.2013 21:12
nandr

Цитата:
DIGITAL вроде как не ставится на Win7.


Цитата:
Igorr
А если хотите DIGITAL Visual Fortran Professional v6.0, так можете и его установить (напр. в дополнение к интеловскому) - ставится на любой виндоус.

Почитайте здесь http://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=4689&start=260
Автор: wannahead
Дата сообщения: 21.03.2014 22:51
Подскажите пожалуйста, стоит
MS Visual Studio 2013 Ultimate + Intel Fortran composer XE 2013 SP 1

Если программа написана без ошибок то все работает ОК.
Если в программе ошибка то выкидывает из MS Studio c ошибкой что, что то пошло не так ... и студия закрывается, подскажите что может быть... Спасибо!
_http://i57.tinypic.com/33ml6id.jpg
Автор: wannahead
Дата сообщения: 22.03.2014 10:17
В продолжение предыдущего поста, отчет из "Просмотр событий Windows"

Имя сбойного приложения: devenv.exe, версия: 12.0.21005.1, метка времени: _____________
Имя сбойного модуля: ntdll.dll, версия: 6.2.9200.16578, метка времени: __________
Код исключения: 0xc00000fd
Смещение ошибки: 0x0006b40e
Идентификатор сбойного процесса: 0xf5c
Время запуска сбойного приложения: _________________
Путь сбойного приложения: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
Путь сбойного модуля: C:\Windows\SYSTEM32\ntdll.dll
Идентификатор отчета: _______________________________
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:
Автор: 147741
Дата сообщения: 03.10.2015 22:12
Добрый день.
Пытаюсь установить CVF 6.6 на Windows XP x64 (SP2).
Не удается запустить setup CVF. WOW64 конфликтует с setup.
В x32 все работает без проблем.

Подскажите, есть ли способ установки CVF 6.6 в Windows XP x64 ?
Автор: XPEHOMETP
Дата сообщения: 04.10.2015 11:57
Вся фишка в том, что setup там 16-битный, и на х64 не запустится никогда. Я некогда устанавливал на виртуальной машине.
Автор: VitaliM
Дата сообщения: 27.10.2015 10:58
Про Windows XP x64 сказать не могу, но на Windows 7 x64 у меня CVF 6.6 работает и отладка тоже, почти. Танцы с бубном заключались в следующем. Надо сперва поставить Visual Studio 6.0 (выбрать C++) со всеми сервис-паками, потом ставить CVF, но запускать среду все равно через запускач от Visual Studio C++. Что значит отладка "почти". Это проблемы при снятии отлаживаемого процесса из отладчика. Он (процесс) все равно висит в памяти, пока не закроешь студию. В остальном все работает. Уже 2 года без вылетов. Может быть проблема отладки происходит из-за того что приходится отлаживать только dll на фортране, хост приложение написано на Delphi. Если есть вопросы, задавайте...

Страницы: 123456789101112131415161718192021

Предыдущая тема: Относительное перемещение мыши


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.