I have an array of large size input_array
and an array of offsets take_array
. I want to return the elements with those offsets very fast. Can I vectorize it for the arrow array? If so, how?
arrow::compute::Take(input_array, take_array)
Use Case: I am taking a subset of a really large input_array. It is used in places where OpenMP-like and MPI-like parallelism are used. So vectorization seems to be the next low-hanging fruit.
Example: https://arrow.apache.org/docs/python/generated/pyarrow.compute.take.html
The example is used in Apache Arrow. I am also open to Gandiva, Velox, LLVM or Intel MKL if there is a better way.
https://llvm.org/docs/Vectorizers.html
https://www.dremio.com/blog/gandiva-performance-improvements-production-query/