Subject: Re: [boost] different matrix library?
From: joel (joel.falcou_at_[hidden])
Date: 2009-08-15 06:44:19
Edward Grace wrote:
> I still maintain that doing scientific computing in C++ is an uphill
> struggle. Some may argue that C++ is not about the library its about
> the language. In practice the pragmatic pick a language because of
> the library. The STL (and Boost of course) bridges that gap somewhat,
> but a ratified SSTL (Scientific Standard Template Library) would be a
> massive boon to C++ for science.
That's somehow my long term objective as a researcher. The state of the
art C++ idioms are now matrue enough to help us do it right.
> The plethora of rarely used half finished C++ linear algebra libraries
> on the web are a testament to that.
Mine being the first alas :/
> Joel, as an aside - have people (e.g. you) started looking at using
> C++ metadata to carry out code transformations that span abstractions
> - potentially very useful for parallelising? For example being able
> to concretely make certain guarantees about the dependence of various
> variables (e.g. regarding aliasing) in a program could allow
> higher-level optimisations to be performed.
Well, I can send you copy of the Europar 08 paper I wrote that deals
with introspecting C++ expression using ET to know when the threading is
useful and when it's not. This is my main topic of interest but I'm more
on the library side than compiler side. My objectives now is to have a
collection of heuristic on domain specific expression AST that helps me
know which kind of parallelism or other optimization I can or shoudl apply.
At an even larger scope, what I want to do is solve the problem of
"auto-parallelisation" not by findign *the* general heuristic for doign
it but by slicing the problem one domain after the other, find the
domain heuristic adn use things like proto and generative programming to
stich the domain together.
We can go private if you want more details.
> That said, I think the amount of work involved here should not be
> underestimated. My bet is that there are so many of these 'matrix'
> libraries out there because people discover object orientation, then
> template metaprogramming and plough on to write their own library.
> When it gets good enough for what they want they stop - the full
> problem as I think Joel is eluding to is huge and very very hard indeed.
It is. And it gets uglier and uglier as new fancy machines comes out. I
have funding this years for just porting the core NT2 over GPUs and it
looks friggin massive.
> Ideally a project like this should get some sort of sponsorship. If a
> team of (say) 4 C++ experts could be put together with a team of other
> stakeholders (mathematicians, physicists and engineers) and FORTRAN90
> HPC experts - who will have a wealth of experience, with some industry
> support (e.g. NVIDIA) truly great things could happen.
We're two here doing that : me as the lead C++ and parallelism developer
and Jean-Thierry Lapresté which is a professor of mathematics that helps
with the algebra algorithm and hit me with a large trout when he found
the interface starts to look to cumbersome for base users.
We don't mind heads and hands from any other side of the fences.
NT2 is already using boost license so if needed it can become a
candidate for boost library status all together. In fact, well, if
anyoen interested we can setup some work plans.
-- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk