Commit e005c43
authored
# Rationale for this change
This PR adds a parallel implementation to the `numerical_utils` module's
`multiply_columns` function. Various benchmarks have improved with this
change. For example, the Sum Count benchmark query had a 1.42x
performance improvement on the Multi-A100 VM with a table size of
`1,000,000`. The `MultiplyExpr::final_round_evaluate` saw a 9.42x
performance improvement.
Before 2.39s
<img width="1878" height="341" alt="image"
src="https://github.com/user-attachments/assets/b9305381-d162-4f2d-8024-221d96e4c0b0"
/>
After 1.72s
<img width="1878" height="341" alt="image"
src="https://github.com/user-attachments/assets/5c128848-685d-494d-a0ff-bff30988ab91"
/>
This is a first step. Further improvements will investigate doing
multiplication inside of the Column module to avoid conversions during
each multiplication.
Note: creating an `unsafe_scalar_at` function that avoid returning an
Option did not show any performance gains when benchmarked.
# What changes are included in this PR?
- A Rayon implementation is added to the the `numerical_utils` module's
`multiply_columns` function
# Are these changes tested?
Yes
1 parent 6fc4348 commit e005c43
1 file changed
+14
-3
lines changedLines changed: 14 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
| |||
51 | 54 | | |
52 | 55 | | |
53 | 56 | | |
54 | | - | |
55 | | - | |
56 | | - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
57 | 68 | | |
58 | 69 | | |
59 | 70 | | |
| |||
0 commit comments