Skip to content

Route image-processing workers to the GPU Celery queue - #171

Merged
arjunrajlab merged 1 commit into
masterfrom
claude/gpu-queue-image-workers-f2d9i4
Aug 29, 2026
Merged

Route image-processing workers to the GPU Celery queue#171
arjunrajlab merged 1 commit into
masterfrom
claude/gpu-queue-image-workers-f2d9i4

Conversation

@arjunrajlab

Copy link
Copy Markdown
Collaborator

Summary

Flips the isGPUWorker Docker label from "false" to "true" for the six Image Processing category workers so their compute jobs route to the gpu Celery queue instead of the shared cpu queue:

  • workers/annotations/registration/
  • workers/annotations/histogram_matching/
  • workers/annotations/gaussian_blur/
  • workers/annotations/rolling_ball/
  • workers/annotations/crop/
  • workers/annotations/h_and_e_deconvolution/

(deconwolf, the seventh image-processing worker, already carries isGPUWorker="true".)

Motivation

These workers process whole datasets frame-by-frame and can run for a long time — registration compute was measured at 900–1500s on prod. The CPU box has only 4 concurrency slots, so tool parameter forms queued behind these jobs for 16–25 minutes platform-wide.

Only compute/preview requests route by this label; interface requests always go to the cpu queue. So parameter forms stay fast on the cheap box while the heavy compute moves to the GPU hosts.

Non-changes

  • No build or runtime changes. These remain CPU-bound workers that will simply run on the GPU boxes' CPUs. No CUDA/torch deps or GPU runtime added.
  • blob_overlap_worker is deliberately left on the CPU queue (out of scope for this change).
  • None of these six workers has a Dockerfile_M1 variant, and their WORKERNAME.md docs don't reference queue routing, so no other files needed touching.

Deployment note

The dispatcher reads the label from the deployed image, so this takes effect once these images are rebuilt and pushed to ECR.

🤖 Generated with Claude Code

https://claude.ai/code/session_016HuW5HKHQFfo5qUZcm2jEs


Generated by Claude Code

Flip isGPUWorker from "false" to "true" for the six Image Processing
category workers (registration, histogram_matching, gaussian_blur,
rolling_ball, crop, h_and_e_deconvolution). Their compute jobs are
long-running (registration measured at 900-1500s on prod) and were
saturating the 4-slot cpu queue, delaying fast interface requests
platform-wide. Interface requests still route to the cpu queue
regardless of this label, so parameter forms stay fast while the heavy
compute moves to the gpu boxes. No build or runtime changes: these
remain CPU-bound workers that will simply run on the GPU hosts' CPUs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016HuW5HKHQFfo5qUZcm2jEs
@arjunrajlab
arjunrajlab merged commit 710c21e into master Aug 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants