Skip to content

Conversation

@tphung3
Copy link
Contributor

@tphung3 tphung3 commented Dec 8, 2025

Proposed Changes

This PR implements the deterministic version of the bucketing algorithms (greedy and exhaustive) and integrates them into WorkQueue and TaskVine.

Merge Checklist

The following items must be completed before PRs can be merged.
Check these off to verify you have completed all steps.

  • make test Run local tests prior to pushing.
  • make format Format source code to comply with lint policies. Note that some lint errors can only be resolved manually (e.g., Python)
  • make lint Run lint on source code prior to pushing.
  • Manual Update: Update the manual to reflect user-visible changes.
  • Type Labels: Select a github label for the type: bugfix, enhancement, etc.
  • Product Labels: Select a github label for the product: TaskVine, Makeflow, etc.
  • PR RTM: Mark your PR as ready to merge.

@tphung3 tphung3 changed the title Add det bucketing algos CCTools: Add Deterministic Bucketing Algorithms (det-greedy, det-exhaust) Dec 8, 2025
@tphung3 tphung3 requested a review from dthain December 8, 2025 03:49
@tphung3 tphung3 marked this pull request as ready for review December 8, 2025 03:49
Copilot AI review requested due to automatic review settings December 8, 2025 03:49
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds deterministic versions of the greedy and exhaustive bucketing algorithms (det-greedy and det-exhaust) to CCTools, integrating them into WorkQueue, TaskVine, and Makeflow. The implementation extracts common code into shared modules and extends the existing bucketing framework with new allocation modes.

Key Changes:

  • Implements deterministic greedy and exhaustive bucketing algorithms as alternatives to probabilistic versions
  • Refactors existing bucketing code to extract common functionality into shared modules
  • Adds new allocation modes across WorkQueue and TaskVine APIs

Reviewed changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
dttools/src/bucketing_det_greedy.c/h New deterministic greedy bucketing algorithm implementation
dttools/src/bucketing_det_exhaust.c/h New deterministic exhaustive bucketing algorithm implementation
dttools/src/bucketing_greedy_common.c/h Extracted common code from greedy bucketing for reuse
dttools/src/bucketing_exhaust_common.c/h Extracted common code from exhaustive bucketing for reuse
dttools/src/bucketing.c Integrates new deterministic modes with branching logic for predictions
dttools/src/bucketing.h Adds new bucketing mode enums and test helper function
dttools/src/category.h Adds allocation mode enums for deterministic algorithms
dttools/src/category.c Updates mode checking and allocation logic for new modes
dttools/src/bucketing_manager.c Validates new bucketing modes
work_queue/src/work_queue.h Adds WorkQueue allocation mode enums
work_queue/src/work_queue.c Updates transaction logging for new modes
taskvine/src/manager/taskvine.h Adds TaskVine allocation mode enums
taskvine/src/manager/vine_manager.c Validates new allocation modes
taskvine/src/manager/vine_txn_log.c Updates transaction logging for new modes
makeflow/src/dag_visitors.c Adds JSON conversion for new allocation types
dttools/src/Makefile Adds new source files to build system
dttools/test/TR_bucketing.sh Adds test coverage for new algorithms
dttools/src/bucketing_base_test.c Updates tests to cover new modes
dttools/src/bucketing_manager_test.c Updates tests to cover new modes
work_queue/test/wq_alloc_test.py Adds Python test coverage for new modes
taskvine/test/vine_allocations.py Adds Python test coverage for new modes
work_queue/src/bindings/python3/ndcctools/work_queue_dask.py Updates documentation with new modes
taskvine/src/bindings/python3/ndcctools/taskvine/dask_executor.py Updates documentation with new modes
taskvine/src/bindings/python3/ndcctools/taskvine/compat/dask_executor.py Updates documentation with new modes
taskvine/test/vine_common.sh Fixes incorrect shebang (was /bin/hh, now /bin/sh)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant