Issues compiling source code on Windows 7 using MS Visual studio 2008
issueid=574 08-02-2012 08:15 AM
Issues compiling source code on Windows 7 using MS Visual studio 2008
Issues compiling source code on Windows 7 using MS Visual studio 2008

I am currently trying to compile the source code (5.1.0.3445, Can the 5.1.1 source code be made available? ) for Windows 7 x64 using MS Visual studio 2008. I've obtained Pardiso (libpardiso412-WIN-X86-32/64) which I'd like to use as a solver.

1) Which solution configuration should I choose to compile a 64-bit version? (e.g. release-x64, release-Pardisodl). Also it seems odd that Solution platform can be set separately, isn't this usually used for switching between a 32-bit or 64-bit version?
2) Also it appears that the latest PARDISO Version 4.1.2 requires OpenMP (e.g. one of the first errors I receive is the following missing OpenMP library: libiomp5md.dll), how do I solve this? I haven't actually found where to download OpenMP either.

Thanks,



Kevin
Issue Details
Issue Number 574
Issue Type Feature
Project FEBio
Category Unknown
Status Implemented
Priority Unknown
Suggested Version Unknown
Implemented Version (none)
Votes for this feature 0
Votes against this feature 0
Assigned Users (none)
Tags (none)




08-14-2012 05:35 PM
Developer
Kevin,

We supported the dll version of Pardiso (http://www.pardiso-project.org/) when it was free, but have not kept up with it since they started charging a fee. The version included with the Intel MKL is much less expensive and that we do support. This is not to say that we can't help you get the dll version working. Start with either the debug-Pardisodl or the release-Pardisodl (probably the debug since you'll be doing development work). You can copy that configuration to an x64 configuration. Let us know what problems you run into. I'll work on getting the latest source code released.

Cheers,

Dave

08-15-2012 08:26 AM
Hey Dave,

Thanks for your tips. We decided to use the MKL library (trial version so far) as you suggested and we are using it together with Visual Studio 2008. After a lot of fiddling with the configuration settings we've managed to get a 64-bit version working by activating the solution platform to x64 (instead of copying the complete configuration, we were unable to fix all configuration options using that approach).

Also under "Intel C++ Composer XE 2011" and "Select build components" I needed to specify that the MKL library should be used and I currently set it to "parallel" which I hope is correct (it seems to work).

Would it be possible for you to use a tool like CMake (a suggestion by a colleague here) so that configuration settings are correct independent of platform choice?

Thanks again for your tips, looking forward to seeing the latest source code,


Kevin

08-15-2012 10:30 AM
Developer
Hi Kevin,

Glad to hear that you got things working. We used CMake a while ago for running the test suite but decided we had more control by using a python script. We may want to revisit CMake for building the code. I'm going to move this thread to a feature request.

Cheers,

Dave

08-15-2012 11:37 AM
Developer
Kevin,

The source code for version 1.5.1 has been uploaded to the website.

Cheers,

Dave

08-16-2012 12:45 AM
Excellent thanks a lot Dave!


Kevin

08-17-2012 01:25 AM
Hey Dave,

I'm trying to compile the latest version now 1.5.1.3711. After puzzling with the configuration settings I got it to compile again but then when FEBio runs I get the message: "Failed reading FEBIo configuration file febio.xml". So we tried to see if we had done something wrong but then we found what looks like a bug in the gettappath.cpp file since the returned path is sometimes empty. We thought that perhaps line 42 in that file should be something like:

result = GetModuleFileNameA(NULL, (LPCH) pname, pathsize);

Instead of:

result = GetModuleFileNameA(GetModuleHandle(NULL), (LPCH) pname, pathsize);

That seemed to solve that issue anyway.

I'm still running into some other issues as FEBio crashes (after starting first time step) depending on how I try to run it (from the command window, from a dos or system command issued by Matlab) but haven't found out why that is yet. A colleague suggested that this may be an issue to do with the fact that I picked the "parallel" MKL library but I'm not sure why that would influence this. Do you know if I should use parallel or sequential for this? I'll let you know if I figure things out.

Thanks,


Kevin

08-20-2012 10:25 AM
Developer
Kevin,

We are using the parallel version of Pardiso and compiling with Visual Studio on Windows. On Linux and Mac we compile with the Intel compiler.

Dave

08-21-2012 07:22 AM
Hey Dave,

Thanks for your reply. If I understand correctly I could use the parallel version of Pardiso (e.g. through a 3 renewable free 3 month evaluation license) OR I could use the Intel MKL libraries which includes Pardiso (also evaluation license for me at the moment, and you can pick sequential or parallel for this but I can't get the parallel one to work). Following your recommendation I got the former to work now for parallel computing and 64-bit. I do have to alter that code in the gettappath.cpp file.

Thanks,


Kevin

08-21-2012 09:31 AM
Developer
Hi Kevin,

When I refer to the parallel version of Pardiso, I am referring to the parallel as opposed to the sequential MKL version. I should have mentioned that we are using the 10.2 version of the MKL. There may be issues with newer versions. We plan on upgrading in the near future so we'll be better able to help you should you choose to use the MKL. I'm glad to hear that you were able to get the version from pardiso-project.org working.

Cheers,

Dave

07-13-2015 11:38 AM
Lead Code Developer
I'm marking this issue as resolved. Let me know if this is not the case.

Steve

+ Reply