Difference between revisions of "Install and Run-v.1.0.0"
(→Files necessary to run SALMON) |
(→input file) |
||
Line 150: | Line 150: | ||
SALMON describes electron dynamics in systems with both isolated and periodic boundary conditions. | SALMON describes electron dynamics in systems with both isolated and periodic boundary conditions. | ||
The boundary condition is specified by the variable ''iperiodic'' in the namelist ''&system''. | The boundary condition is specified by the variable ''iperiodic'' in the namelist ''&system''. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Calculations are usually achieved in two steps; first, the ground state calculation is carried out and then electron dynamics calculations in real time is achieved. Choice of the calculation mode is specified by the variable ''calc_mode'' in the namelist ''&calculation''. | |
− | + | For isolated systems, the ground state and the electron dynamics calculations should be carried out as two separate executions. | |
+ | First the ground state calculation is carried out specifying ''calc_mode = 'GS' ''. | ||
+ | Then the real-time electron dynamics calculation is carried out specifying ''calc_mode = 'RT' ''. | ||
+ | For periodic systems, two calculations should be carried out as a single execution specifying ''calc_mode = 'GS_RT' ''. | ||
− | + | There are more than 20 groups of namelists. A complete list of namelist variables is given in the file ''SALMON/manual/input_variables.md''. | |
− | + | Namelist variables that are used in our tutorials are explained at [[Tutorial-v.1.0.0#Namelists and their values]]. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | In [[ | + | In [[Tutorial-v.1.0.0]], we prepare six tutorials that cover typical calculations feasible by SALMON. |
− | We prepare explanations | + | We prepare explanations of the input files of the tutorials that will help to prepare input files of your own interests. |
Here we briefly explain the format of the namelist. | Here we briefly explain the format of the namelist. |
Revision as of 12:31, 22 November 2017
Prerequisites
In this guide, it is assumed that readers have a basic knowledge of Unix and its command line operations. For the installation of SALMON, following packages are required.
- Fortran90/C compiler. Our package assumes users have one of the following compilers:
- GCC (Gnu Compiler Collection)
- Intel Fortran/C Compiler
- Fujitsu Compiler (at FX100 / K-Computer)
- One of the following library packages for linear algebra:
- BLAS/LAPACK
- Intel Math Kernel Library (MKL)
- Fujitsu Scientific Subroutine Library 2 (SSL-II)
- Build tools.
- CMake
If you use other compilers, you may need to change build scripts (CMake). See #Additional options in configure.py script. If no numerical library is installed on your computer system, you may need to install BLAS/LAPACK by yourself. See Troubleshooting of the Installation Process.
For the installation of SALMON, we adopt the CMake tools as the first option. If there were any problems to use CMake tools in your environment, you may use the GNU make tools. See Troubleshooting of the Installation Process.
Download
The newest version of SALMON can be downloaded from Download. To extract files from the downloaded file salmon-<VERSION>.tar.gz, type the following command in the command-line,
$ tar –zxvf ./salmon-<VERSION>.tar.gz
After the extraction, the following directories will be created.
SALMON |- src Source codes |- example Samples |- makefiles GNU Makefiles for building |- cmakefiles CMake related files |- makefiles GNU Makefiles for building
Build
To compile SALMON to create executable the binary files, we adopt to use CMake tools as the first option. In case you fail to build SALMON using CMake in your environment, we may use Gnu Make. See Install_and_Run-v.1.0.0#Build_with_GNU_Makefile.
Checking CMake availability
First, examine whether CMake is usable in your environment or not. Type the following in Unix command-line:
$ cmake --version
If CMake is not installed in your system, an error message such as cmake: command not found
will appear.
If CMake is installed on your system, the version number will be shown.
To build SALMON, CMake of version 3.0.2 or later is required.
If you confirm that Came of version 3.0.2 or later is installed in your system, proceed to #Build using CMake.
However, we realize that old versions of CMake are installed in many systems.
If CMake is not installed or CMake of older versions is installed in your system, you need to install the new version by yourself.
It is a simple procedure and explained below.
Installation of CMake
CMake is a cross-platform build tool.
The simplest way to make CMake usable in your environment is to get the binary distribution of CMake from the download page. The file name of the binary distribution will be cmake-<VERSION>-<PLATFORM>.tar.gz
). In standard Unix environment, a file for the platform of Linux x86_64 will be appropriate.
To download the file, proceed as follows: We assume that you are in the directory that you extracted files from the downloaded file of SALMON,
and that you will use the version 3.8.2. First get the URL of the download link from your browser, and use wget
command in your Unix command-line.
$ wget https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.tar.gz
Next, unpack the archive by
$ tar -zxvf cmake-3.8.2-Linux-x86_64.tar.gz
and you will have the binary make-3.8.2-Linux-x86_64/bin/cmake
in your directory.
To make the cmake
command usable in your command-line, you need to modify the environment variable $PATH
so that the executable of CMake are settled inside the directory specified in your $PATH
.
If you use the bash shell, you need to modify the file ~/.bashrc
that specifies the $PATH
variable. It can be done by typing the following command in your login directory,
$ export PATH=<SALMON_INSTALLATION_DIRECTORY>/cmake-3.8.2-Linux-x86_64/bin:$PATH
and then reload the configuration by typing:
$ source ~/.bashrc
Build using CMake
Confirming that CMake of version 3.0.2 or later can be usable in your environment, proceed the following steps. We assume that you are in the directory SALMON.
- Create a new temporary directory build and move to the directory,
$ mkdir build $ cd build
- Execute the python script configure.py and then make,
$ python ../configure.py –arch=ARCHTECTURE $ make
In executing the python script, you need to specify ARCHITECTURE that indicates the architecture of the CPU in your computer system such as intel-avx. The options of the ARCHTECUTRE are as follows:
arch | Detail | Compiler | Numerical Library |
intel-knl | Intel Knights Landing | Intel Compiler | Intel MKL |
intel-knc | Intel Knights Corner | Intel Compiler | Intel MKL |
intel-avx | Intel Processer (Ivy-, Sandy-Bridge) | Intel Compiler | Intel MKL |
intel-avx2 | Intel Processer (Haswell, Broadwell ..) | Intel Compiler | Intel MKL |
fujitsu-fx100 | FX100 Supercomputer | Fujitsu Compiler | SSL-II |
fujitsu-k | Fujitsu FX100 / K-computer | Fujitsu Compiler | SSL-II |
If the build is successful, you will get a file salmon.cpu at the directory salmon/bin. If you specify many-core archtechtures, intel-knl or intel-knc, you find a file salmon.mic or both files salmon.cpu and salmon.mic.
Files necessary to run SALMON
To run SALMON, at least two kinds of files are required for any calculations. One is an input file with the filename extension *.inp* that should be read from the standard input stdin. This file should be prepared in the Fortran90 namelist format. Pseudopotential files of relevant elements are also required. Depending on your purpose, some other files may also be necessary. For example, coordinates of atomic positions of the target material may be either written in the input file or prepared as a separate file.
Pseudopotentials
SALMON utilizes norm-conserving pseudpotentials. You may find pseudopotentials of some elements in the samples prepared in Tutorial-v.1.0.0. In SALMON, several formats of pseudopotentials may be usable. Pseudopotentials with an extension .cpi that can be obtained from the website listed below.
pseudopotential | website |
Ab-init FHI | http://www.ab-init |
Filenames of the pseudopotentials should be written in the input file.
input file
SALMON describes electron dynamics in systems with both isolated and periodic boundary conditions. The boundary condition is specified by the variable iperiodic in the namelist &system.
Calculations are usually achieved in two steps; first, the ground state calculation is carried out and then electron dynamics calculations in real time is achieved. Choice of the calculation mode is specified by the variable calc_mode in the namelist &calculation. For isolated systems, the ground state and the electron dynamics calculations should be carried out as two separate executions. First the ground state calculation is carried out specifying calc_mode = 'GS' . Then the real-time electron dynamics calculation is carried out specifying calc_mode = 'RT' . For periodic systems, two calculations should be carried out as a single execution specifying calc_mode = 'GS_RT' .
There are more than 20 groups of namelists. A complete list of namelist variables is given in the file SALMON/manual/input_variables.md. Namelist variables that are used in our tutorials are explained at Tutorial-v.1.0.0#Namelists and their values.
In Tutorial-v.1.0.0, we prepare six tutorials that cover typical calculations feasible by SALMON. We prepare explanations of the input files of the tutorials that will help to prepare input files of your own interests.
Here we briefly explain the format of the namelist.
&namelist1 variable1 = int_value variable2 = 'char_value' / &namelist2 variable1 = real8_value variable2 = int_value1, int_value2, int_value3 /
A block of namelists starts with &namelist line and ends with / line. Between two lines, descriptions of variables and their values appear. Note that many variables have their default values so that it is not necessary to give values for all variables. The description of the variables may appear at any position if they are between &namelist and /. Input files constitute of several blocks of namelists. The blocks can appear in any order.
Run SALMON
To run SALMON, the executable file of salmon.cpu (and salmon.mic if your system is the many-core machine) should be built from the source file of SALMON as described above. An input file inputfile.inp and pseudopotential files should also be prepared as mentioned above. In order to execute the calculation, for the single process environment, type the following command:
$ salmon.cpu < inputfile.inp > fileout.out
For the multiprocess environment, If the command to execute calculations using MPI is mpiexec', the calculation will start
$ mpiexec -n NPROC salmon.cpu < inputfile.inp > fileout.out
where NPROC is the number of MPI processes you want to use. For the many-core processor (e.g. intel-knl) environment, the execution command is
$ mpiexec.hydra -n NPROC salmon.mic < inputfile.inp > fileout.out
The execution command and the job submission procedure depends much on the local environment. We just summarize the general conditions to execute SALMON:
- salmon runs in parallel environment using MPI.
- executable files are prepared as /salmon/bin/salmon.cpu and/or /salmon/bin/salmon.mic in the standard build procedure.
- to start calculations, inputfile.inp should be read through stdin.
Appendix
Additional options in configure.py script
In executing configure.py
, you may manually specify compiler and environment variables instead of specifying the architecture, for example:
$ python ../configure.py FC=mpiifort CC=mpiicc FFLAGS="-xAVX" CFLAGS="-restrict -xAVX"
The major options of configure.py
is expressed as table below:
Commandline switch | Detail |
-a ARCH, --arch=ARCH | Target architecture |
--enable-mpi, --disable-mpi | enable/disable MPI parallelization. |
---enable-scalapack, --disable-scalapack | enable/disable computations with ScaLAPACK library |
FC, FFLAGS | User-defined Fortran Compiler, and the compiler options |
CC, CFLAGS | User-defined C Compiler, and the compiler options |
Build for Single processor environment
If you want to build for the single process environment, please specify --disable-mpi
.
$ python ../configure.py --arch=<ARCHITECTURE> --disable-mpi
Build for the GCC/GFortran environemnt
If you want to build by using GCC/GFortran compiler, you specify:
$ python ../configure.py FC=gfortran CC=gcc FFLAG=-O3 CFLAG=-O3
Build by GNU Makefile
If CMake build fails in your environment, you can try Gnu Make for the build process.
First, enter to the makefile directory:
$ cd SALMON/makefiles
and you need to choose Makefile appropriately according to your environment. The available makefiles are
- fujitsu
- gnu
- gnu-without-mpi
- intel
- intel-avx
- intel-avx2
- intel-knc
- intel-knl
- intel-without-mpi
The -without-mpi
specifies the build for the single process environment.
Execute make command with the platform specified makefile:
$ make -f Makefile.PLATFORM
The binary file is created in the directory SALMON/bin/
.