[petsc-users] MATLAB and PetSc

Barry Smith bsmith at mcs.anl.gov
Tue Apr 22 11:11:46 CDT 2014


On Apr 22, 2014, at 10:44 AM, Sudheer Kumar <sudheer3 at gmail.com> wrote:

> I request for advice on the following:
> 
> I have a MATLAB code that uses some Linear algebra (LA) and Linear equation solver (LS) routines. I have to speed up this MATLAB code by using the i) MKL routines for LA calls and ii) Petsc routines for LS calls.
> 
> I was able to achieve the step (i) using the following commands
> 
> icc -c  -I/work/apps/matlab/2013a/extern/include -I/work/apps/matlab/2013a/simulink/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE  -fexceptions -fPIC -fno-omit-frame-pointer -pthread  -DMX_COMPAT_64 -O -DNDEBUG  "matrixMultiply.c"
> 
>  icc -O -pthread -shared -Wl,--version-script,/work/apps/matlab/2013a/extern/lib/glnxa64/mexFunction.map -Wl,--no-undefined -o  "matrixMultiply.mexa64"  matrixMultiply.o  -Wl,-rpath-link,/work/apps/matlab/2013a/bin/glnxa64 -L/work/apps/matlab/2013a/bin/glnxa64 -lmx -lmex -lmat -mkl -lm -lstdc++
> 
> 
> 
> The code with dgemm call runs fine. However, how to achieve the step (ii), i.e., calling the PetSc routing from MATLAB executables compiled with mex. Please provide if you are aware of any sample codes.

   This is a great deal of work and probably not worth it. Note that MATLAB already uses MKL internally.  How much Matlab code do you have that computes the Jacobian and functions and is it parallel?  Recommend just starting from scratch with a parallel PETSc code in C or FORTRAN than you can run problems as big as any machine you can access.

   Barry



> 
> 
> 
> I wish to eventually achieve all the above functionality for the Octave code as well. I thought of trying first with MATLAB as I thought the interface and support for external library support is better with it. Please do let me know your suggestions. Thanks.
> 
> Regards
> Sudheer



More information about the petsc-users mailing list