Am Dienstag 20 November 2007 16:24:42 schrieb nisha kannookadan:
I use matrices, vectors, matrix- and vector proxies. Do some solving and compute calculations with prod, element_div, etc..
So you implemented the solver yourself. Aside from other kind of optimizations the algorithm is the effective one!
Is boost in general slower than matlab,
One of my mayor tasks at work is using Matlab. The Matlab language itself is about magnitudes slower thank C/C++/Fortran. Try this example to see how slow a Matlab loop is <Matlab example> N=30000; tic; for idx=1:N vec(idx) = idx; end toc tic vec = [1:N]; toc If you want fast Matlab code you have to replace a generally slow Matlab loop with some fast vector syntax expression. The similar is valid for all script languages, AFAIK.
should I use something else?
If you want speed you have to ;)
Id be real happy about any help.
First try use full optimization (-O3 for gcc) and define NDEBUG. If NDEBUG is defined many performance consuming checks, which help you while developing your code, are disabled. Another thing that Matlab does to provide good performance is using highly optimized numeric libraries (blas, lapack or even faster: ATLAS). uBlas is able to use them as backend too. See "Bindings" at http://tinyurl.com/r1ee . Like all interpreted languages (i.e. python), Matlab can always be outperformed by C++, by the cost of the much more time consuming C++ coding. If you want to write an application you have to use a standalone language like C++ anyway. If you want to use some environment for solving numerical problems (Matlab or i.e. scipy for python) you can code otherwise slow script language loops in C++ and use this compiled modules from inside your script language: - for Matlab search for "mex", mexfiles and mexFuntion at their help browser - for python see http://docs.python.org/ext/ext.html Best Regards, --Maik Beckmann