[kepler-users] Kepler 2.3 and MATLAB

Daniel Crawl danielcrawl at gmail.com
Sat Apr 21 13:48:07 PDT 2012


I can run the MatlabExpression workflow with Kepler 2.3 on
WinXP SP3 (32bit) using Matlab 2009A and Java 1.6.0_31-b05.

Your PATH looks ok (assuming you installed Matlab in C:\ and
not the default C:\Program Files). It's possible that ptmatlab.dll
is not compatible with newer versions of Matlab. You can find
instructions on building ptmatlab.dll here:

https://kepler-project.org/developers/teams/build/matlab-lib-build-instructions-in-kepler-for-matlab-actor/

   --dan

On 4/21/12 4:17 AM, Wade Sheldon wrote:
> Hi Derek,
>
> Here you go:
>
> PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Python25;C:\Program
> Files\WinZip;C:\Program Files\Bitvise Tunnelier;C:\Program
> Files\Microsoft SQL
> Server\80\Tools\Binn;C:\ArcGIS\arcexe9x\bin;C:\MATLAB\R2011b\bin;C:\MATLAB\R2011b\bin\win32;C:\Program
> Files\cURL;C:\Program Files\TortoiseSVN\bin;C:\Program
> Files\R\R-2.15.0\bin;C:\Program Files\Common Files\Roxio
> Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared
>
>
> I have several versions of MATLAB on this box for code testing, but I
> made sure only one is present in the path each time I tested (currently
> 2011b). I also confirmed that the target "libmex.dll" is present in
> \bin\win32.
>
> I don't have cygwin installed to test Christopher's idea about building
> a new .dll, but I may play with that option over the weekend if I get
> ambitious. Based on Matt's comment that may ultimately prove necessary
> if the problem doesn't come down to path handling.
>
> Thanks for your input.
>
> -Wade
>
>
> On 4/20/2012 11:30 PM, Derik Barseghian wrote:
>> Sorry this hasn't been easy, and no help from me yet -- I'm trying to
>> get Matlab and a license for my 32bit XP box so that I can try to
>> replicate, hopefully on Monday. It seems to me it should work on your
>> XP box. The last commit message for ptmatlab.dll says it's 32bit:
>> --------------
>> r24053 | crawl | 2010-04-29 13:30:49 -0700 (Thu, 29 Apr 2010) | 2 lines
>>
>> updating matlab jni library for 32 bit windows
>> based on ptmatlab.cc r57728.
>> --------------
>>
>> Interesting to hear about the error on 64bit AMD, sounds like we have
>> an (additional) problem there.
>>
>> Can you send your PATH?
>> Derik
>>
>> On Apr 20, 2012, at 8:14 PM, Wade Sheldon wrote:
>>
>>> No joy under Win7/64 either with a clean install of Kepler 2.3 and
>>> the proper Matlab paths (albeit R2010a 64bit). However this time I
>>> get an error related to running 32bit libraries on the system:
>>> C:\Program Files
>>> (x86)\Kepler-2.3\common-2.3.0\lib\ptolemy\matlab\ptmatlab.dll: Can't
>>> load IA 32-bit .dll on a AMD 64-bit platform
>>>
>>> (This is an Intel Core i7, not AMD cpu, BTW).
>>>
>>> Sigh. Harder than I'd hoped. Python and R work fine as on WinXP/32 -
>>> the problem is just related to the MatlabExpression actor, which is
>>> what I'm particularly interested in using.
>>>
>>> -Wade
>>>
>>>
>>> On 4/20/2012 10:41 PM, Wade Sheldon wrote:
>>>> Also, I updated Java to the latest version (1.6.0_31-b05),
>>>> uninstalled Kepler, and reinstalled from a full admin account. Same
>>>> results. From what I can find on the web, that "The operating system
>>>> cannot run %1" is a generic error that implies a path issue.
>>>> Anything I can check regarding the Kepler classpath or libraries
>>>> come to mind?
>>>>
>>>> Thanks again for your help.
>>>>
>>>> -Wade
>>>>
>>>> On 4/20/2012 10:02 PM, Wade Sheldon wrote:
>>>>> Thanks, Christopher. I had already perused the mailing list
>>>>> archives via Google and just saw references to the same issue
>>>>> without solutions. I confirmed that the JVM bit width is 32 (Java
>>>>> version 1.6.0_20).
>>>>>
>>>>> I set up a simpler workflow with just a SDF director,
>>>>> MatalbExpression actor and text display actor, and configured the
>>>>> expression: "rand(100,1);", but I got the same error. Here's the
>>>>> trace from the first time it was invoked, which yielded a little
>>>>> more info as you indicated, specifically "C:\Program
>>>>> Files\Kepler-2.3\common-2.3.0\lib\ptolemy\matlab\ptmatlab.dll: The
>>>>> operating system cannot run %1". Hope that points to a specific issue.
>>>>>
>>>>> Thanks.
>>>>>
>>>>> -Wade
>>>>>
>>>>> complete stack dump:
>>>>> ptolemy.kernel.util.IllegalActionException: There was a problem
>>>>> invoking the Ptolemy II Matlab interface.
>>>>> The interface has been tested under Linux, Mac OS X, and Windows.
>>>>> The interface requires that Matlab be installed on the local
>>>>> machine and that the ptmatlab shared library available.
>>>>> * Under Linux, you must have the LD_LIBRARY_PATH environment
>>>>> variable set to include the directories that contain libmx.so and
>>>>> libptmatlab.so.
>>>>> * Under Mac OS X, you must have the DYLD_LIBRARY_PATH environment
>>>>> variable set to include the directories that contain libmx.dylib
>>>>> and libptmatlab.jnilib.
>>>>> * Under Windows, you must have your PATH set to include the Matlab
>>>>> bin/win32 or equivalent directory so that libmex.dll is found and
>>>>> the directory that contains libptmatlab.dll. In addition, if you
>>>>> are running under Windows from the Cygwin bash prompt, then you
>>>>> must start Vergil with the -jni argument: $PTII/bin/vergil -jni.
>>>>> For details, see $PTII/jni/package.html.
>>>>> Refer to $PTII/ptolemy/matlab/makefile for more information.
>>>>> in .Unnamed1.MatlabExpression
>>>>> Because:
>>>>> C:\Program
>>>>> Files\Kepler-2.3\common-2.3.0\lib\ptolemy\matlab\ptmatlab.dll: The
>>>>> operating system cannot run %1
>>>>> at ptolemy.matlab.Expression.preinitialize(Expression.java:263)
>>>>> at ptolemy.actor.Director.preinitialize(Director.java:1056)
>>>>> at ptolemy.actor.Director.preinitialize(Director.java:1035)
>>>>> at
>>>>> ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:655)
>>>>>
>>>>> at
>>>>> ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1735)
>>>>> at
>>>>> ptolemy.actor.Manager.preinitializeAndResolveTypes(Manager.java:930)
>>>>> at ptolemy.actor.Manager.initialize(Manager.java:636)
>>>>> at ptolemy.actor.Manager.execute(Manager.java:340)
>>>>> at ptolemy.actor.Manager.run(Manager.java:1111)
>>>>> at ptolemy.actor.Manager$PtolemyRunThread.run(Manager.java:1641)
>>>>> Caused by: java.lang.UnsatisfiedLinkError: C:\Program
>>>>> Files\Kepler-2.3\common-2.3.0\lib\ptolemy\matlab\ptmatlab.dll: The
>>>>> operating system cannot run %1
>>>>> at java.lang.ClassLoader$NativeLibrary.load(Native Method)
>>>>> at java.lang.ClassLoader.loadLibrary0(Unknown Source)
>>>>> at java.lang.ClassLoader.loadLibrary(Unknown Source)
>>>>> at java.lang.Runtime.load0(Unknown Source)
>>>>> at java.lang.System.load(Unknown Source)
>>>>> at
>>>>> ptolemy.data.expr.UtilityFunctions._loadLibrary(UtilityFunctions.java:2068)
>>>>>
>>>>> at
>>>>> ptolemy.data.expr.UtilityFunctions.loadLibrary(UtilityFunctions.java:927)
>>>>>
>>>>> at ptolemy.matlab.Engine.<clinit>(Engine.java:176)
>>>>> at ptolemy.matlab.Expression.preinitialize(Expression.java:260)
>>>>> ... 9 more
>>>>> Caused by: java.lang.UnsatisfiedLinkError: C:\Program
>>>>> Files\Kepler-2.3\common-2.3.0\lib\ptolemy\matlab\ptmatlab.dll: The
>>>>> operating system cannot run %1
>>>>> at java.lang.ClassLoader$NativeLibrary.load(Native Method)
>>>>> at java.lang.ClassLoader.loadLibrary0(Unknown Source)
>>>>> at java.lang.ClassLoader.loadLibrary(Unknown Source)
>>>>> at java.lang.Runtime.load0(Unknown Source)
>>>>> at java.lang.System.load(Unknown Source)
>>>>> at
>>>>> ptolemy.data.expr.UtilityFunctions._loadLibrary(UtilityFunctions.java:2068)
>>>>>
>>>>> at
>>>>> ptolemy.data.expr.UtilityFunctions.loadLibrary(UtilityFunctions.java:927)
>>>>>
>>>>> at ptolemy.matlab.Engine.<clinit>(Engine.java:176)
>>>>> at ptolemy.matlab.Expression.preinitialize(Expression.java:260)
>>>>> at ptolemy.actor.Director.preinitialize(Director.java:1056)
>>>>> at ptolemy.actor.Director.preinitialize(Director.java:1035)
>>>>> at
>>>>> ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:655)
>>>>>
>>>>> at
>>>>> ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1735)
>>>>> at
>>>>> ptolemy.actor.Manager.preinitializeAndResolveTypes(Manager.java:930)
>>>>> at ptolemy.actor.Manager.initialize(Manager.java:636)
>>>>> at ptolemy.actor.Manager.execute(Manager.java:340)
>>>>> at ptolemy.actor.Manager.run(Manager.java:1111)
>>>>> at ptolemy.actor.Manager$PtolemyRunThread.run(Manager.java:1641)
>>>>>
>>>>>
>>>>> On 4/20/2012 6:38 PM, Christopher Brooks wrote:
>>>>>> Hi Wade,
>>>>>> I don't think I have a WinXP installation at hand, but I was able
>>>>>> to run the MatlabExpression demo under Windows Server 2003 with a
>>>>>> 32-bit JVM from a clean install of Kepler-2.3. Windows Server 2003
>>>>>> is fairly similar to XP.
>>>>>>
>>>>>> To determine the bit width of your JVM, start up Kepler, go to
>>>>>> Tools -> check settings and look at the value of
>>>>>> sun.arch.data.model = 32
>>>>>>
>>>>>> When I start a dos shell (Start->Run->cmd), I can start matlab
>>>>>> from the command line, which works for you.
>>> --
>>> ______________________________________________________________________________
>>>
>>>
>>> Wade M. Sheldon
>>> GCE-LTER Information Manager/SIMO Database Administrator
>>> School of Marine Programs
>>> University of Georgia
>>> Athens, GA 30602-3636
>>> Email: sheldon at uga.edu
>>> WWW:
>>> http://gce-lter.marsci.uga.edu/public/app/personnel_bios.asp?id=wsheldon
>>>
>>>
>>> _______________________________________________
>>> Kepler-users mailing list
>>> Kepler-users at kepler-project.org
>>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>
>



More information about the Kepler-users mailing list