Skip to content
This repository has been archived by the owner on Mar 12, 2018. It is now read-only.

Introduce Loop #121

Closed
johnyangk opened this issue Mar 30, 2017 · 6 comments
Closed

Introduce Loop #121

johnyangk opened this issue Mar 30, 2017 · 6 comments
Assignees
Labels

Comments

@johnyangk
Copy link
Contributor

johnyangk commented Mar 30, 2017

Introduce the concept of `Loop' in our system. Need following considerations.

  • Frontend(Beam): Identify loops in Beam programs
  • IR: How shall we express loop entry/exit? What about conditional loops? Might be a good idea to refer to the Naiad paper.
  • Backend: How shall we execute the loop?
@johnyangk
Copy link
Contributor Author

Let's also do some research on expressing 'Loop' with Beam.
For example, the recently added stateful processing might be useful: https://beam.apache.org/blog/2017/02/13/stateful-processing.html

@johnyangk
Copy link
Contributor Author

I quickly skimmed through the post on stateful processing, and it seems to be more of a replacement for sideInput than a primitive for looping. It seems that we still can only express acyclic graphs with Beam.

@johnyangk johnyangk mentioned this issue Apr 7, 2017
@wonook
Copy link
Contributor

wonook commented Apr 10, 2017

I decided to handle this issue with a ConditionalOperator? LoopOperator?, as handled with Musketeer IR.

@wonook wonook self-assigned this Apr 10, 2017
@johnyangk
Copy link
Contributor Author

johnyangk commented Apr 10, 2017

Thanks! Please provide a detailed description of the design in the PR message for those of us who are not familiar with Musketeer. 😄

@wonook
Copy link
Contributor

wonook commented Apr 10, 2017

Sure, it'll soon arrive with the PR.

@wonook
Copy link
Contributor

wonook commented Apr 12, 2017

I'll handle this through creating two passes: LoopRollingPass and LoopUnrollingPass, to create loops where applicable, as well as to unroll loops to test and modify DAGs flexibly.
They will use the LoopOperator, which includes the number of iterations, for the expression.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants