Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Eigenvalues

nichols__john
Beginner
519 Views

I was looking to use the FEAST Eigenvector routines in a new program. The error message I get after linking to the MKL parallel library is libiomp5.lib not found.  This is a clean setup on a new computer for Windows 10, VS2103 and Latest Intel compiler.  As a test  I recompiled my old friend MagniCSR which uses MKL and Pardiso and it also gave the same error.

I had set the fortvars for the distributions.  Do I need to include the library directory in the properties?  This was not set for MAGNICSR - copying it over and adding the lib file to the solution - solves the problem - but seems a bit brute force.  I did the same for EIGEN System and that worked?

Would I be better off with 64 bit programs - rather than the default 32 bit for this type of problem?

 

Steve: Can I use some of the sample code for eigensystems in my programs?

Thanks

 

0 Kudos
1 Solution
Steven_L_Intel1
Employee
519 Views

The error is because we stopped supplying the OpenMP library in static form several releases ago. You need to link to libiomp5md.lib instead.

You are allowed to use the sample code in your application.

View solution in original post

0 Kudos
5 Replies
Steven_L_Intel1
Employee
520 Views

The error is because we stopped supplying the OpenMP library in static form several releases ago. You need to link to libiomp5md.lib instead.

You are allowed to use the sample code in your application.

0 Kudos
nichols__john
Beginner
519 Views

Steve Lionel (Intel) wrote:

The error is because we stopped supplying the OpenMP library in static form several releases ago. You need to link to libiomp5md.lib instead.

You are allowed to use the sample code in your application.

Is there a preferred method to automate the link operation - I copied the file into the debug folder and added the lib to the solution

John

0 Kudos
Steven_L_Intel1
Employee
519 Views

That is definitely NOT the right approach.

The simplest is to add the following line to any source in your program (main program is fine):

!DEC$ OBJCOMMENT LIB:"libiomp5md.lib"

Alternatively name libiomp5md.lib in project property Linker > Input > Additional dependencies

0 Kudos
nichols__john
Beginner
519 Views

Steve Lionel (Intel) wrote:

That is definitely NOT the right approach.

The simplest is to add the following line to any source in your program (main program is fine):

!DEC$ OBJCOMMENT LIB:"libiomp5md.lib"

Alternatively name libiomp5md.lib in project property Linker > Input > Additional dependencies

 

1. did not work

2. did work thank you

I knew it was a bad approach but it got me going till I could ask you.

I would refer you to Hooker's MASH book and the statement on Meatball Surgeons.

Thanks

John

 

0 Kudos
nichols__john
Beginner
519 Views

So I got the Eigen solve running nicely and put in a few more output statements in the Intel Example and added the ability to read data from a text file. I got some data from Harrison's book for some structures and had fun looking at the eigenvectors and values.  FEAST is a boat load of fun to work with.  Error messages are a bit terse. 

I decided I needed some decent input data based on real frames rather than the small arrays from Harrison's book. I entered his frame program , about 500 lines of Fortran code. It took a lot less time to put in this more complex program than the earlier Truss one -- it appears to be that his understanding of coding improves from the early truss example to the full frame problem.  He is using hardly any arithmetic if statements now and the code makes more logical sense. He provides a much faster solver and makes the arrays square instead of linear.

Harrison very nicely provides a complete worked example with arrays.  I found a note that he was running the code on a CDC 6600 - a Cray designed Control Data machine from the mid '60s. Appears to have had about the same power as a 386 in MIPS if I am correct in my comparison -- 6 to 10 million in 1964 dollars is about 75 million current dollars -- must have been a huge decision for a UNI. I wonder which of the Fortran variants ran on the 6600.  I used a Control Data machine in the 1980's before we had IBM's.

Interesting in looking at results the stiffness matrix generated by the Intel Complier is different in 2 elements -- having 13.35 and 6.75 in place of 13.335 and 6.675 generated by IFORT. Everything else is correct -- I am wondering if it is a typo or the CDC gives slightly different answers for sin and cos (??)  to the modern IFORT. I will have a few enjoyable hours looking at this matter. (I think it is a typo - but it is unusual given the level of care in the book.) There are also interesting comments on people developing exotic computer code to solve exotic structural problems when most structures are simple. (Refer to the other thread for George's comments along this theme.) This applies to the problems and bridges being looked at by the EP - most are simple.  Humans like simple it seems.

John

 

0 Kudos
Reply