[erlang-questions] Vector instructions, BLAS, FFI

Alceste Scalas <>
Wed Apr 9 10:18:29 CEST 2008


Il giorno mar, 08/04/2008 alle 22.16 +1000, jm ha scritto:
> Not being very familar with blas: Is the license compatible with
> Erlang?

BLAS is just a standardized API, with several implementations.  Some
examples:

      * NetLib reference implementation: http://www.netlib.org/blas/
      * ATLAS: http://math-atlas.sourceforge.net/
      * AMD Core Math Library: http://developer.amd.com/acml.jsp
      * Intel Math Kernel Library:
        http://www.intel.com/cd/software/products/asmo-na/eng/266858.htm
      * nVIDIA CUDA: http://developer.nvidia.com/object/cuda.html

Each implementation comes with its own license (Netlib and ATLAS are
released under BSD-like, GPL-compatible licenses).  They are usually
binary compatible, so you can switch between them without recompiling
(as long as you use dynamic linking and don't depend on some
non-standard API extensions).


> Assuming yes, are you in a position to make any of the code
> public?

I hope I'll be able to release the code, but it depends on the FFI
patches --- so it may not be very useful, unless the FFI EEP is approved
in some form.


>  How well does it perform?

We tried several ways to integrate BLAS and Erlang.  The current
FFI-based implementation is slightly slower than dedicated BIFs, but
definitely faster than a linked-in driver (and definitely easier to
develop, since all the linked-in driver boilerplate code went away).

I can't provide the benchmarks data right now, but we plan to submit a
paper for the next Erlang Workshop.


> Lastly, what are the "distributed numerical applications" that Erlang is 
> being investigated for?

Simulation of mechanical and thermodynamical systems.

Regards,

alceste
-- 
Alceste Scalas <>
CRS4 - http://www.crs4.it/




More information about the erlang-questions mailing list