I think adding them as inputs of the moleTask should do the trick. MoleTask(innerMole) set ( inputs += (...) )
The pb is that the MoleTask takes automatically the inputs of the first capsule and here there is no inputs. Romain Le 28/09/2015 12:19, Guillaume Chérel a écrit : > I added the Strain capsules and empty tasks like in the second > example, but I get a formal validation error of the workflow: openmole > says that the inputs for model1 and model2 are missing (Input ntr1: > Double is missing when reaching the > slot@2015883288:SystemExecTask@1276571694.). > > What does the Strain capsule and Empty task do? Do they automatically > connect the inputs and outputs together, or do I need to explicitly > set the inputs and outputs for each Strain/EmptyTask? > > Guillaume > > Le 28/09/2015 12:04, Romain Reuillon a écrit : >> Hi Guillaume, >> >> in OpenMOLE moles always have one and only one starting capsule. What >> you can do is: >> >> val innerMole = Strain(EmptyTask()) -- ((model1 -- processOutput1), >> (model2 -- processOutput2)) >> val moleTask = MoleTask(innerMole) >> >> What is unclear is which capsule is the last one for the innerMole, >> therefore I would recomand: >> >> val innerMole = Strain(EmptyTask()) -- ((model1 -- processOutput1), >> (model2 -- processOutput2)) -- Strain(EmptyTask()) >> >> model1 and model2 should be provided with inputs coming from the higher >> level workflow and outputs of processOutput1 and 2 will be output of the >> moleTask. >> >> Romain >> >> Le 28/09/2015 11:42, Guillaume Chérel a écrit : >>> Hi, >>> >>> I'm trying to compose the following tasks together: >>> >>> 2 model running tasks: >>> model1: inputs x1, outputs y1 >>> model2: inputs x2, output y2 >>> >>> 2 tasks that process each the output of each model task: >>> processOutput1: input y1, output z1 >>> processOutput2: intput y2, output z2 >>> >>> I want to make a single mole task that chains model1 and >>> processOutput1 together, and chains model2 and processOutput2, and >>> runs the two chains in parallel, and has inputs (x1, x2) and outputs >>> (z1,z2) >>> >>> I've tried: >>> >>> val maintask = Capsule(MoleTask(((model1 -- processOutput1), (model2 >>> -- processOutput2)))) >>> >>> but I get a type mismatch error: >>> >>> found : (org.openmole.core.workflow.puzzle.Puzzle, >>> org.openmole.core.workflow.puzzle.Puzzle) >>> required: org.openmole.core.workflow.puzzle.Puzzle >>> val model = Capsule(MoleTask(((model1 -- processOutput1), (model2 -- >>> processOutput2)))) >>> >>> Shouldn't the (task1, task2) be converted to a single puzzle rather >>> than a tuple of puzzles? >>> >>> Guillaume >>> >>> _______________________________________________ >>> OpenMOLE-users mailing list >>> [email protected] >>> http://fedex.iscpif.fr/mailman/listinfo/openmole-users >> > _______________________________________________ OpenMOLE-users mailing list [email protected] http://fedex.iscpif.fr/mailman/listinfo/openmole-users
