Changes between Version 15 and Version 16 of SoC2011


Ignore:
Timestamp:
Feb 19, 2013, 11:07:05 AM (10 years ago)
Author:
David Bellot
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoC2011

    v15 v16  
    152152
    153153Mentor: Boris Schaeling (boris[at]highscore.de)
    154 
    155 === Boost.uBLAS ===
    156 
    157 First of all, we have a page with the list of future and desired new features here: http://sourceforge.net/apps/mediawiki/ublas/index.php?title=Main_Page. Students are encourage to consult this page.
    158 
    159 Boost.uBLAS is a fast implementation of linear algebra procedures, of for short it's a vector and matrix library. Actually it's indeed a vector AND matrix library and this is one of the main problem. Vectors are matrices, at least in standard math textbook, but not in Boost.uBLAS. They are represented as 2 separate classes and do not share code really. Not enough to be efficient. Moreover, vector being considered as fixed-sized vectors, they are not as versatile as STL vectors (but it's not the same concept) and not as accurate as a true linear algebra vector, that is they do not implement the notion of being row-vector or column-vector.
    160 
    161 Said like that, it's not that important you would say, but by merging vector and matrix classes, we could share a lot of code and optimize even further. Second of all, by having a unified architecture we could start implementing modern acceleration techniques that lacks in Boost.uBLAS, like SIMD computations, multi-core, GPU, etc...
    162 
    163 
    164 Our ideas for a GSOC project are the following:
    165 - unify representation of vector and matrices into a unique matrix class. Keep compatibility with previous code by providing a default vector<> representation that would inherit for matrix<>. Improve it too by adding more template parameters like size and orientation.
    166 - use this new architecture to propose implementation for the following:
    167    - fixed-sized vectors and matrices with optimization
    168    - a true * operator for vector/vector, vector/matrix and matrix/matrix multiplication
    169    - an architecture to choose at compile time the best algorithm to apply if several are available (very relevant to multiplication for example),
    170    - ideas and examples on how to implement SIMD and multicore operations.
    171 
    172 Inspiration from other libraries like Eigen, Armadillo, GotoBLAS, etc... is highly recommended (after all, that's one of the raison d'etre of Free Software).
    173 
    174 Mentor: David Bellot (david.bellot[at]gmail.com)