[Numpy-discussion] Meta: too many numerical libraries doing the same thing?

Chris Barker chrishbarker at home.net
Mon Nov 26 12:43:02 CST 2001


Konrad Hinsen wrote:
> Chris Barker <chrishbarker at home.net> writes:
> > On another note, it looks like the blitz++ library might be a good basis
> > for a general Numerical library (and NumPy 3)  as well. It does come
> > with a flexible license. Any thoughts?

> I think the major question is whether we are willing to move to C++.
> And if we want to keep up any pretentions for Numeric becoming part of
> the Python core, this translates into whether Guido will accept C++
> code in the Python core.

Actually, It's worse than that. Blitz++ makes heavy use of templates,
and thus only works with compilers that support that well. The current
Python core can compile under a very wide variety of compilers. I doubt
that Guido would want to change that.

Personally, I'm torn. I would very much like to see NumPy arrays become
part of the core Python, but don't want to have to compromise what it
could be to do that. Another idea is to extend the SciPy project to
become a complete Python distribution, that would clearly include
Numeric. One download, and you have all you need.

> >From a more pragmatic point of view, I wonder what the implications
> for efficiency would be. C++ used to be very different in their
> optimization abilities, is that still the case? Even more
> pragmatically, is blitz++ reasonably efficient with g++?

I know g++ is supported (and I think it is their primary development
platform). From the web site:

Is there a way to soup up C++ so that we can keep the advanced language
features but ditch the poor performance? This is the goal of the
Blitz++ project: to develop techniques which will enable C++ to rival --
and in some cases even exceed -- the speed of Fortran for numerical
computing, while preserving an object-oriented interface. The Blitz++
Numerical Library is being constructed as a testbed for these
techniques.

Recent benchmarks show C++ encroaching steadily on Fortran's
high-performance monopoly, and for some benchmarks, C++ is even faster
than Fortran! These results are being obtained not through better
optimizing compilers, preprocessors, or language extensions, but through
the
use of template techniques. By using templates cleverly, optimizations
such as loop fusion, unrolling, tiling, and algorithm specialization can
be
performed automatically at compile time.

see: http://www.oonumerics.org/blitz/whatis.html for more info.

I havn't messed with it myself, but from the web page, it seems the
answer is yes, C++ can produce high performance code.






-- 
Christopher Barker,
Ph.D.                                                           
ChrisHBarker at home.net                 ---           ---           ---
http://members.home.net/barkerlohmann ---@@       -----@@       -----@@
                                   ------@@@     ------@@@     ------@@@
Oil Spill Modeling                ------   @    ------   @   ------   @
Water Resources Engineering       -------      ---------     --------    
Coastal and Fluvial Hydrodynamics --------------------------------------
------------------------------------------------------------------------




More information about the Numpy-discussion mailing list