Dave, This is going to be a bitch to fix. The problem is that ML is passing "int" arguments to BLAS and LAPACK (which probably seemed reasonable at the time :-). But the BLAS/LAPACK in MATLAB 64bit is all 64 bit integers. So possible fixes
1) go through all of ML and change all int that are passed to Blas/LAPACK to allow switching to 64 bit int. This ain't going to happen, no one will wade through that code and make these changes. 2) somehow force the BLAS/LAPACK calls from the PETSc shared library to go to the regular BLAS/LAPACK and not Matlab's. I have no idea how to do this :-(. Note that if hypre/superlu etc use an BLAS/LAPACK calls they __could__ have the same problem (as could the BLAS/LAPACK calls in PETSc) but it seems that sometimes (most of the time?) it uses the "regular" BLAS/LAPACK instead of MATLAB's funny one. I don't understand how or why this happens, perhaps if I understood we could get it to be "always". It seems to get to the MATLAB ones for "less common" calls. Note also that PETSc handles the int argument to BLAS/LAPACK with PetscBLASInt which can, in theory be switched to use 64 bit integers and thus happily use the MATLAB BLAS/LAPACK I've tried changing this but have not been happy yet. To make things even harder MATLAB has three libraries with the word blas in them and 2 with the word lapack. In addition it appears to use some dynamic loading to get at the mkl libraries. bsmith-laptop:petsc-dev barrysmith$ ls /Applications/MATLAB_R2010b.app/bin/maci64/*blas* /Applications/MATLAB_R2010b.app/bin/maci64/blas.spec /Applications/MATLAB_R2010b.app/bin/maci64/libmwblas.dylib /Applications/MATLAB_R2010b.app/bin/maci64/libmwblascompat32.dylib /Applications/MATLAB_R2010b.app/bin/maci64/refblas.dylib bsmith-laptop:petsc-dev barrysmith$ ls /Applications/MATLAB_R2010b.app/bin/maci64/*lapack* /Applications/MATLAB_R2010b.app/bin/maci64/libmwlapack.dylib /Applications/MATLAB_R2010b.app/bin/maci64/mllapack.dylib Note also if you think the Mac is bad, it seems to switch to the MATLAB Blas/lapack more under LINUX making the MATLAB interface for PETSc not all that usable at this point, while it is pretty usable from the Apple. I'll screw around a little more to see if I can understand 2) better. Barry On Dec 27, 2010, at 11:44 AM, Dave May wrote: > I'm trying to use PCML via the matlab interface with petsc-dev. > > Every time -pc_type is set to "ml", I find matlab crashes. I've > attached the matlab script I was using. > I don't know the "best" way to track this crash down, but I've pasted > what appears to be the interesting part reported by system stack trace > (I've attached the entire trace in the rtf file). > > Thread 3: > 0 libSystem.B.dylib 0x00007fff84201541 log + 145 > 1 mllapack.dylib 0x000000014ea229b0 dsteqr_ + 2208 > 2 libpetsc.dylib 0x000000014e104d3f > ML_CG_ComputeEigenvalues + 2799 (ml_cg.c:384) > 3 libpetsc.dylib 0x000000014e106940 ML_Krylov_Solve > + 112 (ml_krylov.c:370) > 4 libpetsc.dylib 0x000000014e0b0685 > ML_AGG_Gen_Prolongator + 3141 (ml_agg_genP.c:531) > 5 libpetsc.dylib 0x000000014e0aeb18 > ML_Gen_MultiLevelHierarchy + 2600 (ml_agg_genP.c:2559) > 6 libpetsc.dylib 0x000000014e0af4c4 > ML_Gen_MultiLevelHierarchy_UsingAggregation + 564 (ml_agg_genP.c:2444) > 7 libpetsc.dylib 0x000000014da60c91 PCSetUp_ML + > 3173 (ml.c:601) > 8 libpetsc.dylib 0x000000014dc08eeb PCSetUp + 2076 > (precon.c:785) > > It appears that the symbol dsteqr called by ML_CG_ComputeEigenvalues() > is taken from matlab's own lapack library. > Does this sound like the right thing which should happen, or is this a > configuration problem on my end? > I've attached the configure.log in case. > > I should also point out that I can reliably call hypre through the > matlab interface without any crashes. > > If there are any tips for debugging this type of error, please let me know. > :) > And let me know if this type of discussion should be moved over to > petsc-dev rather than maint. > > Cheers, > Dave > > Additional info: > > Matlab version: 7.11.0.584 (R2010b), 64bit > OS Version: Darwin geop-217.ethz.ch 10.5.0 Darwin Kernel Version > 10.5.0: Fri Nov 5 23:20:39 PDT 2010; > root:xnu-1504.9.17~1/RELEASE_I386 i386 > > <PCSetUp_ML.rtf><exml.m><configure.log.tar.gz>
