[OpenWalnut-Dev] Library Bindings OpenWalnut

Mathias Goldau math at informatik.uni-leipzig.de
Tue Dec 14 13:14:04 CET 2010


Hi,

as you might know, some of us depend on optional libraries for their code for
their PHD. I am, for example, using libEigen especially for matrix vector
operations on big matrices as well as CUDA for speeding up my clustering
stuff. Stefan and Andrè using libOssim for computation of the
Moor-Penrose-Inverse via SVD. So there may be a lot of stuff massing up which
is used by every Tom, causing unnecessarily complex compilation in the end.
For example LibOssim depends on LibTiff et al. which makes trouble on Windows.

If something changes, esp. core API, those parts are affected too, of course,
but the developer may not notice conflicts since it's not compiling on his
machine.

I really don't like that, due to several reasons:

It would be better if as much code as possible would compile on as many
machines as possible, so platform dependend code may be spotted on a regular
compilation process on many systems. (Even Linux distris may behave very
differently.) (BTW: unit test then also run on those system then.)
Additionally this makes it harder to do your own things beside the way of
OpenWalnut, as it was common (correct me if I am wrong) in the old days of
FAnToM_1. Finally peer review could increase.
Of course we want to provide a tool which is fast to put in action: fast
compilation process (if needed), and no "install libx, than liby,... and
finally libz)"-marathon and fast execution.

My proposal:
 * CUDA: leave it as it is by now, since we need a bigger, global support anyway
 * LibOssim: replace it by LibEigen (SVD is possible and hence the
Moore-Penrose-Inverse)
 * LibEigen: make it a standard dependency since its, platform independent,
template library just depending on standard C++.

So the only thing we must then decide if we all agree on that: put libEigen
into the source tree or not? Since its a header lib I could imagine that this
would be possible, but libEigen also may take advantages of already installed
linear algebra packages as backends for example: make use of SSE instruction
sets if available on that machine, BLAS/LAPACK, MKL, Cholmod, etc. So I
suggest it would be the best not to put in the source tree knowing that this
is an additional dependency.

please tell me what we think :), or where I am wrong.
math

-- 
Institut für Informatik
Universität Leipzig
Johannisgasse 26, 04103 Leipzig
Phone: +493419732283


More information about the OpenWalnut-Dev mailing list