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

Add event queue executor support. #52

Open
ZhenshengLee opened this issue Jul 20, 2021 · 3 comments
Open

Add event queue executor support. #52

ZhenshengLee opened this issue Jul 20, 2021 · 3 comments

Comments

@ZhenshengLee
Copy link
Contributor

Brief feature description

Event queue executor was introduced recently by iRobot team as a strong mean to reduce the cpu overhead and latency by rclcpp layer.

See ros2/design#305 for details.

AFAK, event queue executor + rmw_iceoryx + zenoh(mentioned in eclipse-iceoryx/iceoryx#869) is much more performant than current default ros2 layers, both in latency and cpu usage.

So event queue executor would be implemented in rmw_iceoryx, perhaps in the rolling branch.

First of all, may galactic and rolling branch being created based on foxy branch?@Karsten1987 @budrus

Thanks.

@budrus
Copy link
Collaborator

budrus commented Jul 23, 2021

@ZhenshengLee rolling branch could be the master branch, or? Indeed, we saw recently from measurements with G and zero-copy that for payloads < 64k the default executor has a higher impact on latency than the copies you have when not doing zero-copy

@ZhenshengLee
Copy link
Contributor Author

@budrus

rolling branch could be the master branch

You are right, master branch can be used when foxy branch be merged into master, and galactic branch is needed anyway.

Indeed, we saw recently from measurements with G and zero-copy that for payloads < 64k the default executor has a higher impact on latency than the copies you have when not doing zero-copy

I've git it a test using APEX's performance_test tool(see custom version ZhenshengLee/performance_test@c71666d), and cpu usage reduced about 40% in the test below.

./colcon/install/performance_test/lib/performance_test/perf_test -c rclcpp-events-executor --msg Array1k -p 1 -s 10 -l log_sub
./colcon/install/performance_test/lib/performance_test/perf_test -c rclcpp-single-threaded-executor --msg Array1k -p 1 -s 10 -l log_sub

Thanks.

@mossmaurice
Copy link
Collaborator

@ZhenshengLee I created the galactic branch and raised a PR. Will update master to work with rolling.

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

No branches or pull requests

3 participants