Boost logo

Ublas :

Subject: Re: [ublas] Product of two matrices is very slow
From: Jesse Manning (manning.jesse_at_[hidden])
Date: 2009-06-15 09:08:16


For a comparison I ran your code using msvc 2003

I ran each test 10 times and averaged the time.

Debug mode: 6.1 seconds
Release mode: 10 milliseconds

Based on my timing there is definitely something not right about your setup.
If you go to the project properites->c/c++->preprocessor page
the preprocessor define for NDEBUG should automatically be defined in
Release mode and not defined in Debug mode. And if it is not you can add it
here instead of in your code file.

Make sure you are doing your timing analysis with code built in Release mode
it makes a huge difference.

namespace ublas = boost::numeric::ublas;

#include <windows.h>
int main()
{
    int ntime=0;
    LARGE_INTEGER ntime1;
    LARGE_INTEGER ntime2;
    LARGE_INTEGER freq;
    QueryPerformanceFrequency(&freq);
    QueryPerformanceCounter(&ntime1);

    ublas::matrix<double> m1(600,100);
    ublas::matrix<double> m2(100,100);
    ublas::matrix<double> r(600,100);
    noalias(r) = prod(m1,m2);

    QueryPerformanceCounter(&ntime2);
    ntime =
static_cast<int>((ntime2.QuadPart-ntime1.QuadPart)/(freq.QuadPart/1000));
    std::cout << "Matrix mult. took " << ntime << " ms" << std::endl;

    return 0;
}

On Mon, Jun 15, 2009 at 8:36 AM, zdespot <zdespot_at_[hidden]> wrote:

> Maik Beckmann schrieb:
>
> zdespot schrieb am Montag 15 Juni 2009 um 13:07:
>
>
>
> #include <boost/numeric/ublas/matrix.hpp>
> using namespace boost;
> using namespace boost::numeric;
>
> #define BOOST_UBLAS_CHECK_FALSE
> #define NDEBUG
> int main(int,char*[])
> {
> ublas::matrix<double> m1(600,100);
> ublas::matrix<double> m2(100,100);
> ublas::matrix<double> r(600,100);
> noalias(r) = prod(m1,m2);
> }
>
>
>
>
> You have to place the #define statements _before_ the #include statements.
>
> -- Maik
> _______________________________________________
> ublas mailing listublas_at_[hidden]http://lists.boost.org/mailman/listinfo.cgi/ublas
>
> Sent to: zdespot_at_[hidden]
>
> Hi Maik
>
> Thanks for the prompt answer. I changed the postion and rebuilt it, but it
> is still slow.
>
> Zoran
>
>
> _______________________________________________
> ublas mailing list
> ublas_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/ublas
> Sent to: manning.jesse_at_[hidden]
>