[Wien] unwanted behaviour of runsp_c_lapw

Stefaan Cottenier Stefaan.Cottenier at fys.kuleuven.be
Wed Jun 1 17:59:31 CEST 2005


Dear all,

When I use runsp_c_lapw (in order to do an LDA+U calculation for a 
nonmagnetic system in an efficient way), then it behaves not as it is 
intended to do when ran in parallel mode (k-point) on a computer system 
in which each cpu has its own scratch disk, not seen by other nodes 
($SCRATCH = /tmp). The problem is in this part of runsp_c_lapw :

if ( "$so" == "-so" ) then
  total_exec    lapw1 $it0 -up $para $nohns
else
  total_exec    lapw1 $it0 -up $para $nohns $orb
endif
  foreach i ( ${scratch}$file.vectorup* )
  if (! -z $i) then
  set target=`echo $i | sed s/vectorup/vectordn/`
    cp $i $target     <==============================
    set j=`echo $i:e | cut -d _ -f 2- -s`
    if ( $j ) then
      cp $file.energyup_$j $file.energydn_$j <==============
    else
      cp $file.energyup $file.energydn
    endif
  endif

The two copy statements are done only once, because the 'i' is 
initialized based on the the content of the scratch for one machine (it 
will contain only *_1). One would need to initialize this based on a 
file present in the case directory (like case.energyup_*), and the 
copying of the vector files should be done on the remote nodes as well.

I assume this is easy to adapt for someone fluent in script language 
(I'm not, hint...! )

Stefaan





More information about the Wien mailing list