Skip to content

Consolidate GPU destinations - #1931

Merged
domgz merged 3 commits into
usegalaxy-eu:masterfrom
domgz:tpv_gpu
Mar 5, 2026
Merged

Consolidate GPU destinations#1931
domgz merged 3 commits into
usegalaxy-eu:masterfrom
domgz:tpv_gpu

Conversation

@domgz

@domgz domgz commented Mar 4, 2026

Copy link
Copy Markdown
Contributor

Replace condor_docker_gpu_pxe and condor_singularity_gpu_pxe with a single containerized GPU destination condor_container_gpu that inherits from condor_container.

In addition, make condor_docker_gpu_pxe_divide4 inherit from condor_container.

Simplifies the TPV configuration for GPU jobs (and fixes problems with a few edge cases), closing https://github.com/usegalaxy-eu/issues/issues/928.

Replace `condor_docker_gpu_pxe` and `condor_singularity_gpu_pxe` with a single containerized GPU destination `condor_container_gpu` that inherits from `condor_container`.

In addition, make `condor_docker_gpu_pxe_divide4` inherit from `condor_container`.

Simplifies the TPV configuration for GPU jobs (and fixes problems with a few edge cases), closing usegalaxy-eu/issues#928.
Comment on lines +532 to +534
scheduling:
require:
- gpu-divided

@domgz domgz Mar 4, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@mira-miracoli Will shared GPUs actually work with Singularity containers?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Given this destination actually needs a tag and we currently only have two tools with that tag that are explicit docker I don't think it will be a problem. But agreed that we should probably check if this works with singularity

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't think it will work with Singularity, at least we never tested this, afaik.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I will then add a "reject: singularity" and set "singularity_enabled: false" for this destination. It'll be interesting to see what happens when TPV finds both accept: singularity and reject: singularity 😆.

@domgz domgz Mar 4, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done 7da29be.

Comment thread files/galaxy/tpv/destinations.yml.j2 Outdated
docker_net: bridge
docker_auto_rm: true
outputs_to_working_directory: false
container_monitor_result: callback

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ins't this needed only for embedded pulsar?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Most likely yes, see #719 (comment). That's there because for review I literally "dumped" the previous conf in the sense that it's as close as possible to the original. But yes, if we can fine-tune it and remove cruft we should.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this is not 100% correct. container_monitor_result is used for ITs. It has nothing todo with embedded-pulsar imho. We decided for security reasons to put ITs into embedded-pulsar, but this setting is used by ITs imho.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

So the question is, do we want to run ITs in this destination. If not we don't need it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think we could remove all docker_net, docker_auto_rm, outputs_to_working_directory (this one only from this PR, we can rebase #719 onto master and apply the change there instead) and container_monitor_result.

@domgz domgz Mar 4, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

When I posted my comments, but GitHub had not been updated with @bgruening comments 😅. I am seeing them now.

In our current configuration, interactive tools require embedded pulsar, I think it's safe to remove it (and thus use the default). This destination won't run embedded Pulsar jobs.

Comment thread files/galaxy/tpv/destinations.yml.j2 Outdated
docker_sudo: false
docker_net: bridge
docker_auto_rm: true
outputs_to_working_directory: false

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Shouldn't we try to set this to true?

Configure Galaxy to run jobs in a container and enable outputs_to_working_directory. Then the tool will execute in an environment that allows write access only for the job working dir. All other paths will be accessible read only.

If we need this setting to be false only in interactive tools I think we shouldn't enable it for all gpu tools.

@domgz domgz Mar 4, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think @bgruening agrees with you #719 (comment). I suggest removing it (see this comment) from this PR and rebasing the other, old PR onto the current status of the master branch and apply it on top of that.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Haha, yes lets switch this if possible.

We can also merge, test that its working in general and then switch the boolean in a second PR.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I would then switch the boolean first and then merge this. It might be easier to identify anything breaking

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I have tested now a couple tools with outputs_to_working_directory: true

Its:

  • Rstudio (working)
  • Jupyter Notebook (working)

Normal Docker GPU tools:

Tbh if this is a security issue and some tools can't run with this option true, I would rather then annotate them directly on the tool.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Tbh if this is a security issue and some tools can't run with this option true, I would rather then annotate them directly on the tool.

If we are unsure about this setting we still have #719. Imo I'd go ahead then with this as it is, we have quite a lot of breakage going around at the moment and I think we should delay this change a bit to keep the "rate of complaints" under control 😄 for the time being.

domgz added 2 commits March 4, 2026 14:22
Remove `docker_sudo`, `docker_net`, `docker_auto_rm`, `outputs_to_working_directory`, `container_monitor_result`.

Some of them were copied over from embedded Pulsar in the past. The defaults should be good for regular jobs that do not run in embedded Pulsar.
Sharing GPUs has not been tested with Singularity.
@domgz
domgz merged commit b05f8a5 into usegalaxy-eu:master Mar 5, 2026
4 checks passed
@domgz
domgz deleted the tpv_gpu branch March 5, 2026 14:14
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.

4 participants