Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Error in loadlibrary.m MATLAB R2011a

Asked by Goryn on 10 May 2011

When I use loadlibrary.m function in parallel computations, for example using parameterSweep.m function from Algorithmic Trading 2010 Webinar, it tells me:

??? Error using ==> parallel_function at 598
Error in ==> loadlibrary at 264
A 'Selected' compiler was not found.  You may need to run mex -setup.

But I've ran mex -setup, and have chosen Lcc and also've tried Visual C++ 2005, 2008, Open WATCOM C++, other compilers, but an error is the same...

Without using function 'matlabpool open ...' it works well, in R2010b it also works well in all cases. What's wrong with R2011a? How to fix it? Do you have any sugestions, please?

3 Comments

Kaustubha Govind on 10 May 2011

Are you using a local matlabpool configuration in both R2010b and R2011a?

Goryn on 10 May 2011

Yes, I do local matlabpool configuration in both.

Goryn on 10 May 2011

In R2010b it hasn't an error about compiler, but Ken's tip does work well. There is a problem with a license for the DLL that I've described in an answer for Ken's reply.

Goryn

1 Answer

Answer by Ken Atwell on 10 May 2011
Accepted answer

It sounds like the cluster is attempting to invoke a compiler to support loadlibrary, but no compiler has been set up on the cluster. This probably isn’t the best way to go about this anyhow. I would try the following:

  1. Invoke loadlibrary on your local machine (*not* the cluster) with the mfilename option.
  2. Inside your parfor loop, load your DLL using the MATLAB file created in step #1 (that is, don’t call loadlibrary directly).

This will avoid the need for a compiler on the cluster and should be sufficient for your needs. You’ll need to ensure that the DLL you are loading, as well at the generated MATLAB file (and thunk file on win64 – see the doc for loadlibrary) are visible to your cluster. You may get this “for free” if you have a shared filesystem between the cluster and client; otherwise, you may need to marshal those files to the cluster using PCT’s configuration manager.

All of this assumes the cluster is running the same platform (win32?) as your client machine. If the cluster is something else, this approach won’t work.

2 Comments

Goryn on 10 May 2011

Thank you, Ken! It does work. But there is another problem: the DLL was installed with license for one computer (but I can get more) and when it calls from another CPU core (not cluster in this case) it brings an error like "you have'nt got a permission for use this DLL on another comp". Any sugestions how to avoid that, please?

Ken Atwell on 11 May 2011

Sorry, Goryn, no ideas on the license management issue. The vendor for your DLL may be able to help.

Ken Atwell

Contact us