You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Include configuration setup for Presto benchmark runsΒ #32
Here are some notes on required configuration details
# hive.properties
hive.file-splittable=false
# This is needed for correctness as we cannot split a single parquet file
# coordinator config
single-node-execution-enabled=true
# This just happens to be the mode we're focusing on while IBM focuses on distributed
# worker config
task.max-drivers-per-task=4
# We've seen in the past that this increases overlap between IO and compute for GPU. I believe this value should be higher for effective utilisation of CPU in case of cpu-only native runs
Here is an updated configuration set based on PBench auto-generation
coordinator=true
discovery-server.enabled=true
discovery.uri=http://coordinator:8080
http-server.http.port=8080
node-scheduler.include-coordinator=false
presto.version=${PRESTO_BUILD_VERSION}
http-server.log.max-size=67108864B
http-server.log.max-history=2
http-server.threads.max=1000
http-server.authentication.type=PASSWORD
http-server.authentication.allow-forwarded-https=true
log.max-history=30
log.max-size=104857600B
memory.heap-headroom-per-node=22GB
node-scheduler.max-pending-splits-per-task=2000
node-scheduler.max-splits-per-node=2000
# Optimizer flags
optimizer.joins-not-null-inference-strategy=USE_FUNCTION_METADATA
optimizer.default-filter-factor-enabled=true
optimizer.exploit-constraints=true
optimizer.in-predicates-as-inner-joins-enabled=true
optimizer.partial-aggregation-strategy=automatic
optimizer.prefer-partial-aggregation=true
optimizer.default-join-selectivity-coefficient=0.1
optimizer.infer-inequality-predicates=true
optimizer.handle-complex-equi-joins=true
optimizer.generate-domain-filters=true
# https://github.com/prestodb/presto/issues/22161#issuecomment-1994128619
join-max-broadcast-table-size=1250MB
query.client.timeout=30m
query.execution-policy=phased
query.low-memory-killer.policy=total-reservation-on-blocked-nodes
query.max-execution-time=30m
query.max-history=1000
query.max-total-memory-per-node=87GB
query.max-total-memory=696GB
query.max-memory-per-node=78GB
query.max-memory=624GB
# query.max-stage-count Needed for Nielsen Q5
query.max-stage-count=1300
query.min-expire-age=120.00m
query.min-schedule-split-batch-size=2000
query.stage-count-warning-threshold=150
# query.max-length Needed for Nielsen Q5 and Q9
query.max-length=2000000
scale-writers=true
scheduler.http-client.max-requests-queued-per-destination=4096
shutdown.grace-period=30s
sink.max-buffer-size=1GB
experimental.enable-dynamic-filtering=false
experimental.max-revocable-memory-per-node=50GB
experimental.max-spill-per-node=50GB
experimental.optimized-repartitioning=true
experimental.pushdown-dereference-enabled=true
experimental.pushdown-subfields-enabled=true
experimental.query-max-spill-per-node=50GB
experimental.reserved-pool-enabled=false
experimental.spiller-max-used-space-threshold=0.7
experimental.spiller-spill-path=/home/centos/
jmx.rmiregistry.port=10100
jmx.rmiserver.port=10101
# Configs only for the coordinator of a Prestissmo cluster
# Without this, you might see errors like "Scalar function name not registered: presto.default.$operator$hash_code, called with arguments: (BIGINT)."
optimizer.optimize-hash-generation=false
# Without this, decimal columns are treated as complex type while it should be scalar type. You will see errors like "scalar type has no children"
# Another error we may observe is "Chunked http transferring encoding is not supported." https://github.ibm.com/lakehouse/velox/issues/74
use-alternative-function-signatures=true
inline-sql-functions=false
offset-clause-enabled=true
# We set this to true when comparing with DB2 https://github.ibm.com/lakehouse/velox/issues/10
# parse-decimal-literals-as-double=true
regex-library=RE2J
# For VeloxRuntimeError: NULL_IF not supported in specialForm https://github.ibm.com/lakehouse/velox/issues/59
native-execution-enabled=true
# Enable sidecar by default
coordinator-sidecar-enabled=true
presto.default-namespace=native.default
plugin.dir=/opt/presto-server/native-plugin/
Activity
karthikeyann commentedon Sep 3, 2025
I have these changes related to Presto setup.
karthikeyann commentedon Sep 3, 2025
Exact memory numbers may vary. We should test in different GPUs and arrive at numbers that works best in all machines.
devavret commentedon Sep 4, 2025
These are all the ones that affect GPU execution for now
patdevinwilson commentedon Sep 17, 2025
Here are my configs for successful runs on GPU and CPU Gh200
Notably- "cudf.exchange.enabled": true,
tpch_sf100_cpu_optimized.json
tpch_sf100_gpu.json
tpch_sf1000_cpu.json
tpch_sf1000_gpu.json
The actual CUDF parquet reader is controlled via Velox command-line flags, not .properties files:
From /data/nvidia-work/presto/presto-native-execution/zrl_bin/run_worker.sh
VELOX_ARGS="-velox_cudf_debug=true -velox_cudf_table_scan=true -velox_cudf_enabled=true -velox_cudf_exchange=true -velox_cudf_memory_resource=pool -v=3"
Presto server is launched with these flags:
presto_server -etc_dir $WORKER_CONFIG_DIR $VELOX_ARGS
GregoryKimball commentedon Sep 25, 2025
Here is an updated configuration set based on PBench auto-generation
misiugodfrey commentedon Oct 23, 2025
This should now all be handled via pbench in the
generate_presto_config.shscript.