| ... | ... | @@ -11,11 +11,11 @@ |
|
|
|
* [ELPA library](https://elpa.mpcdf.mpg.de/) (optionally)
|
|
|
|
* [CUDA compiler](https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html) (optionally, for ELPA)
|
|
|
|
|
|
|
|
*Note 1*: compilers and libraries (FFTW, LAPACK, ScaLAPACK) are installed by default on most of the computing clusters. If the computing system is equipped with GPUs most likely CUDA Toolkit is also installed. On many systems, ELPA is also installed by default. If not you can compile it yourself.
|
|
|
|
*Note 1*: compilers and libraries (FFTW, LAPACK, ScaLAPACK) are installed by default on most of the computing clusters. If the computing system is equipped with GPUs, it is likely that the CUDA Toolkit is also installed. On many systems, ELPA is also installed by default. If not, you can compile it yourself.
|
|
|
|
|
|
|
|
*Note 2*: LAPACK and ScaLAPACK libraries are part of Intel® Math Kernel Library.
|
|
|
|
|
|
|
|
*Note 3*: It is recommended to use `st-wslda` with ELPA support if possible. It provides substantial speed-up of the computation process. See [here](ELPA installation guide) for more instructions related to installing ELPA.
|
|
|
|
*Note 3*: It is recommended to use `st-wslda` with ELPA support if possible. It provides a substantial speed-up of the computation process. See [here](ELPA installation guide) for more instructions related to installing ELPA.
|
|
|
|
|
|
|
|
## Time-dependent codes (td-wslda)
|
|
|
|
* C compiler (eg. `gcc`, intel compiler `icc`, ...)
|
| ... | ... | @@ -30,15 +30,15 @@ It is recommended to download the toolkit directly from the repository using git |
|
|
|
```bash
|
|
|
|
git clone https://gitlab.fizyka.pw.edu.pl/wtools/wslda.git
|
|
|
|
```
|
|
|
|
Optionally you can download it manually from [main webpage](https://gitlab.fizyka.pw.edu.pl/wtools/wslda).
|
|
|
|
The toolkit is contained in `wslda` folder; see [here](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/wikis/Folders-structure) for more info about content.
|
|
|
|
Optionally, you can download it manually from [main webpage](https://gitlab.fizyka.pw.edu.pl/wtools/wslda).
|
|
|
|
The toolkit is contained in the `wslda` folder; see [here](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/wikis/Folders-structure) for more info about the content.
|
|
|
|
|
|
|
|
# Compaling standard libraries and tools (Optionally)
|
|
|
|
The toolkit has various [libs](https://gitlab.fizyka.pw.edu.pl/wtools) tools supporting the computation process. See [here](Auxiliary tools) for available tools. While it is not mandatory, we recommend compiling them at the stage of the installation process. You can do it by executing the provided script in the main folder:
|
|
|
|
# Compiling standard libraries and tools (Optionally)
|
|
|
|
The toolkit has various [libs](https://gitlab.fizyka.pw.edu.pl/wtools) tools supporting the computation process. See [here](Auxiliary tools) for available tools. While it is not mandatory, we recommend compiling them during the installation process. You can do it by executing the provided script in the main folder:
|
|
|
|
```
|
|
|
|
./install-libs.sh
|
|
|
|
```
|
|
|
|
Once the compilation is finished, you will get instructions on how to set system variables in order to be able to use W-SLDA Toolkit, for example
|
|
|
|
Once the compilation is finished, you will get instructions on how to set system variables in order to be able to use the W-SLDA Toolkit, for example
|
|
|
|
```
|
|
|
|
gabrielw@e1135:~/grant_518/project_data/wslda$ ./install-libs.sh
|
|
|
|
Installing libs...
|
| ... | ... | @@ -65,9 +65,9 @@ The user starts with a project template where items like external potential, pai |
|
|
|
|
|
|
|
Within these folders, `Makefile` and `machine.h` files compatible with your computing system must be provided.
|
|
|
|
|
|
|
|
In the [templates](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/templates) folder, there are provided examples of machine-dependent files for various systems. The systems are listed in [templates/README.md](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/templates/README.md).
|
|
|
|
In the [templates](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/templates) folder, examples of machine-dependent files for various systems are provided. The systems are listed in [templates/README.md](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/templates/README.md).
|
|
|
|
|
|
|
|
To copy templates for the selected machine, you can use script [install-templates.py](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/blob/public/install-templates.py), for example:
|
|
|
|
To copy templates for the selected machine, you can use the script [install-templates.py](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/blob/public/install-templates.py), for example:
|
|
|
|
```bash
|
|
|
|
[gabrielw@dell cold-atoms]$ ./install-templates.py eagle
|
|
|
|
cp -r /home/gabrielw/MyProjects/cold-atoms/templates/eagle/st/* /home/gabrielw/MyProjects/cold-atoms/st-project-template
|
| ... | ... | @@ -95,12 +95,12 @@ If the process finishes successfully, executables `st-wslda-?d` will be created. |
|
|
|
|
|
|
|
*Note 1*: The ELPA Library must be in addition activated in [machine.h](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/blob/public/st-project-template/machine.h) file. To learn more about ELPA see [here](Setting up diagonalization engine).
|
|
|
|
|
|
|
|
*Note 2*: `st-wslda` codes utilizes LAPACK and ScaLAPACK libraries. The standard method of calling Fortran functions from C requires supplementing routine's names by `_` at the end, i.e fortran routine `DGEMM` is called from C as `dgemm_`. However, in cases of some systems/compilers (very rare) it is not needed. If this is the case of your system then you need to add to `CFLAGS` flag
|
|
|
|
*Note 2*: `st-wslda` codes utilize LAPACK and ScaLAPACK libraries. The standard method of calling Fortran functions from C requires supplementing routine names by `_` at the end, i.e, Fortran routine `DGEMM` is called from C as `dgemm_`. However, in cases of some systems/compilers (very rare), it is not needed. If this is the case with your system, then you need to add to `CFLAGS` flag
|
|
|
|
`-DFOTRAN_NO_UNDERSCORE`.
|
|
|
|
|
|
|
|
*Note 3*: In some cases, additional information about the architecture of the computing system must be provided in [machine.h](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/blob/public/st-project-template/machine.h) file. For more information see [here](Configuring GPU machine).
|
|
|
|
*Note 3*: In some cases, additional information about the architecture of the computing system must be provided in [machine.h](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/blob/public/st-project-template/machine.h) file. For more information, see [here](Configuring GPU machine).
|
|
|
|
|
|
|
|
*Recommendation*: Typically (super)computers utilize the `module load` system to configure the programming environment. We recommend placing a list of modules in a separate file, for example `env.sh`:
|
|
|
|
*Recommendation*: Typically, (super)computers utilize the `module load` system to configure the programming environment. We recommend placing a list of modules in a separate file, for example, `env.sh`:
|
|
|
|
```bash
|
|
|
|
module load daint-gpu
|
|
|
|
module swap PrgEnv-cray PrgEnv-gnu/6.0.9
|
| ... | ... | @@ -120,7 +120,7 @@ make |
|
|
|
```
|
|
|
|
|
|
|
|
## Testing of execution
|
|
|
|
Execute the binary codes. Below an example of a test for static 2d code is presented:
|
|
|
|
Execute the binary codes. Below is an example of a test for static 2d code:
|
|
|
|
```bash
|
|
|
|
[gabrielw@dell st-testcase-uniform]$ mpirun -np 4 ./st-wslda-2d input.txt
|
|
|
|
```
|
| ... | ... | @@ -162,15 +162,15 @@ Visit plugin is located in [lib/wdata/visit-plugin](https://gitlab.fizyka.pw.edu |
|
|
|
Follow instructions from [README.txt](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/lib/wdata/visit-plugin/README.txt) file to install it.
|
|
|
|
|
|
|
|
# Creating templates of submission scripts & REAMD.md (optional)
|
|
|
|
It is recommended to place in template folders submission scripts suitable for your computer, and README.md file with instructions for users. Examples of submission scripts and README.md files can be found in the folder [templates](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/templates).
|
|
|
|
It is recommended to place the submission scripts in template folders suitable for your computer, along with a README.md file that provides instructions for users. Examples of submission scripts and README.md files can be found in the folder [templates](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/templates).
|
|
|
|
|
|
|
|
# Making W-SLDA Toolkit accessible to other users (optional)
|
|
|
|
To make W-SLDA Toolkit accessible to other users, ensure that `wslda` is placed in a readable location for all users. Make sure that permissions are set correctly, for example:
|
|
|
|
To make the W-SLDA Toolkit accessible to other users, ensure that `wslda` is placed in a location that is readable by all users. Make sure that permissions are set correctly, for example:
|
|
|
|
```bash
|
|
|
|
chmod -R a+r wslda
|
|
|
|
```
|
|
|
|
|
|
|
|
Provide to users path to W-SLDA Toolkit. Users can place it in `.bashrc` file, for example:
|
|
|
|
Provide users with a path to the W-SLDA Toolkit. Users can place it in `.bashrc` file, for example:
|
|
|
|
```bash
|
|
|
|
export WSLDA=/project/pr91/share/wslda/
|
|
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/project/pr91/share/wslda/lib/wdata:/project/pr91/share/wslda/lib/wderiv:/project/pr91/share/wslda//lib/winterp
|
| ... | ... | |