-
-
Notifications
You must be signed in to change notification settings - Fork 35
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 dask-expr benchmarking post #174
base: gh-pages
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for dask-blog ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an interesting post, I enjoyed reading it.
I've updated the markdown formatting so the CI checks pass, and left some comments inline. My only major comment is that it appears the confidence threshold figure is not referred to or explained anywhere in the results. Otherwise it looks good!
alt=""></a> | ||
|
||
[Dask-expr](https://github.com/dask-contrib/dask-expr) is an ongoing effort to add a | ||
[logical query optimization layer](https://medium.com/coiled-hq/high-level-query-optimization-in-dask-995640564ed7) to Dask DataFrames. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought this was the canonical link for that post: https://blog.coiled.io/blog/dask-expr-introduction.html
We now have the first benchmark results to share that were run against the current DataFrame | ||
implementation. | ||
|
||
Dask-expr is up to 3 times faster and more memory efficient in its current state than the status quo. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"status quo" is ambiguous here. Can we update this sentence to be more specific?
The first paragraph in the results section suggests it should be "compared to conventional dask dataframes" (instead of "compared to the previous version of dask-expr" or "compared to other software tools designed for this task", etc.). Is that correct?
## Results | ||
|
||
We are comparing Dask 2023.09.02 with the main branch of Dask-expr. Both implementations | ||
will use the [P2P shuffling algorithm](https://medium.com/coiled-hq/shuffling-large-data-at-constant-memory-in-dask-bb683e92d70b). The results were produced on 100GB of data, e.g. scale |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's probably best to link to articles directly at https://blog.coiled.io, rather than the Medium mirror.
```python | ||
pip install dask-expr | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It'd be good to repeat the link to Dask-expr here, where users can find the documentation to help them get started.
width="70%" | ||
alt="Runtime on a per-query basis of Dask DataFrame and Dask-expr"></a> | ||
|
||
We can see that Dask-expr performs better on every single query, up to a 3-times improvement |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of your figures show impressive improvements, very clear and convincing.
|
||
- Getting Dask-expr to compute the results successfully was very easy. 20 workers very sufficient to | ||
compute the results, which is the same number of workers as we used for the 100GB benchmarks. | ||
- The original version needed a bigger cluster with 50 workers and with 32GB memory each. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- The original version needed a bigger cluster with 50 workers and with 32GB memory each. | |
- The original version using conventional dask dataframes needed a bigger cluster with 50 workers and with 32GB memory each. |
Summarizing, getting these queries to complete was significantly easier with Dask-expr. | ||
|
||
These results show us that we are on the right course and motivates | ||
us to improve the performance of Dask-expr further. There is still a lot of untapped potential. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should "Dask-expr" be capitalized like this in the middle of a sentence?
# TPC-H Benchmarks for Query Optimization with Dask Expressions | ||
|
||
<a href="/images/dask_expr/tpch-comparison-dask-confidence.png"> | ||
<img src="/images/dask_expr/tpch-comparison-dask-confidence.png" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- This figure is never referred to in the text, did I miss that?
I think there should be a small paragraph or caption explaining what the figure shows. This figure was also the least intuitive for me to understand out of the three, so I think it's especially important to explain. (i.e. what is the x-axis, it's the confidence threshold of what? Of the wall clock time? That's the tab that is selected, but the graph itself doesn't have the axis labelled with what it actually measured) - This figure and text really belong in the results section. I think it's here because you want the readers to see something pretty when they click on the blog post. I think it's ok to have a copy of a pretty figure used as an illustration up the top (but you still need the figure and text to exist in the results section below).
No description provided.