... | ... | @@ -31,14 +31,14 @@ It is recommended to download the toolkit directly from the repository using git |
|
|
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.
|
|
|
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.
|
|
|
|
|
|
# Compaling standard libraries and tools
|
|
|
The toolkit is equipped with various [libs](https://gitlab.fizyka.pw.edu.pl/wtools) and tools that support the computation process. See [here](Auxiliary tools) for a list of presently 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:
|
|
|
# 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:
|
|
|
```
|
|
|
./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 W-SLDA Toolkit, for example
|
|
|
```
|
|
|
gabrielw@e1135:~/grant_518/project_data/wslda$ ./install-libs.sh
|
|
|
Installing libs...
|
... | ... | @@ -55,19 +55,19 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/storage_2/project_data/grant_518/ws |
|
|
export PATH=$PATH:/mnt/storage_2/project_data/grant_518/wslda/lib/wdata/bin:/mnt/storage_2/project_data/grant_518/wslda/tools/bin
|
|
|
```
|
|
|
|
|
|
Share `export` statements with other users of the toolkit, so they can also use it. You need to make `wslda` folder readable for other members of the group.
|
|
|
Share `export` statements with other toolkit users, so they can also use it. You need to make `wslda` folder readable for other members of the group.
|
|
|
|
|
|
# Setting up templates
|
|
|
W-SLDA exploits a working model based on templates.
|
|
|
User starts with the template of a project where items like external potential, external pairing potential, external velocity must be provided in C language. Templates are localized in folders:
|
|
|
The user starts with a project template where items like external potential, pairing potential, and external velocity must be provided in C language. Templates are localized in folders:
|
|
|
* [st-project-template](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/st-project-template) for static problems (`st-wslda` codes)
|
|
|
* [td-project-template](https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/tree/public/td-project-template) for time-dependent problems (`td-wslda` codes)
|
|
|
|
|
|
Within these folders `Makefile` and `machine.h` files compatible with your computing system must be provided.
|
|
|
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, 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).
|
|
|
|
|
|
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 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
|
... | ... | @@ -81,9 +81,9 @@ cp /home/gabrielw/MyProjects/cold-atoms/templates/eagle/machine.h /home/gabrielw |
|
|
Done.
|
|
|
```
|
|
|
|
|
|
# Testing correctness of templates
|
|
|
# Testing the correctness of templates
|
|
|
## Testing of compilation
|
|
|
Copy project folder to separate location (in the example below I use `tmp` folder)
|
|
|
Copy the project folder to a separate location (in the example below, I use `tmp` folder)
|
|
|
```bash
|
|
|
cd ~/tmp
|
|
|
cp -r $WSLDA/st-testcase-uniform/ .
|
... | ... | @@ -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 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
|
|
|
`-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).
|
|
|
|
|
|
*Recommendation*: Typically (super)computers utilize `module load` system for configuring 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 example of a test for static 2d code is presented:
|
|
|
Execute the binary codes. Below an example of a test for static 2d code is presented:
|
|
|
```bash
|
|
|
[gabrielw@dell st-testcase-uniform]$ mpirun -np 4 ./st-wslda-2d input.txt
|
|
|
```
|
... | ... | @@ -165,7 +165,7 @@ Follow instructions from [README.txt](https://gitlab.fizyka.pw.edu.pl/wtools/wsl |
|
|
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).
|
|
|
|
|
|
# Making W-SLDA Toolkit accessible to other users (optional)
|
|
|
To make W-SLDA Toolkit accessible to other users assure that `wslda` is placed in a location that is readable for all users. Make sure that permissions are set correctly, for example:
|
|
|
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:
|
|
|
```bash
|
|
|
chmod -R a+r wslda
|
|
|
```
|
... | ... | |