Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hoomd v3 Support #240

Open
whitead opened this issue Sep 1, 2020 · 6 comments
Open

Hoomd v3 Support #240

whitead opened this issue Sep 1, 2020 · 6 comments

Comments

@whitead
Copy link
Collaborator

whitead commented Sep 1, 2020

Hoomd is changing how plugins work. Need to migrate

@hgandhi2411
Copy link
Collaborator

hgandhi2411 commented Feb 4, 2021

HOOMD v3 is still under development. So far, changes in v3 that directly affect HTF are:

  • context.initialize replaced with new context API. See this tutorial.
  • CMake >= 3.9
  • Changes in how plugins work (specifically, changes in CmakeLists.txt)
  • Building from source requires a C++14 compatible compiler, so our docs should state this
  • HOOMD writes minimal output to stdout/stderr by default. For user-defined output, see their logging tutorial.
  • HOOMD box equality checking returns NotImplemented for non-hoomd.Box objects, check how this affects our implementation.

@RainierBarrett
Copy link
Collaborator

HOOMD v3 is introducing custom actions in python (see here). I'm wondering if this would be an easier approach to updating to HOOMD v3 compatibility?

Josh Anderson mentioned he'd be happy to talk about what we would need from our end to update HOOMD-TF to HOOMD v3 compatibility. For instance, he mentioned that it's already possible to grab the HOOMD particle positions without having to do custom C++ stuff to get at the GPU memory addresses. They don't have a similar feature for neighbor lists yet, but he says we just need to ask for that. Does this sound like a good route for us? What would stand in the way of going this route? One thing that jumps out at me is we would want to do some benchmarking to check for latency differences. Thoughts?

@whitead
Copy link
Collaborator Author

whitead commented Feb 11, 2021

Still thinking about it. See discussion here from a few months ago when we discussed how this would look.

@whitead
Copy link
Collaborator Author

whitead commented Feb 17, 2021

@RainierBarrett I'm worried that accessing particle positions will not be the GPU memory, but CPU right? That probably won't work well access on GPU for tensorflow. But I agree we should probably make some serious benchmarks and use them to inform decisions like this.

@joaander
Copy link

One of our goals with the API is to provide low overhead pathways for pure Python user scripts and plugins.

  • gpu_local_snapshot provides access to the local particle data on the GPU using the cuda_array_interface
  • 'gpu_local_force_arrays` does the same for forces.
  • md.force.Custom provides a path for Python classes to compute forces.
  • ['update.CustomUpdaer](https://hoomd-blue.readthedocs.io/en/latest/module-hoomd-update.html#hoomd.update.CustomUpdater) (similarly CustomWriterandCustomTuner` provide a path for Python classes to be called during the run loop.

@b-butler can provide additional technical details if needed.

@joaander
Copy link

glotzerlab/hoomd-blue#1211 adds an API to query the floating point precision of the build.

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

No branches or pull requests

4 participants