OONumerics User :

From: Jules Bergmann (jules_at_[hidden])
Date: 2006-01-26 12:42:17


Roman Krylov wrote:
> Hi.
> Could you also comment the degree of similarity of VSIPL++ with POOMA
> (dropped support last year by codesourcery).
> Why instead improving pooma, make yet_another_library 'from ground up'?
> Thanks,
> Roman.
>

Roman,

Sure, that is a great question.

VSIPL++ is a open standard API for vector, signal, and image processing.
  It has been developed by the VSIPL Forum, which already had defined a
standard C API called VSIPL. VSIPL defines a core set of signal
processing functionality that was worked out over several years between
the user communinity and library and hardware vendors. One of the
primary goals of VSIPL was to allow SIP applications to be developed in
a portable way, without being locked down to a specific vendor's
propreitary library. It has been successful, there are VSIPL
implementations for a number of embedded platforms

In developing a new C++ API, they wanted to accomplish several things.
First, they wanted to boost productivity by using the C++ object
notation to bring the program closer to the domain. Second, they wanted
to improve performance over the existing library by using C++ generic
and template programming techniques, for example performing loop fusion
with expression templates. Finally, they wanted to incorporate support
for parallalism into the initial standard so that programs could be
scalable, as well as portable.

Naturally, they drew from the experience of existing high performance
C++ libraries, including POOMA, Blitz++, PETE. This is how CodeSourcery
got involved in the VSIPL++ project. The VSIPL Forum wanted "VSIPL++ to
do for signal processing, what POOMA did for physics".

So the first difference is that VSIPL++ and POOMA is that they target
different domains: VSIPL++ is for high-performance signal-processing,
often done in embedded real-time environments, while POOMA is for
high-performance physics simulations on super computers.

A second difference is that VSIPL++ is an open standard. Currently two
implementations exist (CodeSourcery's high-performance implementation
and a reference implementation). It is possible for new vendors to pick
up the standard and create their own implementation. The goal is to
develop a self-sustaining "marketplace" of multiple users and multiple
vendors.

For more information on C VSIPL, visit www.vsipl.org . For more
information on VSIPL++ standard, you can visit www.hpec-si.org .

                 -- Jules