Skip to content

Adhoc Benchmarks (Existing Server) #1

Adhoc Benchmarks (Existing Server)

Adhoc Benchmarks (Existing Server) #1

# Copyright (c) 2023-2024 Deephaven Data Labs and Patent Pending
# Run benchmarks on an already provisioned system
# - Calls the reusable worflow remote-benchmarks.yml to run and upload benchmarks
# - Runs the given options with the given image/branch
name: Adhoc Benchmarks (Existing Server)
on:
workflow_dispatch:
inputs:
docker_image:
description: 'Docker Image Name or DH Core Branch'
required: true
default: 'edge'
type: string
config_options:
description: 'Deephaven JVM Options'
default: '-Xmx24g'
type: string
run_label:
description: 'Set Label'
required: true
type: string
default: ''
test_package:
description: 'Benchmark Test Package'
required: true
default: 'io.deephaven.benchmark.tests.standard'
type: string
test_class_list:
description: 'Benchmark Test Classes'
required: true
default: 'Where, Avg*'
type: string
test_iterations:
description: 'Benchmark Iterations'
required: true
default: '1'
type: string
scale_row_count:
description: 'Benchmark Scale Row Count (Millions)'
required: true
default: '10'
type: string
distribution:
description: 'Benchmark Data Distribution'
required: true
default: 'random'
type: choice
options:
- random
- ascending
- descending
- runlength
jobs:
setup-benchmark-system:
runs-on: ubuntu-22.04
outputs:
test_class_regex: "${{ steps.make-test-regex.outputs.TEST_CLASS_REGEX }}"
test_row_count: ${{ steps.scale-nums.outputs.TEST_ROW_COUNT }}
test_iterations: ${{ steps.scale-nums.outputs.TEST_ITERATIONS }}
env:
SD: .github/scripts
steps:
- uses: actions/checkout@v4
- name: Make Wildcard Regex
id: make-test-regex
run: |
${SD}/adhoc.sh make-test-regex "${{ inputs.test_class_list }}"
cat adhoc-make-test-regex.out >> "$GITHUB_OUTPUT"
- name: Scale Input Numbers
id: scale-nums
run: |
${SD}/adhoc.sh scale-nums ${{ inputs.scale_row_count }} ${{ inputs.test_iterations }}
cat adhoc-scale-nums.out >> "$GITHUB_OUTPUT"
process-adhoc-benchmarks:
needs: [setup-benchmark-system]
uses: ./.github/workflows/remote-benchmarks.yml
with:
run_type: adhoc
docker_image: ${{ inputs.docker_image }}
run_label: ${{ inputs.run_label }}
test_package: ${{ inputs.test_package }}
test_class_regex: "${{ needs.setup-benchmark-system.outputs.test_class_regex }}"
test_iterations: ${{ needs.setup-benchmark-system.outputs.test_iterations }}
scale_row_count: ${{ needs.setup-benchmark-system.outputs.test_row_count }}
distribution: ${{ inputs.distribution }}
test_device_addr: "<default>"
config_options: "${{ inputs.config_options }}"
secrets: inherit