Matlab status

From CAC Documentation wiki
Jump to navigation Jump to search

Matlab Status and Random Notes

Status

JSDL CXF-basec client code is written that encapsulates start, stop, and status functionality. Code has been built into a jar and can be called from matlab, though modifications to the $matlabroot/toolbox/local/classpath.txt are required to get the jars loaded at startup.


Notes

Matlab JVM Matlab uses a Sun 1.6 JRE and most added jars can be found in $matlabroot/java/jar and $matlabroot/java/jaret The JRE itself is located in $matlabroot/sys/java/jre/PLATFORM/jre (platform is something like glnxa64,win32,win64,mac,etc


ICE There is a set of jars in $matlabroot/java/jar/ice that conflict with CXF. Specifically ib6https.jar contains a HttpsURLConnection object that doesn't inherit from Suns class and so breaks things. These jars apparently belong to ICEbrowser , which is a (now-defunct) java-only browser of some kind. Presumably, this is used for things like displaying help, etc. Since I don't know how to test ICE (https at least), I don't actually know if I can change the classpath to get things to work or not.


JSDL The HPCBasicProfile application takes a (essentially)MS-specific extension to JSDL called the JSDL HPC Profile Application Extension. This extension is needed to specify the actual executable that should be run on the cluster. JSDL itself doesn't really specify what the executable is (ie, the contents of a batch script) it's more occupied with specifying what amounts to the resource requirements for the job to run. The typical extension is the JSDL posix extension, which for obvious reasons isn't ideally suited to run things on a Windows platform. So instead the JSDL HPC Profile Application Extension is provided, which is a bare-bones extension that allows you to provide the name of an executable, arguments, a working directory and files for standard output and standard error. A standard input is also provided, but I'm not sure exactly how this works relative to the arguments and things, so it doesn't appear to get often used. This ends up making the JSDL Application entry look something like this:

		<jsdl:Application>
			<jsdl:ApplicationName>ls</jsdl:ApplicationName>
			<jsdl-hpcpa:HPCProfileApplication>
				<jsdl-hpcpa:Executable>/bin/ls</jsdl-hpcpa:Executable>
				<jsdl-hpcpa:Argument>-la file1.txt file2.txt file3.txt> output1.txt output2 output3.zaz</jsdl-hpcpa:Argument>
				<jsdl-hpcpa:Environment name="LD_LIBRARY_PATH">/usr/local/lib</jsdl-hpcpa:Environment>
				<jsdl-hpcpa:Environment name="GW_LOCATION">/local/home/jose</jsdl-hpcpa:Environment>
				<jsdl-hpcpa:Input>/dev/null</jsdl-hpcpa:Input>
				<jsdl-hpcpa:Output>stdout.${JOB_ID}</jsdl-hpcpa:Output>
				<jsdl-hpcpa:Error>stderr.${JOB_ID}</jsdl-hpcpa:Error>
			</jsdl-hpcpa:HPCProfileApplication>
		</jsdl:Application>