Оптимизация? Конечно, каждый сталкивался с данной задачей при разработке своих, сколь-нибудь значительных, требующих определённых вычислений, приложений. При этом способов оптимизировать код существует огромное множество, и, как следствие, различных путей сделать это в автоматическом режиме с помощью опций компилятора. Вот здесь и возникает проблема – как выбрать то, что нужно нам и не запутаться?
I have a old scientific Fortran program that made liberal use of allocating one very large array in the main routine and then chopping up the array (memory) for smaller use by passing multiple chunks to Subroutines by using an offset. The array in the main program was of type real or double precision and in the receiving routine it could be defined as integer, real or double precision. Also, in the receiving program the dimension of the array could be a single dimension or multi-dimension.
I am using Visual studio 2008 and FORTRAN 9.1 to compile and link and FORTRAN code to ASPEN plus, now while before I created FORTRAN codes in other version of FORTRAN. There is no problem in compiling the existing FORTRAN codes and link them to ASPEN plus by this combination of versions, however I cannot find how I can create new FORTRAN codes in the current version of Visual studio!'
Does any one has any idea about this?
I have successfully got a project going with VS2010 C/C++ and Intel Fortran thanks to help here but I want to compile essentially the same code on a second machine. This machine did not have VS C/C++ so we purchased Intel C/C++ and Intel Fortran. Both installed okay, but I am not having any luck getting the C++ into the fortran project at all. I can add the wrap.c to a fortran project, but it doesnt appear to get compiled. I cant create a C/C++ static library either when I have created a fortran solution.
I am trying to use Intel Visual Fortran (IVF) and Visual Studio 2013 to run with my code which was run on Digital Visual Fortran (DVF).
The code includes two files, which are main program (main.f90) and subroutine, respectively. I can run the code on DVF correctly.
When I compiled the code with IVF, however, I got two problems:
1) How to compile fortran code without project?
I found that ifort (and gfortran) create a temporary for the following array assignment:
presumably because of the possibility that inc is less than zero. The result is stored in a stride 1 temporary and then copied to the destination, all reporting vectorization.
If I write
do i= 1,n-inc,inc
I was wondering if there is a function which performs a permutation of the elements of a vector, in order to avoid the classic method consisting of defining a permutation matrix (which is filled with 1 or 0) and then calculating the product of this permutation matrix by the fixed vector.
For example, this function could probably have two vectors as input : X and P
Dear Intel developers,
Compilation of this subroutine optrms.F (See attachment) leads to an **Internal compiler error: segmentation violation signal raised** with -O3 options. This error disappears with -O2
The compilation instructions is /share/apps/intel/composer_xe_2013_sp1.2.144/bin/intel64/ifort -i8 -r8 -pc64 -auto -vec-report0 -warn nousage -cxxlib
fort version: Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 22.214.171.124 Build 20140120
Linux kernel: 2.6.32-279.14.1.el6.x86_64
- Page 1