Documentation > Plug
The
ScilabTask 🔗
Scilab is an open source software initially designed for numerical computation (see the official website). It provides its own high-level scripting language and can be used as a computing kernel only. Note that it includes most of proprietary Matlab's functionalities and that a set of conversion tools exists (doc).Preliminary remarks 🔗
TheScilabTask
uses the Singularity container system. You should install Singularity on your system otherwise you won't be able to use it.The
ScilabTask
supports files and directories, in and out. Get some help on how to handle it by reading this page.
Arguments of the ScilabTask 🔗
It takes the following arguments :script
String or file, mandatory. The Scilab script to be executed.install
Sequence of strings, optional (default = empty). The commands to be executed prior to the script execution (to install libraries on the system).version
String, optional. The version of Scilab to run.prepare
Sequence of strings, optional (default = empty). System commands to be executed just before to the execution of Scilab on the execution node.
Simple ScilabTask 🔗
Here is a dummy workflow multiplying a vectordArray
by i
using a ScilabTask
:
// Declare variables
val i = Val[Int]
val dArray = Val[Array[Double]]
// Task
val m = ScilabTask("dArray = dArray * i") set (
inputs += i mapped "i",
inputs += dArray mapped "dArray",
outputs += i,
outputs += dArray mapped "dArray",
// Default values
i := 9,
dArray := Array(9.0, 8.0)
)
// Workflow
m hook DisplayHook()
A ScilabTask running a script 🔗
Here is a dummy workflow running the "rand.sce" script:val size = Val[Int]
val a = Val[Array[Array[Double]]]
val model =
ScilabTask(workDirectory / "rand.sce") set (
inputs += (size.mapped),
outputs += (a.mapped("A"), size)
)
DirectSampling(
evaluation = model,
sampling = size in (0 to 10 by 2)
) hook (workDirectory / "results2")