Dear Nick,
The patch works. Reminder: for transiesta, one should replace the m_ts_options
and go to the Obj directory removing m_ts_options.* files. Before iusse "make
transiesta", one should "sh ../Src/obj.sh", or the patch does not work. If you
do a "make clean" and "make transiesta", there is no this problem.
But currently, I have found that once a tbtrans job finished, there is a
*_tbt.alloc file in my $HOME directory and a TIME file also. So I think this is
related to the following code in Src/alloc.F90.
if (node == 0) then
if (present(unit)) then ! Assume that unit has been open outside
if (unit > 0) then
REPORT_UNIT = unit
if (present(file)) then
REPORT_FILE = file
else
REPORT_FILE = 'unknown'
end if
end if
else if (present(file)) then ! If file is the same, do nothing
if (file /= REPORT_FILE) then ! Check if file was open outside
REPORT_FILE = file
inquire( file=REPORT_FILE, opened=open, number=REPORT_UNIT )
if (.not.open) then ! Open new file
call io_assign(REPORT_UNIT)
open( REPORT_UNIT, file=REPORT_FILE, status='unknown')
write(REPORT_UNIT,*) ' ' ! Overwrite previous reports
end if
end if
else if (REPORT_UNIT==0) then ! No unit has been open yet
REPORT_FILE = 'alloc_report'
call io_assign(REPORT_UNIT)
open( REPORT_UNIT, file=REPORT_FILE, status='unknown')
write(REPORT_UNIT,*) ' ' ! Overwrite previous reports
end if
end if
There is also the corresponding code in Src/m_timer.F90 to produce multiple
TIMES files.
This seems the computing node other than the master node (IOnode) writes to the
*_tbt.alloc and TIMES file. If it does not find one, it will creates one in the
$HOME directory.
Anyhow, this does not effect the computing.
Thanks very much again for your help.
With best regards.
Guangping
2013-10-30
发件人:Nick Papior Andersen <[email protected]>
发送时间:2013-10-29 22:08
主题:Re: [SIESTA-L] About the I/O of new transiesta and tbtrans
收件人:"[email protected]"<[email protected]>
抄送:
Yes, sorry, you should do exactly the same edit for both m_ts_options and
m_tbt_options.
I have attached a patch for you to apply (that is easier).
Kind regards Nick
2013/10/29 zgp121 <[email protected]>
Dear Nick,
I think there are seveals to modified, 'm_ts_options.F90' and
'm_tbt_options.F90'.
can I just let IOnode to check if the HSfiles exist?
no, don't do that. (that requires more modifications)
that is:
the modification in 'm_tbt_options.F90' is for transiesta executables.
No, m_tbt_options is only for tbtrans.
call check_HSfile('Left',HSFileL,NUsedAtomsL,NUsedOrbsL) =>
if (IOnode) then
call check_HSfile('Left',HSFileL,NUsedAtomsL,NUsedOrbsL)
end if
and
call check_HSfile('Right',HSFileR,NUsedAtomsR,NUsedOrbsR)=>
if (IOnode) then
call check_HSfile('Right',HSFileR,NUsedAtomsR,NUsedOrbsR)
end if
inquire(file=TRIM(HSFile),exist=exist)
if ( .not. exist ) then
call die("Scattering region does not exist. &
&Please create scattering region file '"//TRIM(HSFile)//"' first.")
end if
====>
if (IOnode) then
inquire(file=TRIM(HSFile),exist=exist)
if ( .not. exist ) then
call die("Scattering region does not exist. &
&Please create scattering region file '"//TRIM(HSFile)//"' first.")
end if
end if
I can sucessfully compile the code after modification. And the test job is in
queue.
Best regards.
Guangping
2013-10-29
发件人:Nick Papior Andersen <[email protected]>
发送时间:2013-10-29 21:14
主题:Re: [SIESTA-L] About the I/O of new transiesta and tbtrans
收件人:"[email protected]"<[email protected]>
抄送:
I believe that this small change will fix the problem (I haven't tested it).
In m_ts_options at line 421 it says:
inquire(file=TRIM(HSFile),exist=exist)
Right after that line add the following:
exist = exist .or. .not. IONode
Then it should only check the file existence for the master-node.
Kind regards Nick
2013/10/29 zgp121 <[email protected]>
Dear Nick,
Thanks for your reply.
The batach job sctript only make a copy one the master node. So it is not
simple to create an empty files on the other nodes.
I will wait the bug fixed to run it parallelly on many nodes. At the moment I
will run it only on one only, which should wait for a longer time in the queue.
Withe best regards.
Yours
Guangping Zhang
2013-10-29
发件人:Nick Papior Andersen <[email protected]>
发送时间:2013-10-29 19:18
主题:Re: [SIESTA-L] About the I/O of new transiesta and tbtrans
收件人:"[email protected]"<[email protected]>
抄送:
This is a "bug" in the code.
The code checks (for all nodes) whether a file corresponding to the electrode
TSHS file exists and kiils the job if not.
A simple work-around for the time being is to create an empty file. It is only
the master node which does the reading/writing anyway.
You should simply do a touch on the file on all nodes, no need to copy the
entire TSHS file.
Kind regards Nick
2013/10/29 zgp121 <[email protected]>
Dear Transiesta and TBtrans users:
I noticed that during the calculation of the Green's function for the leads,
the I/O nodes are not only the master node in trunk-444.
Becasue I want to parallel the executables on several nodes, also I want to
improve the I/O performance, so I copy the files to the local storage of the
master node. But the executable complains that there is no TSHS files. So I
guess, the nodes other than the master node need to read the TSHS files.
Is that true? If so, if I want use the local storage, I should do the parallel
on one nodes.
With best regards.
Yours
Guangping Zhang
2013-10-29