QMCPACK / QMCPACK/qmcpack

Improve Developer Guide

Open
#4,365 5 comments 0 reactions 2 assignees Claimed by @PDoakORNL View on GitHub
Dominant language
C++
Stars
403
Forks
154
Avg merge
1d 12h
Merged PRs (30d)
82

Description

As we have discussed a few times, it would be nice to have a detailed developer guide about best practices, design philosophy, examples of where to look in the code for about how to implement some new feature, some details about our OMPOffload usage and the associated data structures and how to use them properly, etc.

- [ ] How-to guide on OpenMP offload and how it commonly used in QMCPACK
_Here I think a description of some of the common uses of offload in the code should be described and how that works with our data structures (like Vector/Matrix/Array etc with OMPallocators for example). How to sync and update data to/from the device, how to get data from per-walker data into buffers containing all walkers in the crowd for offload, how to get data from all walkers data offloaded to the device_
- [ ] Thorough description of how to implement a new wave function component using the batched code.
_Here, I think descriptions of what APIs are absolutely necessary for each type of driver (VMC/DMC/optimization), best practices for how to store your data (what should go into the resource collection which has data across the crowd vs. which data to store on a per-walker basis. Some wave function components do both, and it isn't clear why one was chosen over the other._
- [ ] Thorough descriptions of how to implement a new observable ( @PDoakORNL )
_similar to the above, what APIs are necessary to implement, best practices, etc_
- [ ] etc

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.