conda-forge / gromacs-feedstock

A conda-smithy repository for gromacs.
BSD 3-Clause "New" or "Revised" License
0 stars 9 forks source link

Cuda #3

Closed douglowe closed 2 years ago

douglowe commented 2 years ago

Checklist

This is an attempt to compile GROMACS with CUDA support. This should be limited to a single build, supporting CUDA, single precision, nompi GROMACS on linux.

conda-forge-linter commented 2 years ago

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.

Here's what I've got...

For recipe:

douglowe commented 2 years ago

@conda-forge-admin please rerender

conda-forge-linter commented 2 years ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

douglowe commented 2 years ago

@conda-forge-admin please rerender

douglowe commented 2 years ago

@conda-forge-admin please rerender

jan-janssen commented 2 years ago

@conda-forge-admin please rerender

douglowe commented 2 years ago

@conda-forge-admin please rerender

Oops. Bad plan!

I need to make a README for these changes - because the rerender process adds too many build scripts (check how many are added after the automated rerender has been run). I've had to prune these by hand after running conda smithy rerender locally. I tried to limit the build options via the conda_build_config.yaml file. This is ignored by the build system (conda-forge's documentation seems to be out of date regarding this - as it suggests this method for controlling the build system). I've also tried to add other skip: True options to the build section of meta.yaml, so that we don't cross CUDA/double precision/openmpi support. That hasn't worked either :-/

So, currently, I think the only way we can include CUDA support is manual pruning of the build matrix after each rerendering of the recipe. This isn't too hard - I deleted the unwanted files from .ci_support, and removed the entries from .azure-pipelines/azure-pipelines-linux.yml. But probably only the editing of azure-pipelines-linux.yml is needed.

jan-janssen commented 2 years ago

@conda-forge-admin please rerender

Oops. Bad plan!

I need to make a README for these changes - because the rerender process adds too many build scripts (check how many are added after the automated rerender has been run).

But that is very dangerous, is not it?

github-actions[bot] commented 2 years ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/gromacs-feedstock/actions/runs/2144328305.

douglowe commented 2 years ago

@conda-forge-admin please rerender

Oops. Bad plan! I need to make a README for these changes - because the rerender process adds too many build scripts (check how many are added after the automated rerender has been run).

But that is very dangerous, is not it?

Pruning the build matrix by hand isn't dangerous per se. Just very time consuming, and is going to make maintaining updates to the package a faff.

I'll raise an issue with the conda-forge developers - see if they can suggest a better solution.

github-actions[bot] commented 2 years ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/gromacs-feedstock/actions/runs/2144339003.

github-actions[bot] commented 2 years ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/gromacs-feedstock/actions/runs/2144348673.

jan-janssen commented 2 years ago

@isuruf Thanks

douglowe commented 2 years ago

@isuruf - thank you for your help. Unfortunately the 2nd skip statement you added is not doing anything - there are still packages built with both CUDA and double precision support. Do you know why the skip statement isn't working?

douglowe commented 2 years ago

I've run some tests.

The problem is that additive logic can't be used for the skip statements. So this statement would work:

  skip: True  # [mpi == "nompi" or double == "yes"]

But this will be ignored:

  skip: True  # [mpi == "nompi" and double == "yes"]

I assume this is a problem with conda smithy, rather than the rest of the build system - as the build strings have been constructed sensibly for previous versions of this recipe. I'm not sure if there's a workaround for this - so I suggest we park this PR for the moment, and come back to it when the conda smithy tool is fixed.

douglowe commented 2 years ago

I'm going to close this PR, and reopen an updated PR with gromacs 2022.1 (and a cleaned up commit history).