Dear all,
as a follow up of previous emails, i would ask:
which is the best way to set a a parallel workflow with a
synchronization point (with a master component that acts as scheduler)?
say that you have Source1 and Source2 components(two source of data from
hardware interfaces for example), and I want to run them in two separate
activities and possibly in parallel, and then, when both are done a Sink
component that is updated when both are done.
Cheers, Gianni.
parallel slave activity
+1
________________________________________
De : orocos-users-bounces [..] ... <orocos-users-bounces [..] ...> de la part de Gianni Borghesan <gianni [dot] borghesan [..] ...>
Envoyé : vendredi 18 septembre 2015 10:20
À : orocos-users
Objet : [Orocos-users] parallel slave activity
Dear all,
as a follow up of previous emails, i would ask:
which is the best way to set a a parallel workflow with a
synchronization point (with a master component that acts as scheduler)?
say that you have Source1 and Source2 components(two source of data from
hardware interfaces for example), and I want to run them in two separate
activities and possibly in parallel, and then, when both are done a Sink
component that is updated when both are done.
Cheers, Gianni.
--
------------------------------------------------
Gianni Borghesan, PhD
Robot Assisted Surgery group
Robotics Research group
KU Leuven,
Department of Mechanical Engineering,
Division of PMA
Room 02.019
Celestijnenlaan 300B, B-3001 Heverlee, Belgium.
Tel: +32 163 29267
Fax: +32 163 22987
------------------------------------------------
--
Orocos-Users mailing list
Orocos-Users [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
parallel slave activity
> Dear all,
> as a follow up of previous emails, i would ask:
> which is the best way to set a a parallel workflow with a
> synchronization point (with a master component that acts as scheduler)?
>
> say that you have Source1 and Source2 components(two source of data from
> hardware interfaces for example), and I want to run them in two separate
> activities and possibly in parallel, and then, when both are done a Sink
> component that is updated when both are done.
The use case you described is best handled by _evenot handling_ patterns,
not by _activity_ 'scheduling'. In other words, you have _one_ activity
that gets woken up when each of the IO sources that it has to synchronize
has new data ready (each of the sources typically will indeed be a separate
activity), and it then checks the "synchronization dependencies" of your
application to find the right "callback" to execute.
Alternatively, use a stream processing approach with an "event log" as the
mediating data structure:
<https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying>
This is an IPC mechanism that has its place next to the lock-free data
buffers; you would need the latter to implement the former.
I would love to see developments to make/improve lock-free and stream
processing IPC libraries ready for realtime use. (And independent of any
framework.) Any takers...?
> Cheers, Gianni.
>
> Gianni Borghesan, PhD
Herman
parallel slave activity
This is rather straightforward indeed (well at least the event-based solution is, I must admit I did not go through reading the whole paper on logs).
Thanks for the clear explanation.
Antoine.
________________________________________
De : Herman Bruyninckx <Herman [dot] Bruyninckx [..] ...>
Envoyé : dimanche 20 septembre 2015 11:12
À : Antoine Rennuit
Cc : orocos-users [..] ...; Gianni Borghesan
Objet : Re: [Orocos-users] parallel slave activity
> Dear all,
> as a follow up of previous emails, i would ask:
> which is the best way to set a a parallel workflow with a
> synchronization point (with a master component that acts as scheduler)?
>
> say that you have Source1 and Source2 components(two source of data from
> hardware interfaces for example), and I want to run them in two separate
> activities and possibly in parallel, and then, when both are done a Sink
> component that is updated when both are done.
The use case you described is best handled by _evenot handling_ patterns,
not by _activity_ 'scheduling'. In other words, you have _one_ activity
that gets woken up when each of the IO sources that it has to synchronize
has new data ready (each of the sources typically will indeed be a separate
activity), and it then checks the "synchronization dependencies" of your
application to find the right "callback" to execute.
Alternatively, use a stream processing approach with an "event log" as the
mediating data structure:
<https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying>
This is an IPC mechanism that has its place next to the lock-free data
buffers; you would need the latter to implement the former.
I would love to see developments to make/improve lock-free and stream
processing IPC libraries ready for realtime use. (And independent of any
framework.) Any takers...?
> Cheers, Gianni.
>
> Gianni Borghesan, PhD
Herman