Portability - BLAS, LAPAC

Discussion created by mbaran on Jul 3, 2009
Latest reply on Jan 8, 2010 by mikeyo


I am a newb here, so please bare with me.

I have a project to create some DSP code in C. However, this code needs to be portable. Our computing platform has a bunch of AMD cores, so I would like to use ACML.

Is there a way to write C code that calls BLAS and LAPACK so that things are portable? If years from now, someone decides to buy different CPU's I don't want to write things again.

From my understanding, there are three ways to call BLAS, and LPACK:

  • direct FORTRAN calls
  • C interface routines (CBLAS, CLAPACK)
  • ACML wrappers


The direct FORTRAN calls are difficult. However, they definitely will be portable with any vendor that implements BLAS or LAPACK.


The vendor wrappers are nice and easy to understand. However, you cannot directly take the code from say, the Sun Performance Library and run it on another box that implements BLAS or LAPACK.


The CBLAS and CLAPACK are like an in between. They are easier to call from C


Can anyone speak on this? Anything would be great. Thank you !