choderalab / openmmtools

A batteries-included toolkit for the GPU-accelerated OpenMM molecular simulation engine.
http://openmmtools.readthedocs.io
MIT License
250 stars 80 forks source link

ppc64le support #499

Open BenCree opened 3 years ago

BenCree commented 3 years ago

Hi

I was just wondering whether there is ppc64le support, or if it is planned in the future?

Thanks

Lnaden commented 3 years ago

Does the OpenMMTools library not work on ppc64le? OpenMMTools is a pure python library which is meant to augment the OpenMM package underneath. The it should not be tied to architecture for that reason.

That is not to say all its dependencies will be available on the same architecture, at least through the normal distribution channels like Conda.

I'm going to take a guess that this question arose from trying to install OpenMMTools through conda install -c conda-forge -c omnia openmmtools on your ppc64le machine and it said it was unavailable for your platform. If that's the case, that is because the way we deploy OpenMMTools right now does tie to some of the architecture on the Omnia build systems. We are working on fixing that (and should be fixable pretty soon) to hopefully decouple OpenMMTools from Omnia and make it a pure conda-forge package without arch dependence.

If my guess is true or close, then it should be possible to install OpenMMTools from source with python setup.py or pip if you can get all the other dependencies on your machine and environment first.

On a related note, @jaimergp do we have any particular blockers for migrating Omnia packages which needed OpenMM to Conda-Forge? We can move this particular discussion to another issue to not clutter this one up.

jaimergp commented 3 years ago

They are migrated already! Omnia is not needed. What happens is that openmmtools has a little C extension that requires per-platform compilation. We need to add that to the feedstock. Can you add an issue there for visibility?

jchodera commented 3 years ago

@jaimergp @Lnaden: I think we eliminated the C replica mixing code. What code needs to be compiled?

I realize we may have neglected to remove these lines from setup.py, but I can't find anything else in the latest version that would need to be compiled.

jaimergp commented 3 years ago

Hm, I see. I saw the Cython requirement and didn't look further. I have opened a PR to make it noarch (and thus multiplatform), but we need to cut a patch release with the cython-less setup.py.

jaimergp commented 3 years ago

Actually, a v0.21 release is needed. 0.20 still builds the cython extension: https://github.com/choderalab/openmmtools/blob/0.20.0/setup.py#L27