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

Add CMake installation for QMCPACK and NEXUS #1020

Closed
prckent opened this Issue Aug 20, 2018 · 21 comments

Comments

Projects
None yet
5 participants
@prckent
Copy link
Contributor

prckent commented Aug 20, 2018

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.

@prckent prckent added this to the V3.6.0 Release milestone Aug 20, 2018

@jtkrogel

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Aug 20, 2018

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

@naromero77

This comment has been minimized.

Copy link
Contributor

naromero77 commented Aug 20, 2018

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

This comment has been minimized.

Copy link
Contributor

naromero77 commented Aug 20, 2018

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

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Aug 20, 2018

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

@prckent

This comment has been minimized.

Copy link
Contributor

prckent commented Aug 20, 2018

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

@prckent

This comment has been minimized.

Copy link
Contributor

prckent commented Aug 20, 2018

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

@jtkrogel

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Aug 20, 2018

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

@markdewing

This comment has been minimized.

Copy link
Contributor

markdewing commented Oct 2, 2018

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

@markdewing

This comment has been minimized.

Copy link
Contributor

markdewing commented Oct 8, 2018

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?

  • getSupercell
  • extract-eshdf-kvectors
  • checkAffinity
@ye-luo

This comment has been minimized.

Copy link
Contributor

ye-luo commented Oct 8, 2018

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

@markdewing

This comment has been minimized.

Copy link
Contributor

markdewing commented Oct 8, 2018

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

This comment has been minimized.

Copy link
Contributor

prckent commented Oct 8, 2018

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

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Dec 4, 2018

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

markdewing added a commit to markdewing/qmcpack that referenced this issue Dec 4, 2018

Add qmc to tool names
As discussed in QMCPACK#1020, include a 'qmc' in the executable names.

Also change getSupercell to lowercase-with-dashes style to be more consistent.
@markdewing

This comment has been minimized.

Copy link
Contributor

markdewing commented Dec 4, 2018

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

@prckent

This comment has been minimized.

Copy link
Contributor

prckent commented Dec 4, 2018

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

@jtkrogel

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Dec 4, 2018

I'll have to think more about that.

@jtkrogel

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Dec 4, 2018

For the QMCPACK related ones, is this desired?

  • qfit -> qmc-fit
  • qstat -> qmc-stat
  • qtest -> qmc-test
  • qmca -> qmca
@jtkrogel

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Dec 4, 2018

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

This comment has been minimized.

Copy link
Contributor

prckent commented Dec 10, 2018

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

@jtkrogel

This comment has been minimized.

Copy link
Contributor

jtkrogel commented Dec 10, 2018

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

This comment has been minimized.

Copy link
Contributor

prckent commented Dec 13, 2018

Closed by #1215 and #1242

@prckent prckent closed this Dec 13, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment