Getting Started

Table of Contents

1. Download the code

You can download the CC4S code by typing

  git clone https://gitlab.cc4s.org/cc4s/cc4s.git

This will create a new folder named ./cc4s/ where the complete source code will be downloaded.

2. Compilation

Building the CC4S binary is done in two steps.

In the first step, the external libraries employed by CC4S need to be built. This is done by typing

  make CONFIG=<config> extern

in the main directory.

In the second step, the CC4S code is built. This is done by typing

  make CONFIG=<config>

in the main directory.

Depending on the available set of compilers and MPI libraries, you can choose any configuration that is currently available in the ./etc/config/ folder.

Building the code using the Intel compiler and Intel MPI library is done by typing

  make CONFIG=icc-mkl-impi extern
  make CONFIG=icc-mkl-impi

in the main directory.

3. Running tests

3.1. Quick start

You can test your CC4S binary for a set of test systems. The script test/testis.py is used to run all the tests and fetch the data dependencies.

After having built your binary with the configuration <CONFIG>, you can run the tests like

make -C test run CONFIG=<CONFIG> CC4S_RUN='mpirun -np 48 ${CC4S_PATH}'

You can also run the post-processing step of the tests separately by doing

make -C test check CONFIG=<CONFIG> CC4S_RUN='mpirun -np 48 ${CC4S_PATH}'

3.1.1. Python Dependencies

Please note that testis.py depends on python3.3 or newer. In order to run the check phase, it is also necessary to have the pyyaml python package installed.

You can install the package locally by issuing the command

pip3 install --user pyyaml

or globally by

sudo pip3 install pyyaml

If you are not able to install pyyaml on your own, please contact your system administrator.

3.2. Test failed, what now?

If a test failed, you can go to the directory of the test that failed with the current configuration as this is printed in the output of the failing test.

For every compiler configuration there will be a different sub-directory in the test directory. In it, a series of linked files can be found that are used to run the binary. Importantly, also a link to the used binary should be found there, Cc4s, so that you can enter the test directory and rerun the test with

mpirun -np <number-of-processes> ./Cc4s

3.3. Running additional tests

Every test in cc4s has some tags assigned to it. By default, when a user tests the code, only the tests tagged essential will be run.

You can however change this by defining the environment variable TAGS by issuing the make command, i.e., in the case that you want to run the tests tagged as essential and ccsd, you can issue the following command

make -C test CONFIG=<CONFIG> run TAGS="essential ccsd"

3.4. Fetching data in network-constrained environments

Some tests depend on dependencies such as coulomb integrals coming from various quantum chemical codes in different repositories scattered across the internet. testis.py downloads this data automatically, as you might have seen in its output.

If however your cluster does not allow internet requests for security reasons, you can prefetch the test data and then scp it to the respective cluster.

In the root directory you can issue the make command

make -C test data

This command downloads in test/testis-store the necessary data for the tests. You can then copy this folder to the required computer

scp -r test/testis-store user@remote-computer:path/to/cc4s/test/

Created: 2022-09-19 Mon 15:00