|
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