Boost logo

Ublas :

From: James Sutherland (James.Sutherland_at_[hidden])
Date: 2008-01-18 17:32:18


All,

I compiled an application using ublas with mapped_matrix<double>. I am
running an optimized build (with ­DNDEBUG), and I am finding very poor
performance on mapped_matrix.

Running gprof shows that more than 50% of the execution time is spent in
    std::_Rb_tree<unsigned long, std::pair<unsigned long const, double>,
std::_Select1st<std::pair<unsigned long const, double> >, std::less<unsigned
long>, std::allocator<std::pair<unsigned long const, double> >
>::lower_bound(unsigned long const&) const

More than 30% of the execution time is spent in:
    boost::numeric::ublas::mapped_matrix::find1

And 6% of the execution time is spent in mapped_matrix::find2

This application runs a lot of matvec operations, so that should be the
bottleneck. I have just migrated from another linear algebra package that
runs the same problem orders of magnitude faster.

I suppose that the obvious question is if there is a more efficient way to
do sparse matrix operations?

Thanks for any advice,

James