kvikio's thread pool defaults to 8 threads (KVIKIO_NTHREADS). We're seeing much better results with 256 kvkio threads in our cloud benchmarks.
SF300, Q1 hot times (S3)
| Config |
Default |
256 threads |
| meta prefetch off |
~1811s |
~153s |
| meta prefetch on |
~1641s |
~86s |
SF300, Q1 hot times (NVMe)
| Config |
Default |
256 threads |
| meta prefetch off |
~29s |
~29s |
| meta prefetch on |
~33–38s |
~33–38s |
*These numbers we're done with #23558
So we'll set the default to 256 via kvikio.defaults.set("num_threads", 256) at engine startup. And make it overridable via CUDF_POLARS__EXECUTOR__KVIKIO_NTHREADS. If unset, we'll fall back to KVIKIO_NTHREADS, then 256.
xref #23551
kvikio's thread pool defaults to 8 threads (
KVIKIO_NTHREADS). We're seeing much better results with 256 kvkio threads in our cloud benchmarks.SF300, Q1 hot times (S3)
SF300, Q1 hot times (NVMe)
*These numbers we're done with #23558
So we'll set the default to 256 via
kvikio.defaults.set("num_threads", 256)at engine startup. And make it overridable viaCUDF_POLARS__EXECUTOR__KVIKIO_NTHREADS. If unset, we'll fall back toKVIKIO_NTHREADS, then 256.xref #23551