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

Reply via email to