Re: Status of development /Benchmarks

sguazt <[email protected]>
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <CABbE_O6KkJuHZBkzQjUoVZTgnkkgz+P8OeiVsdLSRYgtrz6E0g@mail.gmail.com>
On Mon, Dec 9, 2013 at 10:13 AM, Rutger ter Borg <[email protected]> wrote:

>
> Hey David,
>
> the whole problem of most numerical packages, IMHO, is that everything is
> tied together. I would encourage a very loosely coupled system. I.e., a
> system that maybe even would be able to switch storage layout, algorithms,
> etc., at run-time, maybe following some simple numerical tests. Of course,
> only if this would be enabled at compile-time.
>
> Data storage and manipulation should be fully loosely coupled, from low
> abstraction to high abstraction:
>
> * the storage of data. This is about memory-efficiency, and hence, speed
> of computation. Storage engines might be linear, sparse, etc..
> * functional shape of the data. Dense, triangular, etc.
> * numerical properties of the data. Positive definite, etc.
> * loading and saving the data. Why not support a whole bunch of
> data-formats
> * unified matrix/vector view on the data
> * procedural manipulation of the data, shallow views on the data, views on
> views, etc.
>
> Algorithms should be loosely coupled, too, from low abstraction to high
> abstraction:
>
> * execution / memory models (synchronous, asynchronous, single core,
> multi-core, shared memory, distributed memory, GPU memory)
> * computational kernels (own C++ CPU-optimized implementations, openblas,
> atlas, gotoblas2, lapack, mumps, opencl, cuda, fft, etc)
> * expression trees, syntax of expression trees (Boost.Proto stuff)
> * optimal assignment of computational kernels to expression trees (maybe
> partly at runtime!)
> * being able to extend the expression tree machinery (e.g., with hooks)
> with own algorithms
>
>
+1 for a library with loosely-coupled feature, even if this means a
completely rewriting of uBLAS

For the integration of computational kernels, why don't we use the
boost-numeric_bindings lib?

Also, I'd like to have more MATLAB-like functionalities (I've implemented
some of them in boost-ublasx, but they relies on boost-numeric_bindings and
LAPACK functions)

Best,

-- Marco


Maybe a new library name would be appropriate?
>
> Cheers,
>
> Rutger
>
>
>
>
>
> On 2013-12-07 11:38, David Bellot wrote:
>
>> Hi,
>>
>> it has been a long discussion we all had for many months now. Should we
>> rewrite ublas from scratch or simply improve it.
>> Joaquim and Oswin wants a brand new ublas
>> Nasos was more in favor of improving it.
>>
>> I personally find very exciting the idea of writing something new, but
>> ublas is very well known now. On the other hand, Eigen and Armadillo
>> took the crown of the main C++ blas library in users' hearts.
>>
>> On my todo list for ublas, there are things that will require ublas to
>> be deeply changed. At this stage, we can almost talk about a new library.
>>
>> Christmas is very close now, so maybe it's a good time to start talking
>> about the features we wish for ublas and see if they can be implemented
>> with the current version or if a new uBLAS 2.0 is necessary.
>> After all, Boost::signal did the same a few years ago. We can
>> definitively do the transition.
>>
>>
>> I begin:
>>
>> - unified representation of vectors and matrices to represent the fact
>> that a vector IS a matrix. Matlab does the same
>> - automated use of different algorithm to let the compiler "chooses" the
>> best implementation (if possible) and switch on SSE, distributed or
>> whateve we need
>> - implementation of solvers and decompositions algorithms
>>
>> and this is what Nasos and I think should be integrated too:
>> 1. Matrix multiplication
>> 2. Algorithms infrastructure (so that we can have real useful features)
>> 3. Matrix/vector views for interoperability <- I think this is ultra
>> critical because now ublas is monolithic in the sense that you have to
>> use it everywhere you manipulate data. This would really help into
>> letting people for example have a list of vectors (they are plotting)
>> and ublas working on top of that to do for example transformations
>> 4. NEW DOCUMENTATION - examples and the rest
>> 5. Incorporate some critical bindings (i.e. mumps bindings which is
>> currently probably the most efficient smp and distributed open source
>> linalg solver)
>> 6. matlab binding?
>> 7. distributed ublas
>>
>>
>> Please add and ESPECIALLY, please tell me your view on the current
>> infrastructure of uBLAS. It seems many people are not happy with the
>> current "expression template" grammar.
>>
>> I'm open to everything
>>
>> Best,
>> David
>>
>>
>>
>
> _______________________________________________
> ublas mailing list
> [email protected]
> http://lists.boost.org/mailman/listinfo.cgi/ublas
> Sent to: [email protected]
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.