Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Ray runner prototype based on FnApiRunner in Beam #10

Merged
merged 7 commits into from
May 25, 2022

Conversation

pabloem
Copy link
Collaborator

@pabloem pabloem commented May 11, 2022

This prototype is hacked together as quickly as possible. I can't speak for its efficiency, and its code cleanliness.

Next steps:

  • Enable more and more tests under ray_runner_test.py
  • Make efficiency improvements
    • Creation of pcollection holding actors (probably rearchitect)
    • Data transfer and encoding
    • Improve context passing (serialization and passing-around of RayRunnerExecutionContext, RayBundleContext)

Others...

@pabloem
Copy link
Collaborator Author

pabloem commented May 11, 2022

fyi @pdames @jjyao @wilsonwang371

Copy link
Contributor

@jjyao jjyao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I think we can merge this and iterate on top of it.

@@ -84,6 +85,18 @@ def contains_labels(mi, labels):
return contains_labels(mi, labels) and mi.urn == urn


class RayFnRunnerTest(fn_runner_test.FnApiRunnerTest):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this used?

Copy link
Member

@pdames pdames left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work - thanks Pablo!

It may be a good idea to start capturing some of the TODOs and comments here as issues for others to start picking up.

I was able to get the Ray Runner tests passing with one change related to WatermarkManager initialization. Can you verify whether or not this is expected? I just had a couple other minor comments, but otherwise think this looks ready to merge!

ray_beam_runner/portability/context_management.py Outdated Show resolved Hide resolved
ray_beam_runner/portability/execution.py Outdated Show resolved Hide resolved
"ray[data]", "apache_beam"
],
extras_require={
'test': TEST_REQUIREMENTS,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for separating out the test requirements as extras! Can we also add them to requirements_dev.txt with a comment noting that they are only required for test execution? Ideally, I think our install_requires dependencies should also be mirrored in requirements_dev.txt for ease of developer dependency management.

ray_beam_runner/portability/execution.py Outdated Show resolved Hide resolved
@wilsonwang371
Copy link
Contributor

LGTM. Pablo, can we have a demo on this later sometime?

Copy link
Member

@pdames pdames left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've committed the minor change required to make supported tests pass - merging. Thanks, Pablo!

@pdames pdames merged commit 377ffbd into ray-project:master May 25, 2022
@pabloem
Copy link
Collaborator Author

pabloem commented May 31, 2022

thanks Patrick, everyone. I'll try to create new work items for this.

@wilsonwang371 I'll be happy to do a demo on this.

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

Successfully merging this pull request may close these issues.

None yet

4 participants