Stuff that you can launch, taking inputs and producing outputs
Grid Search
Random sampling
Latin Hypercube
Parallel data processing
...
Example: genetic algorithm
No preliminary step
Access as the user would do it
With user credential
val inputFile = Val[File]
val fileName = Val[String]
val outputFile = Val[File]
val process =
ScalaTask ("""
val outputFile = newFile()
outputFile << inputFile.content.toUpperCase""") set (
inputs += inputFile,
outputs += outputFile,
(inputs, outputs) += fileName
)
val exploration =
ExplorationTask (
inputFile in (workDirectory / "files") withName fileName
)
val copy = CopyFileHook(outputFile, workDirectory / "results/${fileName}")
exploration -< (process hook copy)
val inputFile = Val[File]
val fileName = Val[String]
val outputFile = Val[File]
val process =
ScalaTask ("""
val outputFile = newFile()
outputFile < inputFile.content.toUpperCase""") set (
inputs += inputFile,
outputs += outputFile,
(inputs, outputs) += fileName
)
val exploration =
ExplorationTask (
inputFile in (workDirectory / "files") withName fileName
)
val copy = CopyFileHook(outputFile, workDirectory / "results/${fileName}")
val biomed = EGIEnvironment("biomed") // Add requirements here
exploration -< (process hook copy on biomed by 2)
care -o hello.tgz.bin python hello.py 42 test.txt
val arg = Val[Int]
val output = Val[File]
val pythonTask =
CARETask(
workDirectory / "hello.tgz.bin",
"python hello.py ${arg} output.txt") set (
inputs += arg,
outputFiles += ("output.txt", output),
outputs += arg
)
val exploration = ExplorationTask(arg in (0 to 10))
val copy = CopyFileHook(output, workDirectory / "hello${arg}.txt")
exploration -< (pythonTask hook copy)
val evolution =
SteadyStateEvolution(
algorithm =
NSGA2(
mu = 200,
genome =
Seq(
rMax in (2.0, 50000.0),
distanceDecay in (0.0, 4.0),
pCreation in (0.0, 0.01),
pDiffusion in (0.0, 0.01),
innovationImpact in (0.0, 2.0),
innovationLife in (1.0, 4001.0)
),
objectives = Seq(ksValue, deltaPop, deltaTime)
),
evaluation = evaluateModel,
termination = 15 minutes
)
val island = IslandEvolution(evolution, parallelism = 1000, termination = 200000)
val savePopulation = SavePopulationHook(island, workDirectory / "populations")
val grid = EGIEnvironment("vo.complex-systems.eu")
(island on grid hook savePopulation)
Documentation | www.openmole.org |
Development version | next.openmole.org |
Source code | github.com/openmole |
Market place | github.com/openmole-market |
![]() |
romain.reuillon@iscpif.fr |
![]() |
mathieu.leclaire@iscpif.fr |
![]() |
j.passerat-palmbach@imperial.ac.uk |