Quantcast
Channel: Intel® Fortran Composer XE
Viewing all 1424 articles
Browse latest View live

Cannot get rid of 2019 and 1120 errors

$
0
0

I'm having problem with these errors for weeks. I read every topic based on this problem but no advice worked for me.

Visual Studio 2010 Professional and Intel(R) Visual Fortran Composer XE 2011.

This is the output:

1>------ Rebuild All started: Project: Projekat, Configuration: Debug Win32 ------

1>Build started 15-Apr-14 4:00:28 PM.

1>_PrepareForClean:

1>  Deleting file "Debug\Projekat.lastbuildstate".

1>InitializeBuildStatus:

1>  Touching "Debug\Projekat.unsuccessfulbuild".

1>ClCompile:

1>  Glavni.cpp

1>Glavni.obj : error LNK2019: unresolved external symbol _K1 referenced in function _main

1>C:\Users\Stevic\Documents\Visual Studio 2010\Projects\Projekat\Debug\Projekat.exe : fatal error LNK1120: 1 unresolved externals

1>

1>Build FAILED.

1>

1>Time Elapsed 00:00:01.09

2>------ Rebuild All started: Project: OtpRasp, Configuration: Debug Win32 ------

2>Deleting intermediate files and output files for project 'OtpRasp', configuration 'Debug|Win32'.

2>Compiling with Intel(R) Visual Fortran Compiler XE 12.0.5.221 [IA-32]...

2>Otpor.f90

2>Creating library...

2>

2>Build log written to  "file://C:\Users\Stevic\Documents\Visual Studio 2010\Projects\Projekat\OtpRasp\Debug\BuildLog.htm"

2>OtpRasp - 0 error(s), 0 warning(s)

========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========

 

 

 

This is the Fortran code :

MODULE OTPOR_RASP

REAL FUNCTION k1 (x) BIND (C, NAME = "k1")

USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_INT, C_FLOAT

IMPLICIT NONE

!DEC$ ATTRIBUTES DLLEXPORT :: k1

REAL(C_FLOAT):: x

INTEGER(C_INT) :: x1, x2

!REAL(C_FLOAT) :: y(8) = (/1.37, 1.33, 1.28, 1.24, 1.2, 1.16, 1.13, 1.11/)

x1 = CEILING (x)

x2 = FLOOR (x)

!k1 = y(x1) + ((x - x1) * (y(x2) - y(x1))) / (x2 - x1)

k1=x1 + x2

RETURN

END FUNCTION k1

END MODULE OTPOR_RASP

 

This is a C++ code:

#include <iostream>

#include <math.h>

#include <fstream>

#include "Funkcije.h"

#include <string>



using namespace std;

extern "C"

{

    double K1 (double);

}

int main()

{

 ...

 ...

double v = 4;

double k = K1 (v);

system("pause");

return 0;

}

Please help me.

Thank you in advance!


Forum connectivity problems

$
0
0

Over the last couple of days, I often get an error in Internet Explorer 9 while trying to connect to IDZ forums.  The rendered html says something to the effect of, ".. sorry, but it appears out site is down.."

With Google Chrome, I get strange error while trying to log into my profile.

If I run a cleanup utility to clear all my temporary internet files, cookies, cache, etc., then I am able to connect again for some time before the problem reappears.

Anyone else experiencing the same issues?

Debugger Not Working

$
0
0

I recently recently received a new Corporate PC with Windows 7 (I know, it's old). Since the old Compaq VF won't work on W7 we installed Intel Composer XE 2013 with Visual Studio 2012. My problem is that even though a program compiles and runs, I can't debug it.


When I set a breakpoint, the debugger will stop there but I can't see the value of any variables. For every variable I list in the watch window, I get the error message "unable to evaluate the expression". It appears that either the debugging information wasn't saved, or the debugger can't find it. The project configuration IS set to debug:full and the debug information set to the same. I am compiling 32 bit code on a 64 bit machine, but that wasn't a problem with the Compaq compiler.


I've tried this with my own codes that worked fine under CVF 6.6 and I have compiled the Calendar sample that came with Composer XE 2013 and the same thing happens.


This was installed over a network so there may be linkage/license issues.


Before I go postal with our IT department, what else should I look at?

Cant use Fortran help anymore

$
0
0

It tells me I don't have a default browser configured.

I have two on there already.

And then it directs me to a BLANK Internet Explorer Web page.

Why don't they test this stuff?

No Inverse Error function?

$
0
0

The Fortran Math library has ERF for the error function, but I have not been able to find the Inverse.

Its a statistical function based upon the Gaussian Normal distribution.

 

Strangely enough, it does exist for VECTOR ELEMENTS, but I don't see why they would not

include it for regular usage. Every other math library on other processors has this function.

If it is in the library, searching for it produces no results.

How do we use vector elements - what are they referring to?

 

(in case I get desperate)

'

how i use makefile

$
0
0

hello dear membrane

Could someone tell me how to create and run a makefile. I have the following code I want to run..

subroutines.f90
main.f90
i have a makefile contain bellow data:

#
# Makefile for finite element code...
#
# Please adjust Fortran compiler and flags, path to netcdf
# to your specific computer

#===============================
# Fortran compiler and flags
#================================

# INTEL COMPILER
#-------------------
FC = ifort
## Options optimizing for speed (on the current cpu architecture)
FCFLAGS = -O3 -ipo -xHost -openmp -no-prec-div -align
## Options for debugging:
#FCFLAGS = -g -xHost -openmp -traceback -fpe:0 -check all

#=================================
# Path to netcdf
#=================================

## If given by environment variables
# NC_LIB = $(NETCDF_LD)
# NC_INC = -I$(NETCDF_INC)
## If in the standard path (e.g. /usr/lib), you may skip -L
## We need the Fortran bindings, too, which can come as a seperate
## lib (netcdff) or be in included in the main lib (netcdf).
# NC_LIB = -lnetcdf -lnetcdff
# NC_INC =
## A path at your system, here Fortran libnetcdff included in libnetcdf
NC_ROOT = /uv/soft/netcdf/3.6.3-gnu
NC_LIB = -L$(NC_ROOT)/lib -lnetcdf
NC_INC = -I$(NC_ROOT)/include
## or no netcdf at all
# NC_LIB = -DNO_NETCDF
# NC_INC =

#================================
# Name of the executable
#================================
# Just choose whatever you like.
EXE = ompTsuna.x

##########################################################
# No change necessary below
#--------------------------------------------------------

.SUFFIXES: .F90 .o

SRC = data_types.F90 \
parameters.F90 \
mesh.F90 \
elements.F90 \
swe.F90 \
benchmark.F90 \
initial_conditions.F90 \
okada_fault_parameters.F90 \
output.F90 \
tsunami.F90

#---------------------------------------------------

$(EXE): $(SRC)
make clean
$(FC) $(FCFLAGS) -o $(EXE) $(SRC) $(NC_LIB) $(NC_INC)

clean :
rm -f *~ *.o *.mod $(EXE)

please help me how i can use this makefile for run my program?

thanks

VS 2010 bug(?)

$
0
0

I had the main program called source01.f90, and extracted a routine with the
intention of calling it something else.

It called the extracted code source01.f90 ALSO -

This is just an annoyance, but if someone isn't alert, it can lead
to lost source code. For example if you tried to save BOTH of them
it would lead to something getting clobbered.

I was wondering if the problem was addressed and corrected later.
My understanding is that I can't use the Fortran compiler with later versions of
VS. Has that been addressed?

Memory Movement and Initialization: Optimization and Control

$
0
0

Compiler Methodology for Intel® Many Integrated Core (Intel® MIC) Architecture

 

Overview


Are you initializing data or copying blocks of data from one variable to another in your application?  Probably so.  Moving or setting blocks of data is very common.  So how to best optimize these operations for Intel® Xeon Phi™ Coprocessors? 

Job #1 - For Phi, Parallelize the initialization!

A single Phi core cannot saturate the bandwidth available on Phi.  So if only 1 core is initializing your large arrays you will notice a significant slowness compared to Xeon (due to the relatively slow clock speed of the Phi cores).  Therefore, on Phi it is necessary to get many cores involved in the memory initialization to insure that the memory subsystem is driven at or near maximum bandwidth.

For example, if you have something like this:

do i=1,N
  arr1(i) = 1.1_dp
end do

you can parallelize the do loop:

!DIR$ vector nontemporal
!$OMP PARALLEL DO
do i=1,N
  arr1(i) = 1.1_dp
end do

mem*() calls in libc

The mem* family of functions in libc can take significant amounts of time in many applications.  These include memcpy(), memset() and memmove() functions.  C programmers may call these directly in their code.  In addition to directly calling these functions, Fortran and C applications with data  initalizations or data copy statements may IMPLICITLY call these functions when a compiler translates the data set/move/copy statements into calls to these libc mem*() functions.  In addition, Fortran may hide direct calls to libc mem*() functions in the Fortran Runtime Libraries which often "wrap" calls to libc mem*() functions.

Applications compiled with the Intel Compilers:  because these libc mem*() functions are so common, the Intel Compilers provide optimized versions of memset and memcpy in the Intel Compiler provided library 'libirc'.  This library and specifically these functions are intended to replace the calls to mem*() functions with a more optimized version of the mem*() functions.  The Intel replacement libraries have symbol names "_intel_fast_memset" and "_intel_fast_memcpy". 

Some examples showing how the compiler will translate some calls into :

Fortran:

more memset.f90
program memsetter
  integer, parameter :: N=10000
  real :: a(N)
  integer :: i

  do i=1,N
    a(i) = 0.0
  end do
!...or with array syntax
  a = 0.0

 print*, a(1:10) !...if you don't use array a, the loop above
                  !...is completely optimized away
end program memsetter

# now compile the code at O2 or greater, use 'nm' to dump the symbols
$ ifort -c -g -O2 memset.f90
$ nm memset.o
0000000000000000 N .debug_info_seg
0000000000000000 T MAIN__
...U _intel_fast_memset
...
0000000000000000 b memsetter_$A.0.1
 

C: 

#include <stdio.h>
float a[1000000];
float b[1000000];
int main() {
  int i, n;
  n=1000000;
  for (i=0; i<n; i++) {
    a[i] = b[i];
  }
  printf("%f", a[1]);
}


$ icc -g -c -O2 memset.c
rwgreen@dpdknf01:~/projects$ nm memset.o
0000000000000000 N .debug_info_seg
                 ...
                 U _intel_fast_memcpy
 

_intel_fast_mem* function calls and how to control their use?

“memcpy” calls in user-code (explicit and implicit) get translated to intel_fast_memcpy UNLESS user uses non-default options such as:

  • C++:  -ffreestanding (option means user provides possibly their own version of library entry-points, so compiler is NOT free to translate mem* calls to other versions).
  • Fortran:  -nolib-inline ( option disables inline expansion of standard library or intrinsic functions, and prevents the compiler from translating mem* functions to their intel_fast_mem* equivalents )

So depending on the options used for compilation, you may be getting glibc memcpy (or user’s own version) OR intel_fast_memcpy.

Streaming Stores - Nontemporal writes for data:

Many High-Performance Computing applications need to move data in huge blocks.  Normally during write operations the application will move data through the data cache(s) with the assumption that data may be reused again soon ( known as a 'write through cache').  However, in many cases an HPC application will completely overwrite cache contents (first level, second level - the whole cache hierarchy) in the process of moving data that are much larger than the cache size.  This wipes out any 'useful' data that may be cached, effectively flushing their contents.  To avoid this, the programmer may specify to use 'streaming stores.' Streaming store instructions on the Intel microarchitecture code name Knights Corner do not perform a read for ownership (RFO) for the target cache line before the actual store, thus saving memory bandwidth. The data remain cached in L2 (This is in contrast to the streaming stores on Intel® Xeon® processors where the on-chip cache hierarchy is bypassed and the data get combined in a separate write-combining buffer). See the article here for more details: Intel® MIC Architecture Streaming Stores.

To control use of non-temporal streaming store instructions, the Intel compilers provide the -opt-streaming-stores (Linux*, OS* X) , /Qopt-streaming-stores (WIndows*) option.  The syntax is:

Linux and OS X

-opt-streaming-stores keyword

Windows:

/Qopt-streaming-stores:keyword

Arguments

keyword

Specifies whether streaming stores are generated. Possible values are:

always

Enables generation of streaming stores for optimization. The compiler optimizes under the assumption that the application is memory bound.

never

Disables generation of streaming stores for optimization. Normal stores are performed.

auto

Lets the compiler decide which instructions to use.

Default

-opt-streaming-stores auto
or/Qopt-streaming-stores:auto

The compiler decides whether to use streaming stores or normal stores.

Description

This option enables generation of streaming stores for optimization. This method stores data with instructions that use a non-temporal buffer, which minimizes memory hierarchy pollution.

This option may be useful for applications that can benefit from streaming stores.

Control Streaming Store with Pragma/Directive:

C and Fortran: Add “simd” pragma to suppress conversion-to-mem*. Add another “vector nontemporal” pragma/directive to generate non-temporal stores. Examples:

!DIR$ vector nontemporal
!DIR$ simd
do i=1,n
   a(i) = 0
enddo

#pragma vector nontemporal
#pragma simd
  for (i=0; i<n; i++) {
    a[i] = b[i];
  }
}

 

Advanced Notes:

Inside intel_fast_memcpy() (library function that resides in libirc.a library that gets shipped with the Intel compiler), uses non-temporal stores for memcpy IF the copy-size is > 256K. For smaller sizes you will still get vector-code, but it will not use non-temporal stores.
 
The Intel compilers and libraries do NOT automatically parallelize the mem* calls (The execution will happen in a single thread unless the memcpy/loop resides inside a user-parallelized code-region).
 
In some specialized uses of memcpy, the application has extra knowledge of the cache-behavior of the src/dest arrays and their cache-locality at a bigger scope than what the library-code sees from just one invocation of the memcpy. In such cases, you may be able to do smarter optimizations (such as different prefetching techniques that are not just based on the input-size) in a loop-version (or a smarter user-version of specialized memcpy) that may lead to better behavior for your application.
 
For stream-copy, the src-code does not use memcpy directly, but it has a copy-loop. Under default options, compiler translates the loop into a call to intel_fast_memcpy that then takes the path executing the stores using non-temporal stores. In the best performing stream-copy version though, you can get slightly better performance (~14% better) using the C++ options "-opt-streaming-stores always -opt-prefetch-distance=64,8" OR “-ffreestanding -opt-prefetch-distance=64,8” due to the better prefetching behavior in the loop-version of the code vectorized by the compiler (driven by the compiler prefetching options and no translation to memcpy library call).
 
In general, small-size memcpy performance is expected to be slower on Intel MIC Archiecture compared to a host processor (when it is NOT bound by bandwidth - meaning small sizes plus cache-resident data) due to the slower single-threaded clock speed on the coprocessor.

Take Aways

Memory movement operations can either explicitly or implicitly call memcpy() or memset() functions to move or set blocks of data.  These functions can be linked to routines provided by the resident libc provided by your OS.  The Intel compilers in certain conditions will replace the slower libc calls with faster versions in the Intel compiler runtime libraries such as _intel_fast_memcpy and _intel_fast_memset, which are optimized for Intel architecture. 

Moving large data sets through the cache hierarchy can flush useful data out of cache.  Streaming stores can be used to improve memory bandwidth on  Intel® Xeon Phi™ Coprocessors. The opt-streaming-store compiler option can be used or the pragma/directive nontemporal can be used for finer grain control.

NEXT STEPS

It is essential that you read this guide from start to finish using the built-in hyperlinks to guide you along a path to a successful port and tuning of your application(s) on Intel® Xeon Phi™ Coprocessors.  The paths provided in this guide reflect the steps necessary to discover best possible application performance.

Back to Advanced Optimizations chapter

  • intel_fast_memcpy
  • intel_fast_memset
  • VECTOR TEMPORAL
  • -opt-streaming-stores
  • Sviluppatori
  • Linux*
  • C/C++
  • Fortran
  • Avanzato
  • Intermedio
  • Intel® C++ Composer XE
  • Intel® Fortran Composer XE
  • Strumenti di sviluppo
  • URL
  • Argomenti sui compilatori

  • Visual Studio 2010 + XE 2013 SP2: integration issue

    $
    0
    0

    Until recently, I used Win XP + VS 2010 + Intel Visual Fortran 12.1.3.300, and was enjoying "Go To Definition", "Go To Declaration" and "Find All References" in the right-click menu for years. However, last month I got a new machine with Win 7 on it. I installed VS 2010 and upgraded Fortran to 14.0.2.176. Everything works fine, but I don't see "Go To Definition", "Go To Declaration" and "Find All References" anymore. (I do see them for C++ code though.) What is the problem? If this was already discussed, can somebody please send the link?

    Please don't offer to move to a newer VS, there's a number of reasons why I can't do it.

    Thank you!

    AllegatoDimensione
    ScaricaSnapVS2010.JPG112.77 KB

    Old Fortran Program

    $
    0
    0

    Steve:

    I came across an old Fortran program from UCLA.  It is a very useful program and the site provides a copy of the program complied in Compaq Fortran in 32 bit.

    I tried unsuccessfully yesterday to compile the program.  I broke it down into reasonable units and slowly worked to fix some things.

    But when I get to the FEM module - it starts and never stops on the compiler.  I stepped through it by adding back a line at time, but could not spot the error.  If I did not have a working EXE I would wonder, but there is a working exe in Windows.

    Any ideas, I enclose the original code and the modifications I made. It is an interesting program that has the potential to save lives in earthquakes so I am keen to get it working.  If I cannot I will rewrite the algorithms in C#. 

     

    JMN

     

    AllegatoDimensione
    ScaricaSHELL - Copy.for516.84 KB
    ScaricaShell.zip7.39 MB

    ifort: error #10037: could not find 'link'

    $
    0
    0

    Hi, I got started to use windows version intel fortran - I have used linux intel fortran +10 years

    1.

    after installing w_ics_2013.1.039.exe, all programs -> intel parallel studio xe 2013 -> command prompt -> parallel studio xe with intel compiler -> intel 64 visual studio 2010 mode,

    C:\Temp>ifort hello.f90
    Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Inte
    l(R) 64, Version 14.0.0.103 Build 20130728
    Copyright (C) 1985-2013 Intel Corporation. All rights reserved.

    ifort: error #10037: could not find 'link'

    2.
    I reset environmental variables as

    C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin>call compilervars.bat intel64 vs2010
    Intel(R) Parallel Studio XE 2013 SP1
    Copyright (C) 1985-2013 Intel Corporation. All rights reserved.
    Intel(R) Composer XE 2013 SP1 (package 103)
    The specified configuration type is missing. The tools for the
    configuration might not be installed.

    So Neither of them works - it seems that when intel cluster tools are installed, MS visual studio 2010 files for intel and shell are installed together but nothing is working. Any comment?

    Best,

    Byoungseon

    linker error: ipo: error #11018

    $
    0
    0

    I have a solution containing many DLL and LIB projects.  All projects are on the same level below the solution file.  There are dependencies of some projects on others.  The LIBs in the project which depend on them are not linked in explicitly as Inputs in the linker, but used via the dependency list.  All the targets were being built in Debug and Release directories off the respective projects.  I want the all to be built in one place, which is bin\Debug- bin is at the same level as the project folders containing the project files.  I am almost done editing all the vfproj / vcxproj files, but have one last issue I cannot overcome:

    One vfproj file depends on 2 other projects, flogrouputils and flotils and I am getting the following error:

    Linking...

    ipo: error #11018: Cannot open D:\Dev\TechRefactoring\Flogrouputils\bin\Debug\flogrouputils.lib

    ipo: error #11018: Cannot open D:\Dev\TechRefactoring\Flotils\bin\Debug\flotils.lib

    LINK : fatal error LNK1104: cannot open file 'D:\Dev\TechRefactoring\Flogrouputils\bin\Debug\flogrouputils.lib'

    It is supposed to be using:

    D:\Dev\TechRefactoring\bin\Debug\flogrouputils.lib

    D:\Dev\TechRefactoring\bin\Debug\flotils.lib

    However nowhere in the vfproj file can I see why it is looking in former directories rather than the latter.  Any ideas?

    What is ipo?

    Invitation to join the Intel® Software Development Tools 2015 Beta program

    $
    0
    0

    Dear Developer,

    Try out the new Intel® Software Development Tools 2015 Beta and help make our product better. Registration is easy through the https://softwareproductsurvey.intel.com/survey/150347/2afa/ site. Additional information can be found at http://bit.ly/sw-dev-tools-2015-beta.

    This suite of products brings together exciting new technologies along with improvements to Intel’s existing software development tools (more details below): 

    • Expanded Standards and Platform Support - Intel® Composer XE 2015 Beta, including full language support for C++11 (/Qstd=c++11 or -std=c++11) and Fortran 2003, Fortran 2008 BLOCK, and OpenMP* 4.0 (except user-defined reductions). Also includes offload to Intel® Graphics Technology, new icl compilers for OS X* for improved Clang*/LLVM* compatibility, and new optimization reporting.

       
    • Optimized Cluster Sparse Solver - New Parallel direct sparse Solvers for clusters (CPARDISO) and optimizations for the latest Intel® Architectures with the Intel® Math Kernel Library (Intel® MKL) 11.2 Beta!

       
    • Profiling Advances - Improved hardware support for the Intel® Graphics Technology and Intel® Transactional Synchronization Extensions (Intel® TSX) analysis, OS X* view capability, and remote collection for Linux* systems with the new Intel® VTune™ Amplifier XE 2015 Beta!

       
    • Accelerated Memory & Threading Debug- Up to 3x performance improvement and reduction in memory overhead with with Intel® Inspector XE 2015 Beta!

       
    • Application Scaling- Scale your application by modeling with threading and “what-if’ senarios quickly with Intel® Advisor XE 2015 Beta!

       
    • MPI-3 Standards Support - Get highly-optimized out-of-the-box performance for your MPI applications with the Intel® MPI Library 5.0 Beta!

       
    • MPI Performance Assistant - Intel® Trace Analyzer and Collector 9.0 Beta!  In addition to support for the latest MPI-3 features, the new Performance Assistant automatically detects common MPI performance issues and quickly provides resolution tips.

    If you are ready to get started, follow this link to complete the pre-beta survey, register, and download the beta software: http://softwareproductsurvey.intel.com/survey/150347/2afa/

    For more details and information about this beta program, check out the Intel® Software Development Tools 2015 Beta page, which includes additional information in the FAQ and What’s New documents.

    Any questions?

    For beta participation questions or to opt-out of further contact with Intel, please reply to this email.  Refer to the Intel Privacy Policy for more details.

    We greatly value your input in helping us release quality products.

    Sincerely,

    The Intel Software Development Products Beta Program Team

    Developer Products Division

    Intel Corporation

    Additional Details

    • Intel® Advisor XE - Improvements include scaling to a larger number of processors and improved viewing and advanced modeling of suitability information on both Intel® Xeon® and Intel® Xeon Phi™ processors.
      • Suitability modeling for Intel® Xeon Phi™ processors is available as an experimental feature by setting the environment variable ADVIXE_EXPERIMENTAL=suitability_xeon_phi_modeling

         
    • Intel® VTune™ Amplifier XE - Added support for remote collection from the GUI, new GPU and TSX analysis, and the ability to view your results on Mac* computers.

       
    • Intel® Inspector XE - For thread checking, take advantage of 3X performance improvement and reduction in memory overhead. For memory checking take advantage of advancements in the on-demand leak detection and memory growth controls as well as the brand new memory usage graph.

       
    • Intel® MKL  - Introducing new Parallel Direct Sparse Solvers for clusters (CPARDISO) and optimizations for the latest Intel® Architectures.  Get insight into Intel® MKL’s settings via new verbose mode and take advantage of the Intel® MKL Cookbook to help assemble the correct routines for solving complex problems.

       
    • Intel® Composer - Gain new insights into optimization opportunities such as vectorization or inlining with redesigned optimization reports (/Qopt-report or -opt-report). Exploit Intel® Graphics Technology for additional performance with new offload computing APIs. Use the new "icl" and "icl++" compilers on OS X* for improved compatibility with the clang/LLVM* toolchain.  The Intel® Integrated Performance Primitives has added support for the Intel® Xeon® Phi™ co-processor.
      • Existing users of optimization reports (opt-report, vec-report, openmp-report, or par-report) or the Intel® C++ Compiler for Linux (-ansi-alias is now default) should refer to the product release notes for more information

         
    • Intel® MPI Library - Now’s the time to take advantage of the new MPI-3 functionality, such as non-blocking collectives, and fast one-sided communication.  This release ensures binary compatibility with existing codes.

       
    • Intel® Trace Analyzer and Collector - Extract complete insight into your distributed memory application and quickly find performance bottlenecks and MPI issues.  In addition to support for the latest MPI-3 features, the new Performance Assistant automatically detects common MPI performance issues and quickly provides resolution tips.

     

    Intel is a trademark of Intel Corporation or its subsidiaries in the United States and other countries.

    * Other names and brands may be claimed as the property of others.

                Copyright © 2014, Intel Corporation. All rights reserved.

    Import libraries Debug/Release

    $
    0
    0

    Are import libraries the same for Debug / Release DLL builds?

    The reason I'm asking is that I have a Fortran main program which calls various DLLs.  I'd prefer to have one version (ie. Debug) of this driver program.  Can I link in the Debug import libraries and still be able to run Release DLLs if these are in the same DIR as the EXE?

    Build from command line

    $
    0
    0

    I have a solution which consists of many projects: vfproj, vcxproj and 1 csproj (C#).  The vfproj and vcxproj have the config Debug|Win32, so I build from the command line with:

    devenv AllDll.sln /build "Debug|Win32"

    This builds all the vfproj and vcxproj projects.  However the csproj doesn't have this config, instead it has Debug|AnyCPU and so the csproj project doesn't build.  All projects build fine from Visual Studio if I do a Clean, Build.

    Any idea how get them all to build from the command line?


    Broadwell

    $
    0
    0

    Broadwell is your first 14 nm processor.  Is the current Fortran compiler optimized for this new processor?

    Single precision real constants

    $
    0
    0

    I have a project where /fpconstant is specified for both Debug and Release builds.  However the Debug version is still interpreting a single real constant oddly.  I have:

    double precision, parameter   :: KToFShift      = -459.67

    Yet when I print it out in the code:

          write(78,*) KToFShift

    I get:

      -459.670013427734    

    In Release it shows up correctly.  Why does Debug show it incorrectly?

     

    Documentation for Fortran and C/C++ unreadable

    $
    0
    0

    After the update of Composer XE 2013 SP1.179 the documentation is unreadable. The first line in the Help window shows

    <html xmlns:MSHelp="http://www.microsoft.com/MSHelp/" lang="en-us" ....

    It looks like the Help content is supposed to be displayed as HTML using a browser. Firefox, IE and Chrome are installed and usable. I tried to fix the problem by deleting and reinstalling the documentation files using the Add and Remove Help Content menu, as Steve Lionel advised me to do in a former post. But the funny text display remains. What can I do to get the proper help display? I use Windows 7 64 bit.

    Unresolved External symbol - MPI Compilation

    $
    0
    0

    Hi,

    I am trying to compile a setup for my current code on a new machine in Visual Studio.

    I have made the changes in the following places:

    Properties -> Fortran -> General -> Add include directories as "C:\Program Files\OpenMPI_v1.6-win32\include" 

    Properties -> Fortran -> PreProcessing -> Add include directories as "C:\Program Files\OpenMPI_v1.6-win32\include" 

    Properties -> Linker-> General-> Add Library Dependencies as C:\Program Files\OpenMPI_v1.6-win32\lib;

    Properties -> Linker-> Input -> Additional Dependencies as libmpi.lib libmpi_cxx.lib libmpi_cxxd.lib libmpi_f77d.lib libmpid.lib libopen-pal.lib libopen-pald.lib libopen-rte.lib libopen-rted.lib

    I believe the above steps got me working on my previous machine, but I still keep getting compile errors like these:

    Error    1     error LNK2019: unresolved external symbol _MPI_INIT 

    Any reason why i should get this?

    PS: I change the link to the MPI directory to x64 OpenMPI 1.62 when I run in my new system

     

     

    Mixed language development

    $
    0
    0

    We are using Microsoft Visual Studio 2013 Professional. We then installed the latest version of the Intel Fortran compiler, service pack 1 update 2 I think. Running under Windows 7.

    Inside Visual Studio we can create a new Fortran project, such as a static DLL, and add Fortran files to it and they compile and link fine. We can also create Visual Studio C++ solutions, which work fine.

    But what if you have a Windows C++ application and you want to compile and link in a few Fortran files? In other words, have one EXE with some Fortran and C++ files compiled and linked into it.

    If you add the Fortran files to the C++ project, the right mouse click compile option for them is greyed out and under project settings there is nothing for Fortran, only C++. If we import an old Visual Studio 6 / Compaq Fortran mixed solution (which we are actually trying to convert), then the Fortran files come across as custom compilations but with all the settings missing.

    We know there is a way to do this. How?

    The only thing we can think of is to, under the solution, have a C++ project, and a Fortran project which is a static library, and then link the Fortran static library into the C++ project. But there are complications such as having to export Fortran methods against which you link, which would not necessary if you link all the OBJ files in one link pass.

    What are we missing here?

    Viewing all 1424 articles
    Browse latest View live


    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>