[Csdp] Using cblas and clapack with CSDP

Brian Borchers borchers at nmt.edu
Fri Oct 29 16:20:00 EDT 2010


On Fri, Oct 29, 2010 at 12:53 PM, Henri Kjellberg
<henrikjellberg at gmail.com> wrote:
> Hi All,
>
> I am interested in installing CSDP onto either an ARM 11 or a PowerPC
> (PPC_6xx) embedded system for a picosatellite project at the
> University of Texas. The problem I currently am facing is that my ARM
> 11 and my MPC5200 (the ppc_6xx) do no have gfortran installed, and I
> have not found a cross-compiliation tool that would allow me to do
> gfortran for ARM.
>
> I am curious, could I install CSDP using the clapack and cblas.
> Currently, I have gslcblas installed on the powerpc...
>

CSDP uses the standard Fortran style LAPACK/BLAS interfaces, which use
column major ordering of matrices, vector and matrix indexes that
start at 1 rather than 0, and pass by reference rather than pass by
value.  Note that this means that programs that call CSDP as a
subroutine need to use Fortran style arrays with column major
ordering!

As I understand the situation (I've never bothered to use the CLAPACK
implementations of BLAS and LAPACK routines and I've never used the
CBLAS API for the BLAS, so I'm certainly not an expert on this...)

1. CLAPACK is the original Fortran implementation of LAPACK converted
to C with the f2c conversion utility.  It exepcts routines to be
called using the standard Fortran style LAPACK interface.  If this is
correct, using CLAPACK instead of the original Fortran version of
LAPACK should cause no problems.

2. CLAPACK makes use of the Fortran style interface to lower level
BLAS routines.  The CLAPACK implementation of LAPACK includes f2c
translated versions of the old Fortran reference BLAS implementation
of the BLAS library.  If this is correct, then you should be able to
use the BLAS routines in CLAPACK with CSDP.

3. For the BLAS, an alternative API that uses C calling conventions
(e.g. array dimensions are passed by value) has been created.  This
interface is called CBLAS.  CSDP is not written to use the CBLAS
interface and simply won't work with it.

4. The GSL library contains implementations of the BLAS functions with
a CBLAS interface.  These wouldn't be useful with CSDP.

If I'm right, then simply building CLAPACK for your system should
provide everything that's required for CSDP to run. Let me know how it
goes!

If someone on this list has more experience with CLAPACK, I'd
certainly appreciate your input.

-- 
Brian Borchers                          borchers at nmt.edu
Department of Mathematics      http://www.nmt.edu/~borchers/
New Mexico Tech                       Phone: (575) 322-2592
Socorro, NM 87801                   FAX: (575) 835-5366




More information about the Csdp mailing list