QMCPACK / qmcpack

Main repository for QMCPACK, an open-source production level many-body ab initio Quantum Monte Carlo code for computing the electronic structure of atoms, molecules, and solids with full performance portable GPU support
http://www.qmcpack.org
Other
307 stars 139 forks source link

Add CMake installation for QMCPACK and NEXUS #1020

Closed prckent closed 5 years ago

prckent commented 6 years ago

Based on the request in #1017 , we need to arrange "make install" to work for both QMCPACK and NEXUS. CMake has many options to support this.

I suggest we just focus on the default real cpu build. In later versions we can handle Quantum Espresso, ideally after our converter is in QE, and then complex.

What needs to be installed?

build/bin/ nexus/executables/ nexus/library

Although NEXUS is not a python package, there must be some standards to follow.

jtkrogel commented 6 years ago

Happy to do the Nexus part, though not sure what is desired in the "make install" context.

naromero77 commented 6 years ago

For reference, this is what I do in the Spack package for install. https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/qmcpack/package.py#L250

I install all binaries in bin, I copy over the entire Nexus directory, and I "install" the manual.

naromero77 commented 6 years ago

For Python, there are usually two options:

  1. install in "site-packages" subdirectory of the Python distribution OR
  2. Add the appropriate directories to PYTHONPATH environment variable.
jtkrogel commented 6 years ago

Thanks Nick. I've generally taken the second option to "install" Nexus.

prckent commented 6 years ago

Regarding NEXUS perhaps copying to $INSTALL_DIR/nexus/... will suffice. It would be good if qmca would work out of the box.

prckent commented 6 years ago

(We'll have to discuss who can handle the QMCPACK side. @PDoakORNL ?)

jtkrogel commented 6 years ago

qmca is fully standalone (no install required). All that is needed is python, numpy, and (optionally) matplotlib.

markdewing commented 6 years ago

I can work on the QMCPACK side, unless @PDoakORNL is already working on it.

markdewing commented 6 years ago

The bin directory contains qmcpack and convert4qmc, which are definitely used and should be installed. But what about these others? Are they used? Should they be installed?

ye-luo commented 6 years ago

We may add or remove files over time. So copy bin/* over.

markdewing commented 6 years ago

Should we adopt some sort of standard for the names of the executables? (add qmc_ prefix, or at least have qmc in the name, as in convert4qmc) In the case where someone installs into a common directory (like /usr/local/bin), so the qmcpack-derived executables can be easily identified.

prckent commented 6 years ago

Good suggestion. At least qmc in the name.

These are mentioned but not described in the manual, so a small update will be needed.

jtkrogel commented 6 years ago

@markdewing are we moving forward with this or are other developments priority at the moment?

markdewing commented 6 years ago

I can get some changes in - rename (#1208) and install should be straightforward.

prckent commented 6 years ago

A prefix for nexus related utilities needs to be chosen carefully. e.g. nx is NoMachine's technology.

jtkrogel commented 6 years ago

I'll have to think more about that.

jtkrogel commented 6 years ago

For the QMCPACK related ones, is this desired?

jtkrogel commented 6 years ago

On the Nexus side, is "nxs-" or "nexus-" better for a prefix? Googling seems to point toward "nxs-" as a better route ("nexus-" prefixed executables are associated with Nexus Wallet), though this is also a file extension.

prckent commented 5 years ago

Should I move the NEXUS part of this to v3.7.0 or is something in the works?

jtkrogel commented 5 years ago

Looking into it. I think installing the Nexus executables this way (a la #1215) should be straightforward.

Less sure if there is a good way to modify the PYTHONPATH environment variable for the user from within CMake to complete the install.

prckent commented 5 years ago

Closed by #1215 and #1242