I recently updated to the Intel Professional 11.1.038 compiler (Linux, Intel 64). I have some code that ran under 11.0.84 but now crashes.
The error is: /usr/local/matlab77/bin/glnxa64/MATLAB: symbol lookup error: /opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_vml_mc3.so: undefined symbol: mkl_serv_mkl_malloc
I don't have any direct VML calls in my code, therefore my assumption at this point is that the error stems from my usage of the VSL library. (Am I wrong here? Is it possible that the error stems from my usage of BLAS/LAPACK routines?)
My assumption at this point is that the error is related to the subroutine below (this is the only routine in the project which uses VSL). This subroutine is called out of a Fortran mex file. I'm not a user with particularly high technological knowledge, so any comments would be much appreciated.
Thanks in advance!
real(8), intent(in) :: var
integer(8), intent(in) :: n
real(8), dimension(n), intent(out) :: rands
integer(4), intent(in) :: entry
integer(4) :: gn
integer(4) :: errcode
real(8) :: mu
integer :: brng,method,seed
TYPE (VSL_STREAM_STATE), save :: stream
brng=VSL_BRNG_MT19937 ! this is Mersenne-Twister as in Matlab
method=VSL_METHOD_DGAUSSIAN_BOXMULLER ! use Box-Muller transform
! ***** Initialize *****
errcode=vslnewstream( stream, brng, seed )
! ***** Call RNG *****
errcode=vdrnggaussian( method, stream, gn, rands, mu, var)
! ***** Deinitialize *****
errcode=vsldeletestream( stream )
end subroutine normrandintel