mirror of https://github.com/abinit/abinit.git
Improve doc of parallelism, as well as output in log files
This commit is contained in:
parent
485e6d0df0
commit
299029e77f
|
@ -1231,6 +1231,7 @@ information on such files:
|
|||
* [[prtgeo]] to print a file with a geometrical analysis (bond lengths and bond angles), that also contains an XMOL section
|
||||
* [[prt1dm]] to print a one-dimensional projection of potential and density, for the three axes.
|
||||
|
||||
<a id="control-of-output-in-the-parallel-case"></a>
|
||||
### 5.9 Control of output in the parallel case
|
||||
|
||||
For massively parallel runs, one cannot afford to have some of the output
|
||||
|
|
|
@ -21,8 +21,11 @@ export OMP_NUM_THREADS=4
|
|||
mpirun -n 10 abinit run.abi > log 2> err
|
||||
```
|
||||
|
||||
In the latter, the standard output of the application is redirected to `log` while `err` collects the standard error.
|
||||
The command *mpirun* might possibly be replaced by *mpiexec* depending on your system.
|
||||
In the latter, the standard output of the application is redirected to `log` while `err` collects the standard error.
|
||||
Note that the control of output in the parallel case needs to be adapted, as for massively parallel runs,
|
||||
one cannot afford to have some of the output files that are usually created, see
|
||||
the [[help:abinit#control-of-output-in-the-parallel-cas|abinit help file]] for more explanation and how to change the default behavior (_LOG/_NOLOG files).
|
||||
|
||||
* For ground-state calculations, the code has been parallelized (MPI-based parallelism)
|
||||
on the k-points, the spins, the spinor components, the bands, and the FFT grid and plane wave coefficients.
|
||||
|
|
|
@ -213,7 +213,7 @@ to a local temporary disk space named `/scratch/user`, then you might add to the
|
|||
Note that determining ahead of time the precise resources you will need for
|
||||
your run will save you a lot of time if you are using a batch queue system.
|
||||
|
||||
Also, for parallel runs, note that the _log_ files **will not** be written exept the main log file.
|
||||
Also, for parallel runs, note that the _log_ files **will not** be written except the main log file.
|
||||
You can change this behaviour by creating a file named `_LOG` to enforce the creation of all log files
|
||||
|
||||
```bash
|
||||
|
|
|
@ -1509,7 +1509,8 @@ end subroutine isfile
|
|||
!! iofn1
|
||||
!!
|
||||
!! FUNCTION
|
||||
!! Begin by eventual redefinition of unit std_in and std_out
|
||||
!! Define values of do_write_log and do_write_status parameters
|
||||
!! Eventual redefinition of unit std_in and std_out
|
||||
!! Then, print greetings for interactive user.
|
||||
!! Next, read filenames from unit std_in, AND check that new
|
||||
!! output file does not already exist.
|
||||
|
@ -1557,10 +1558,10 @@ subroutine iofn1(input_path, filnam, filstat, comm)
|
|||
real(dp),allocatable :: dprarr(:)
|
||||
!*************************************************************************
|
||||
|
||||
! NOTE: In this routine it's very important to perform tests
|
||||
! NOTE: In this routine it is very important to perform tests
|
||||
! on possible IO errors (err=10, iomsg) because we are initializing the IO stuff
|
||||
! It there's some problem with the hardware or some misconfiguration,
|
||||
! it's very likely that the code will crash here and we should try to give useful error messages.
|
||||
! If there is some problem with the hardware or some misconfiguration,
|
||||
! it is very likely that the code will crash here and we should try to give useful error messages.
|
||||
|
||||
blank = ' '; tmpfil = ''
|
||||
|
||||
|
@ -1768,6 +1769,10 @@ subroutine iofn1(input_path, filnam, filstat, comm)
|
|||
if (open_file(fillog,msg,unit=std_out,status='unknown',action="write") /= 0) then
|
||||
ABI_ERROR(msg)
|
||||
end if
|
||||
! Print greetings for interactive user
|
||||
write(std_out,*,err=10,iomsg=errmsg)' ABINIT ',trim(abinit_version)
|
||||
write(std_out,*,err=10,iomsg=errmsg)' '
|
||||
write(std_out,*,err=10,iomsg=errmsg)' I am not the master. Writing log in ',fillog
|
||||
else
|
||||
close(std_out, err=10, iomsg=errmsg)
|
||||
if (open_file(NULL_FILE,msg,unit=std_out,action="write") /= 0) then
|
||||
|
|
|
@ -2641,7 +2641,7 @@ subroutine xderiveRead_int2d_displ(wff,xval,n1,n2,spaceComm,displace,ierr)
|
|||
depl_val(ipos)=ipos
|
||||
end do
|
||||
end do
|
||||
!To save time, the location describe by array map must be in increasing order
|
||||
!To save time, the location described by array map must be in increasing order
|
||||
nbval=0
|
||||
do i1=0,totsize-1
|
||||
if (depl_val(i1)/=-1) then
|
||||
|
|
|
@ -254,6 +254,9 @@ program abinit
|
|||
call wrtout([std_out, ab_out], msg)
|
||||
end if
|
||||
|
||||
msg=' abinit : after writing the name of files '
|
||||
call wrtout(std_out,msg,'PERS')
|
||||
|
||||
! Test if the netcdf library supports MPI-IO
|
||||
call nctk_test_mpiio()
|
||||
|
||||
|
|
Loading…
Reference in New Issue