Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
installation_guide [2024/12/17 16:25] – update binary minimum requirements mayinstallation_guide [2025/10/21 19:13] (current) – [Prerequisites] may
Line 21: Line 21:
 ''%%/usr/local/molpro-mpptype-arch/lib/.token%%'' ''%%/usr/local/molpro-mpptype-arch/lib/.token%%''
  
-When your licence is valid for one specific computer only (e.g. licences of type node8, node32, and especially if you hold a trial licence), then it is necessary to determine and enter the sysid on your account page. Only after that, a valid token may be downloaded.+When your licence is valid for one specific computer only (e.g. licences of type node8, node32, and especially if you hold a trial licence), then it is necessary to determine and enter the sysid on your account page. Only after that, a valid token may be downloaded. This works on Linux or Mac. On Windows, a sysid cannot be determined, and thus the Molpro binary for Windows can only be used with a group (or site or service) licence.
  
 Other configuration options may also be specified in the molpro script file found in the bin directory of the install. Other configuration options may also be specified in the molpro script file found in the bin directory of the install.
Line 48: Line 48:
 5) Now go to "Download" on your account page. It may take a few seconds, until the page is displayed. 5) Now go to "Download" on your account page. It may take a few seconds, until the page is displayed.
 Download the version for your operating system (Linux or Mac, but not Windows).\\  Download the version for your operating system (Linux or Mac, but not Windows).\\ 
-6) Uncompress the file molpro-mpptype-arch.sh.gz (it might be called e.g. molpro-mpp-2021.2.1.linux_x86_64_sockets.sh.gz )\\ +6) Uncompress the file molpro-mpptype-arch.sh.gz (it might be called e.g. molpro-mpp-2021.2.1.linux_x86_64_mpipr.sh.gz )\\ 
 **gunzip molpro-mpptype-arch.sh.gz**\\  **gunzip molpro-mpptype-arch.sh.gz**\\ 
 7) Run the file as root:\\  7) Run the file as root:\\ 
Line 98: Line 98:
   - A large scratch file system containing a directory that users may write on.   - A large scratch file system containing a directory that users may write on.
   - An MPI wrapped C++ compiler, eg. ''mpicxx''. On HPC systems there is normally a vendor supplied library, otherwise one can install easily Open MPI which is known to work well with Molpro. We also recommend building Molpro with the [[https://hpc.pnl.gov/globalarrays/|Global Arrays toolkit]]. See [[GA installation]] for more details.   - An MPI wrapped C++ compiler, eg. ''mpicxx''. On HPC systems there is normally a vendor supplied library, otherwise one can install easily Open MPI which is known to work well with Molpro. We also recommend building Molpro with the [[https://hpc.pnl.gov/globalarrays/|Global Arrays toolkit]]. See [[GA installation]] for more details.
 +  - [[https://www.hdfgroup.org/solutions/hdf5/|HDF5]] built for parallel execution.
   - The source code of Molpro.   - The source code of Molpro.
  
-There are example Dockerfiles for {{:Dockerfile.fc36.txt|fedora}}, {{:Dockerfile.lp154.txt|suse}} and {{:Dockerfile.ubuntu22.04.txt|ubuntu}}. For Mac with Apple Silicon one could use:+There are example Dockerfiles for {{:Dockerfile.fc42.txt|fedora}}, {{:Dockerfile.lp160.txt|suse}} and {{:Dockerfile.ubuntu24.04.txt|ubuntu}}. For Mac one could use:
 <code> <code>
 +#!/bin/sh
 # build Molpro on MacOS, ARM architecture # build Molpro on MacOS, ARM architecture
-# MacOS 12.6 Monterey+# MacOS 15.5 Sequoia
 # prerequisite 1: command line developer tools, start with xcode-select --install # prerequisite 1: command line developer tools, start with xcode-select --install
-#                 Note: Xcode 14.0 is incompatible with gcc, and cannot be used. See https://stackoverflow.com/questions/73714336/xcode-update-to-version-2395-ld-compile-problem-occurs-computedatomcount-m/73765819#73765819 
 # prerequisite 2: install homebrew, starting from https://brew.sh # prerequisite 2: install homebrew, starting from https://brew.sh
-brew unlink open-mpi+PREFIX=$HOME/.local/molpro-build # installation directory 
 + 
 +brew info open-mpi | egrep 'Installed$' && brew unlink open-mpi
 brew install doxygen eigen gcc lapack python3 mpich cmake coreutils wget brew install doxygen eigen gcc lapack python3 mpich cmake coreutils wget
 brew link mpich brew link mpich
-export CC=gcc-12 CXX=g++-12 
-export MPICXX=mpicxx MPICC=mpicc MPICH_CC=${CC} MPICH_CXX=${CXX} 
-wget -O - https://github.com/GlobalArrays/ga/releases/download/v5.8.1/ga-5.8.1.tar.gz | tar xzf - && cd ga-5.8.1 && ./configure --with-blas=no --with-lapack=no --with-scalapack=no --disable-f77 --with-mpi-pr && make -j10 && sudo make install && cd .. && rm -rf ga-5.8.1 
-git clone git@github.com:molpro/molpro 
-cd molpro 
-./configure && make -j20 && version=$(grep PACKAGE_VERSION build/molpro_config.h|sed -e 's/^.*PACKAGE_VERSION *"//' -e 's/" *$//') && sudo make install && sudo ln -sf /usr/local/molpro/molpro_${version}/bin/molpro /usr/local/bin/molpro 
-</code> 
-and for Mac with Intel: 
-<code> 
-# build Molpro on MacOS, Intel architecture 
-# MacOS 12.6 Monterey 
-# prerequisite 1: command line developer tools, start with xcode-select --install 
-#                 Note: Xcode 14.0 is incompatible with gcc, and cannot be used. See https://stackoverflow.com/questions/73714336/xcode-update-to-version-2395-ld-compile-problem-occurs-computedatomcount-m/73765819#73765819 
-# prerequisite 2: install homebrew, starting from https://brew.sh 
-# prerequisite 3: Intel MKL from https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-download.html?operatingsystem=mac&distributions=webdownload&options=online 
  
-brew install eigen gcc python3 openmpi cmake coreutils +GA_VERSION=5.9.2 
-git clone https://github.com/GlobalArrays/ga ga_mpipr && cd ga_mpipr && git checkout v5.8.&& ./autogen.sh && ./configure --with-blas=no --with-lapack=no --with-scalapack=no --disable-f77 --with-mpi-pr && make -j10 && sudo make install && cd .. && rm -rf ga_mpipr +wget -O - https://github.com/GlobalArrays/ga/releases/download/v${GA_VERSION}/ga-${GA_VERSION}.tar.gz | tar xzf - && cd ga-${GA_VERSION} && ./configure --prefix=$PREFIX --with-blas=no --with-lapack=no --with-scalapack=no --disable-f77 --with-mpi-pr CC=mpicc CXX=mpicxx && make -j20 && make install && cd .. && rm -rf ga-${GA_VERSION}* 
-git clone git@github.com:molpro/molpro + 
-export OMPI_CXX=g++-12 OMPI_CC=gcc-12 +HDF5_VERSION=1.14.6 
-cd molpro +wget -O - https://github.com/HDFGroup/hdf5/releases/download/hdf5_${HDF5_VERSION}/hdf5-${HDF5_VERSION}.tar.gz | tar xzf - && cd hdf5-${HDF5_VERSION} && ./configure --enable-parallel --prefix=$PREFIX CC=mpicc CXX=mpicxx && make -j20 && make install && cd .. && rm -rf hdf5-${HDF5_VERSION}* 
-./configure && make -j10 && sudo make install && sudo ln -s /usr/local/molpro/molpro_*/bin/molpro /usr/local/bin/molpro+ 
 +if [ x$1 = xbuild ]; then 
 +  export PATH=$PREFIX/bin:$PATH 
 +  git clone git@github.com:molpro/molpro 
 +  cd molpro 
 +  ./configure --prefix=$PREFIX && make -j20 && version=$(grep PACKAGE_VERSION build/molpro_config.h|sed -e 's/^.*PACKAGE_VERSION *"//' -e 's/" *$//'&& make install && cd $PREFIX && ln -sf ../molpro_${version}/bin/molpro $PREFIX/bin/molpro 
 +fi
 </code> </code>
  
Line 142: Line 136:
 deploy_environment=molpro-build # change this to an existing environment in which you want molpro, if you like deploy_environment=molpro-build # change this to an existing environment in which you want molpro, if you like
  
-conda create -y -n ${build_environment} cxx-compiler c-compiler fortran-compiler mpich mkl-devel eigen cmake git curl wget make+source $(dirname $(dirname $CONDA_EXE))/etc/profile.d/conda.sh 
 +conda create -y -n ${build_environment} cxx-compiler c-compiler fortran-compiler mpich eigen cmake git curl wget make
 conda activate ${deploy_environment} && deploy_prefix=${CONDA_PREFIX} || exit 1 conda activate ${deploy_environment} && deploy_prefix=${CONDA_PREFIX} || exit 1
-conda activate ${build_environment} +conda activate ${build_environment} && PREFIX=${CONDA_PREFIX} 
-wget -O - https://github.com/GlobalArrays/ga/releases/download/v5.8.1/ga-5.8.1.tar.gz | tar xzf -  +if [ $(uname -m) != arm64 ]; then conda install -y mkl-devel; fi 
-cd ga-5.8.1 && ./configure --prefix=${CONDA_PREFIX} --with-blas=no --with-lapack=no --with-scalapack=no --disable-f77 --with-mpi-pr && make -j10 && make install && cd .. && rm -rf ga-5.8.1+ 
 +GA_VERSION=5.9.2 
 +wget -O - https://github.com/GlobalArrays/ga/releases/download/v${GA_VERSION}/ga-${GA_VERSION}.tar.gz | tar xzf - && cd ga-${GA_VERSION} && ./configure --prefix=$PREFIX --with-blas=no --with-lapack=no --with-scalapack=no --disable-f77 --with-mpi-pr CC=mpicc CXX=mpicxx && make -j20 && make install && cd .. && rm -rf ga-${GA_VERSION}* 
 + 
 +HDF5_VERSION=1.14.
 +wget -O - https://github.com/HDFGroup/hdf5/releases/download/hdf5_${HDF5_VERSION}/hdf5-${HDF5_VERSION}.tar.gz | tar xzf - && cd hdf5-${HDF5_VERSION} && ./configure --enable-parallel --prefix=$PREFIX CC=mpicc CXX=mpicxx && make -j20 && make install && cd .. && rm -rf hdf5-${HDF5_VERSION}* 
 git clone git@github.com:molpro/molpro git clone git@github.com:molpro/molpro
 cd molpro cd molpro
-./configure --prefix=${deploy_prefix} CXX=mpicxx && make -j20 && version=$(grep PACKAGE_VERSION build/molpro_config.h|sed -e 's/^.*PACKAGE_VERSION *"//' -e 's/" *$//') && make install && ln -sf ${CONDA_PREFIX}/molpro_${version}/bin/molpro ${CONDA_PREFIX}/bin/molpro+./configure --prefix=${deploy_prefix} CXX=mpicxx && make -j20 && version=$(grep PACKAGE_VERSION build/molpro_config.h|sed -e 's/^.*PACKAGE_VERSION *"//' -e 's/" *$//') && make install && ln -sf ${deploy_prefix}/molpro_${version}/bin/molpro ${PREFIX}/bin/molpro
 </code> </code>
 ==== Configuration ==== ==== Configuration ====
Line 160: Line 161:
 ./configure ./configure
 </code> </code>
-which creates the file ''CONFIG''. This file contains machine-dependent parameters, such as compiler options. Normally ''CONFIG'' will not need changing, but you should at the least examine it, and change any configuration parameters which you deem necessary. Additionally a shell script ''bin/molpro'' is created, this is normally fine for a single machine install, but on other setups may need modification, eg. the ''LAUNCHER'' variable may need changing from mpiexec to srun on a slurm system. Any changes made to ''CONFIG'' or ''bin/molpro'' will be lost next time ''%%./configure%%'' is invoked, so it is best to supply as many of these as possible via the command line.+shell script ''bin/molpro'' is created, this is normally fine for a single machine install, but on other setups may need modification, eg. the ''LAUNCHER'' variable may need changing from mpiexec to srun on a slurm system. Any changes made to ''CONFIG'' or ''bin/molpro'' will be lost next time ''%%./configure%%'' is invoked, so it is best to supply as many of these as possible via the command line.
  
 **Options specification** **Options specification**
Line 198: Line 199:
 ==== Tuning ==== ==== Tuning ====
  
-Molpro can be tuned for a particular system by running in the root directory the command +Molpro can be tuned for a particular system by running the Molpro input file ''%%tuning.inp%%''. On most modern systems the defaults are fine and running the job is not necessaryIn some casesin particular where the tuning job does not well represent the kinds of jobs Molpro will be used for, the parameters may even slow down Molpro. The tuning parameters obtained are no longer automatically acceptedinstead the options required to adopt these parameters are written to the output file, and one can choose whether to adopt them.
- +
-''%%make tuning%%'' +
- +
-This job automatically determines a number of tuning parameters and appends these to the file ''%%bin/molpro%%''Using these parameters, Molpro will select the best BLAS routines depending on the problem size. This job should run on an empty system. It may typically take 10 minutesdepending on the processor speed, and you should wait for completion of this run before doing the next steps.+
  
 **Adjusting the default environment for Molpro** **Adjusting the default environment for Molpro**
Line 218: Line 215:
 ==== Final Install ==== ==== Final Install ====
  
-Although the program can be used in situ, it is usually convenient to make a system wide install for production. The install process copies only those files needed at run time into appropriate installation directories as specified at configuration time (see [[#configuration]]) and stored in the file ''CONFIG''. To install the program in this way, do+Although the program can be used in situ, it is usually convenient to make a system wide install for production. The install process copies only those files needed at run time into appropriate installation directories as specified at configuration time with ''%%--prefix%%'' (see [[#configuration]]). To install the program in this way, do
  
 ''%%make install%%'' ''%%make install%%''
  
 The complete source tree can then be archived and deleted. The complete source tree can then be archived and deleted.
- 
-During the install process the key from ''%%$HOME/.molpro/token%%'' is copied to ''%%PREFIX/lib/.token%%'' so that the key will work for all users of the installed version.