<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to UsersGuideExampleApplication</title><link>https://sourceforge.net/p/matlabbatch/wiki/UsersGuideExampleApplication/</link><description>Recent changes to UsersGuideExampleApplication</description><atom:link href="https://sourceforge.net/p/matlabbatch/wiki/UsersGuideExampleApplication/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 20 Feb 2014 07:41:24 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/matlabbatch/wiki/UsersGuideExampleApplication/feed" rel="self" type="application/rss+xml"/><item><title>UsersGuideExampleApplication modified by Volkmar Glauche</title><link>https://sourceforge.net/p/matlabbatch/wiki/UsersGuideExampleApplication/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="toy-example-application"&gt;Toy Example Application&lt;/h1&gt;
&lt;p&gt;The example application consists of four modules that perform very simple calculations on numbers or vectors. The emphasis of this example is on &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;introducing the GUI to the batch system &lt;/li&gt;
&lt;li&gt;discussing different ways to describe inputs and outputs of a module &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Imported from wikispaces" src="/apps/trac/matlabbatch/raw-attachment/wiki/MiscWikiFiles/cfg_toy_example_menu.png" /&gt;The application is not included in the default setup of the batch system. To use it, locate the installation folder of the matlabbatch software on your computer (e.g. by running &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;which&lt;/span&gt; &lt;span class="n"&gt;cfg_util&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;in the MATLAB command window). If the batch GUI is not yet started, run &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cfg_ui&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;in the MATLAB command window. Once the user interface is running, select &lt;em&gt;Add application&lt;/em&gt; from the &lt;em&gt;File&lt;/em&gt; menu and add the application &lt;code&gt;examples/cfg_example_master.m&lt;/code&gt;. After that, a new menu &lt;em&gt;Toy Example&lt;/em&gt; should appear in the user interface. &lt;/p&gt;
&lt;h2 id="modules"&gt;Modules&lt;/h2&gt;
&lt;p&gt;The example consists of different modules that perform simple computations: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add exactly two numbers: a + b &lt;/li&gt;
&lt;li&gt;Sum over a vector: sum(v), cumsum(v) &lt;/li&gt;
&lt;li&gt;Integer divide: mod(a,b) and rem(a,b) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To demonstrate the programming concepts for batch configurations, there are different implementations of the &lt;em&gt;Add&lt;/em&gt; and &lt;em&gt;Cumsum&lt;/em&gt; modules. In a real application, these modules would correspond to algorithms that solve your real-world problems. &lt;/p&gt;
&lt;h1 id="a-first-example"&gt;A first Example&lt;/h1&gt;
&lt;p&gt;Select &lt;em&gt;Add1&lt;/em&gt; from the &lt;em&gt;Add 2 Numbers&lt;/em&gt; menu. The module will now appear in the module list, and its details are displayed as current module. Two inputs have to be entered: &lt;em&gt;Input a&lt;/em&gt; and &lt;em&gt;Input b&lt;/em&gt;. After entering two numbers, the &lt;em&gt;Play&lt;/em&gt; button will turn green, since all inputs are set and &lt;em&gt;Add1&lt;/em&gt; is ready to run. When the job is run, the following output appears in the MATLAB command window: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;-----------------------------------------------------------------------&lt;/span&gt;
&lt;span class="n"&gt;Running&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="o"&gt;-----------------------------------------------------------------------&lt;/span&gt;
&lt;span class="n"&gt;Running&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;Add1&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;Done&lt;/span&gt;    &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;Add1&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;Done&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The header contains an internal job number. Below, the name of each executed module follows, along with possible command line output of the module. If the job finished without error, the last line will read "Done". Otherwise, a list of failed modules follows, together with the corresponding MATLAB error messages. &lt;/p&gt;
&lt;h2 id="access-job-output"&gt;Access Job Output&lt;/h2&gt;
&lt;p&gt;Although the example job finished, the result (i.e. the sum of the two numbers) is not passed automatically to MATLAB workspace. (In real applications, most computation results will probably be saved to some file, and the filename would be of interest to work with.) In this example, one can use &lt;em&gt;Pass Output to Workspace&lt;/em&gt; from &lt;em&gt;BasicIO&lt;/em&gt; to fetch the result from &lt;em&gt;Add1&lt;/em&gt;. The &lt;em&gt;Output Item&lt;/em&gt; should be set as a dependency: &lt;br /&gt;
&lt;img alt="Imported from wikispaces" src="/apps/trac/matlabbatch/raw-attachment/wiki/MiscWikiFiles/cfg_toy_example_output.png" /&gt;&lt;/p&gt;
&lt;p&gt;The output variable name can be any valid MATLAB variable name - if an invalid name is entered, the batch system will print a runtime warning and refuse to execute &lt;em&gt;Pass Output to Workspace&lt;/em&gt;: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;-----------------------------------------------------------------------&lt;/span&gt;
&lt;span class="n"&gt;Running&lt;/span&gt; &lt;span class="n"&gt;job&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="o"&gt;-----------------------------------------------------------------------&lt;/span&gt;
&lt;span class="n"&gt;Contents&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;does&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;meet&lt;/span&gt; &lt;span class="n"&gt;check&lt;/span&gt; &lt;span class="n"&gt;criteria&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;valid&lt;/span&gt; &lt;span class="n"&gt;variable&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;Running&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;Add1&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;Done&lt;/span&gt;    &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;Add1&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;Contents&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;does&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;meet&lt;/span&gt; &lt;span class="n"&gt;check&lt;/span&gt; &lt;span class="n"&gt;criteria&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;valid&lt;/span&gt; &lt;span class="n"&gt;variable&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;No&lt;/span&gt; &lt;span class="n"&gt;executable&lt;/span&gt; &lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;but&lt;/span&gt; &lt;span class="n"&gt;still&lt;/span&gt; &lt;span class="n"&gt;unresolved&lt;/span&gt; &lt;span class="n"&gt;dependencies&lt;/span&gt; &lt;span class="n"&gt;or&lt;/span&gt; &lt;span class="n"&gt;incomplete&lt;/span&gt; &lt;span class="n"&gt;module&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;The&lt;/span&gt; &lt;span class="n"&gt;following&lt;/span&gt; &lt;span class="n"&gt;modules&lt;/span&gt; &lt;span class="n"&gt;did&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="nl"&gt;Skipped:&lt;/span&gt; &lt;span class="n"&gt;Pass&lt;/span&gt; &lt;span class="n"&gt;Output&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;Workspace&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;As soon as a valid variable name is entered and the job is started again, both modules will be run, and the result will be accessible in the MATLAB command window. &lt;/p&gt;
&lt;h1 id="a-more-complex-example"&gt;A more complex Example&lt;/h1&gt;
&lt;p&gt;&lt;img alt="Imported from wikispaces" src="/apps/trac/matlabbatch/raw-attachment/wiki/MiscWikiFiles/flow_toy_example_add1_div_reuse_b.png" /&gt;&lt;img alt="Imported from wikispaces" src="/apps/trac/matlabbatch/raw-attachment/wiki/MiscWikiFiles/flow_toy_example_add1_div_simple.png" /&gt;Now think of a computation like &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In a batch, one would first compute &lt;code&gt;a+b&lt;/code&gt; using one of the &lt;em&gt;Add&lt;/em&gt; modules, pass the result on to the &lt;em&gt;Div&lt;/em&gt; module and finally pass the &lt;em&gt;mod&lt;/em&gt; output on to the workspace (see &lt;code&gt;examples/batch_example_add1_div.m&lt;/code&gt;). This batch has three input items that need to be filled - the values for &lt;em&gt;a&lt;/em&gt;, &lt;em&gt;b&lt;/em&gt;, &lt;em&gt;c&lt;/em&gt;. &lt;br /&gt;
If the computation should be &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;one can still use the batch above. However, a better structure is described in the next section. &lt;/p&gt;
&lt;h2 id="reusing-inputs"&gt;Reusing Inputs&lt;/h2&gt;
&lt;p&gt;So far, the batch does not reflect the condition that &lt;em&gt;b&lt;/em&gt; and &lt;em&gt;c&lt;/em&gt; should be the same. &lt;em&gt;Named Input&lt;/em&gt; from &lt;em&gt;BasicIO&lt;/em&gt; allows to pass its input value as a dependency. The resulting batch is &lt;code&gt;examples/batch_example_add1_div_reuse_b.m&lt;/code&gt;. There, neither &lt;em&gt;Add1&lt;/em&gt; and &lt;em&gt;Div&lt;/em&gt; have open inputs anymore, because both values are entered as &lt;em&gt;Named Input&lt;/em&gt; and passed on via dependencies. &lt;/p&gt;
&lt;h1 id="job-templates-and-scripting"&gt;Job Templates and Scripting&lt;/h1&gt;
&lt;p&gt;Until now, the batches were created and run through the GUI. For a small number of datasets at a time this is the easiest way to run batches. However, if data processing has to be integrated in a workflow that does not allow direct user interaction, other solutions are necessary. The batch system addresses these needs with the command line interface to &lt;code&gt;cfg_util&lt;/code&gt;, the main configuration management utility. In a batch processing script, the following information needs to be collected: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The script or MATLAB variable that describes the job. This can be a single job, or a cell array of jobs (e.g. 100 copies of a template job that has to be applied to 100 different data sets). &lt;/li&gt;
&lt;li&gt;The inputs (marked with &lt;em&gt;&amp;lt;-X&lt;/em&gt;) to each of the jobs, in the order they appear in the jobs. Inputs which are already set in the template can not be changed. If a pre-set input has to be changed, the GUI can be used to clear its value using &lt;em&gt;Clear Value&lt;/em&gt; from &lt;em&gt;Edit&lt;/em&gt; menu. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following code shows how to run &lt;code&gt;examples/batch_example_add1_div_reuse_b.m&lt;/code&gt; from a MATLAB script or function: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="c"&gt;% load batch from saved script - replace /path_to with the path to your matlabbatch installation&lt;/span&gt;
&lt;span class="n"&gt;jobid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cfg_util&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'initjob'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'/path_to/examples/batch_example_add1_div_reuse_b.m'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c"&gt;% fill in missing values for a = 3, b = 4&lt;/span&gt;
&lt;span class="n"&gt;cfg_util&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'filljob'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jobid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c"&gt;% run job&lt;/span&gt;
&lt;span class="n"&gt;cfg_util&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'run'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jobid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To run the computation &lt;code&gt;N&lt;/code&gt; times on different inputs, a slightly modified batch is used which places the results in varying output variables: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="c"&gt;% loop to assemble batch jobs (N) and inputs (3*N)&lt;/span&gt;
&lt;span class="n"&gt;jobs&lt;/span&gt;   &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c"&gt;% first dimension within job, second across jobs - inputs{:} expands to inputs for job1, followed by job2 ...&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;
    &lt;span class="n"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'batch_example_add1_div_reuse_b_outname.m'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sprintf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'result%d'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="c"&gt;% load batch from jobs variable&lt;/span&gt;
&lt;span class="n"&gt;jobid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cfg_util&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'initjob'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c"&gt;% fill in missing values&lt;/span&gt;
&lt;span class="n"&gt;cfg_util&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'filljob'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jobid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;{:});&lt;/span&gt;
&lt;span class="c"&gt;% run job&lt;/span&gt;
&lt;span class="n"&gt;cfg_util&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'run'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jobid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Volkmar Glauche</dc:creator><pubDate>Thu, 20 Feb 2014 07:41:24 -0000</pubDate><guid>https://sourceforge.netfabad7ccb03a07e1aaa032c1c04581c099e5f951</guid></item></channel></rss>