Boost logo

Ublas :

From: Jesse Perla (jlp400_at_[hidden])
Date: 2008-08-12 09:00:48

Perfect. Those MKL libraries did the trick, I may have been using static
versions which could have been one of the issues.. To install, I did the
following steps:
0) Installed the intel compiler and MKL to a directory without spaces in the
name (instead of "Program Files\...). This may have been superstition.
1) The following code was created with all the appropriate namespaces, etc.
in a simple main() :
    ublas::matrix<double, ublas::column_major> A(3,3), B(3,1);
2) Added: #define __ICC 1010 in my headers. I think this may be a small
inconsistentcy with my setup and these headers and will post another bug.
3) Put the ublas bindings in the proper location within the boost header
4) Made sure boost includes were in the include path for Intel C++ in the
Options within Visual Studio. This may be where things are very buggy and
caused me trouble.
5) Added the full paths to "mkl_intel_c_dll.lib", "mkl_core_dll.lib" and
"mkl_sequential_dll.lib" as linker input
6) Compiled and appears to run

The "ipo: error #11035: Fatal error cannot open libmmdd" was an intel linker
error. But I am really starting to think it is a problem in the combination
of Visual Studio 2008 and the Intel build system that comes out of the
Intel/VS2008 project files. Things became inconsistent when I added the mkl
library to the list of library locations in the project settings. I was
planning to move over to a make file based build approach at some point, but
this may make me do it sooner:
On this, do people feel that boost::build is the right approach for library
end user projects with:
  * Heavy emphasis on boost ublas and bindings.
  * The need to do builds on linux and windows both with Intel C++ (ability
to point at different libs, etc.)
  * Manage all of the different optimization tweaks we may need for scicomp
  * Sufficiently well documented to figure out how to do things easily?
  * Need for precompiled headers
  * And I won't be completely lost if I try to use boost::mpi and MPI
bindings to things like MPICH2 in the build.
  * Easy enough for lower-tech programmers that I can get them building
sample apps without tweaking a bunch of setup files? (or perhaps if I could
just give them a fixed file)

Thanks for your help, and after I get things running I will try to do my
part with regression testing/setup instructions for older packages.

On Tue, Aug 12, 2008 at 5:52 AM, Thomas Klimpel <Thomas.Klimpel_at_[hidden]
> wrote:

> Hello Jesse,
> I'm building und testing [boost][numeric][bindings] on some different
> platforms, with different blas and lapack libraries. This is an ongoing
> effort to improve the regression tests of the [boost][numeric][bindings]
> library that is not yet finished and will not be finished soon.
> I have tested on Win32 (XP) with clapack-3.1.1 (
> and MKL 10.0.x. on VC8 and VC9. I have to use the linker option
> "/NODEFAULTLIB:LIBCMT" and "/NODEFAULTLIB:LIBCMTD" in order to avoid link
> problems when I use clapack. I use "mkl_intel_c_dll.lib", "mkl_core_dll.lib"
> and "mkl_sequential_dll.lib" as linker input file in case of MKL. This works
> fine for me and is orders of magnitude faster than clapack.
> Testing with ATLAS on win32 is still on my "ToDo" list, but I tested it on
> linux32 and linux64 and it worked fine.
> Conclusion: Both clapack and MKL should work fine on Win32 (XP). I can't
> tell whether they will also work fine on Vista.
> Question: is "ipo: error #11035: ..." a linker error? Or is it a runtime
> error or even a compile error?
> > At this point I am willing to accept whatever linear algebra library has
> the easiest installation steps for this environment.
> Then you should probably start with clapack (note that the above link
> points to prebuild libraries), but try to move on to something more
> efficient (like MKL) when you feel comfortable enough.
> Regards,
> Thomas
> From: ublas-bounces_at_[hidden] [mailto:ublas-bounces_at_[hidden]]
> On Behalf Of Jesse Perla
> Sent: Dienstag, 12. August 2008 06:48
> To: Boost::ublas Mailing List
> Subject: [ublas] Help with LAPACK or ATLAS bindings to boost
> I am a library user who wants to get a working ublas, lapack system up and
> running as easily as possible on windows.
> Does anyone have a thorough step-by-step of how to get bindings installed
> and a test project linked? I see lots of issues posted, but no list of
> detailed setup steps other than mentioning that this is possible (though
> noone says that they have linked to intel MKL on windows?)
> I am having a hell of a time trying to get the latest bindings linking with
> the lapack and ublas and intel MKL's lapack. I am using Windows Vista with
> Visual Studio 2008 and Intel compiler 10.1.20. The code compiles fine (no
> surprise since it is just the 3-4 lines of test code I believe everyone
> uses), but when linking or setting up libraries, bizarre things happen. The
> latest is: "ipo: error #11035: Fatal error cannot open libmmdd" when I add
> the MKL library folder to the Intel C++'s library folders... Even the
> trusty windows "reboot and reinstall everything to a folder without any
> spaces" trick didn't work.
> If noone has a good list of setup/linking/library steps for Intel MKL, can
> they suggest another? Atlas looks scary to me since it talks about using
> cygwin compiling and I can't figure out if I can simply link it back into my
> intel compiler on windows. But if there are binaries available or simple
> setup steps, that would really help me out. At this point I am willing to
> accept whatever linear algebra library has the easiest installation steps
> for this environment.
> Sorry if this may be an Intel compiler on windows specific problem, but I
> am at wit's end.
> Thanks,
> -Jesse