|
Ublas : |
Subject: Re: [ublas] How to solve systems of linear equations?
From: Rutger ter Borg (rutger_at_[hidden])
Date: 2010-03-11 11:13:43
Jesse Perla wrote:
> Right now, the bindings are in active development, but with all due
> respect to all of you guys that do your damnedest to support ublas, it
> doesn't seem
> as active as eigen or MTL4, capable of exploiting SSE, etc..
I'm not defending ublas here, but as always, I am willing to shout something
... because I read the term SSE (which is perfectly supported by most
compilers since about a decade :-)).
Speaking of parallelism: there's another disruptive technology already there
and gaining footprint quickly: the GPU. Buy a couple of GPU boards, put them
in your desktop computer, and voila: as much numeric computing power as a
not too old supercomputer. (E.g., a couple of NVidia Tesla's).
Now, what do hardware vendors usually supply with their cool new stuff?
Right, BLAS (and/or LAPACK) implementations optimized for their platforms
(e.g., CUBLAS).
If GPU-only is not fancy enough for you, throw in a hybrid CPU+GPU LAPACK-
compatible http://icl.cs.utk.edu/magma/index.html implementation to saturate
both CPU(s) and GPU(s).
Clearly, I have a bias, but I'd say the bindings are the way to go :-). Oh,
and this would also me making the point that we need GPU-memory STL-
compatible allocators and make sure they work with uBLAS :-) (Gunter? :-))
Something else that would make my choice: my preference for implementing
linear algebra would be by means of imperative programming (not by means of
declarative programming). In addition, it should have clear separation of
containers and algorithms. I don't think there's much on the list in that
case, so I tend to resort to ublas (containers) + bindings (algorithms).
That's all for now :-),
Cheers,
Rutger