Long equilibration

General discussion of the Cambridge quantum Monte Carlo code CASINO; how to install and setup; how to use it; what it does; applications.
varelse
Posts: 44
Joined: Mon Jun 10, 2013 10:17 pm

Long equilibration

Post by varelse »

I noticed that in my DMC calculation there is a problem with eqilibration. For example, a structure made of 13 C atoms and 9 H atoms (all-electron, not periodic), seems to equilibrate after 250 000 steps (with dmc_ave_period set to 100), and the the EBEST is roughly constant. The problem is this "roughly": EBEST constantly grows, and after 11 million steps it does not stabilize. The increase of energy is not huge (about 0.001 hartree in 9 million steps), but it is more or less constant, so I worry that probably the energies are highy correlated (and indeed, the reblock plot does not show a clear plateau).

So I have questions:
- Is such a long equilibration normal, for this size of system?
- If not, what can be the case?
- If not, should I restart the calculation, or rather continue this one?

In fact, I started another calculation for this system, with dmc_init_eref set closer to what I would expect from the above calculation - I thought that maybe it is a result of difference between initial VMC guess and DMC energy - but I am running this on PC, which is slower that the supercomputer I used for the above calculation, so for now I have too little data to compare.
Mike Towler
Posts: 239
Joined: Thu May 30, 2013 11:03 pm
Location: Florence
Contact:

Re: Long equilibration

Post by Mike Towler »

NOT ENOUGH DETAIL SUPPLIED.
STANDARD REQUEST FOR MORE INFORMATION:

(1) can we see a copy of your input file?

(2) What happened in the wave function optimization you did prior to the DMC? (Type 'envmc' in the relevant directory, if you still have the files..)
varelse
Posts: 44
Joined: Mon Jun 10, 2013 10:17 pm

Re: Long equilibration

Post by varelse »

Ok. The input file (this is continuation of previous calculation, but I think I did not change the VMC parameters):

Code: Select all

#-------------------#
# CASINO input file #
#-------------------#

# 

# SYSTEM
neu               : 44              #*! Number of up electrons (Integer)
ned               : 43              #*! Number of down electrons (Integer)
periodic          : F              #*! Periodic boundary conditions (Boolean)
atom_basis_type   : gaussian       #*! Basis set type (text)

# RUN
runtype           : dmc_stats            #*! Type of calculation (Text)
newrun            : F              #*! New run or continue old (Boolean)
testrun           : F              #*! Test run flag (Boolean)

# VMC
vmc_equil_nstep   : 5000           #*! Number of equilibration steps (Integer)
vmc_nstep         : 5000         #*! Number of steps (Integer)
vmc_nblock        : 4              #*! Number of checkpoints (Integer)
vmc_nconfig_write : 1000              #*! Number of configs to write (Integer)
complex_wf        : F              #*! Wave function real or complex (Boolean)
vmc_decorr_period : 12
dtvmc             : 0.2            #*! VMC time step (Double Precision)
opt_dtvmc         : 1              #*! Optimize VMC timestep (Integer)

# DMC
dmc_equil_nstep   : 2000           #*! Number of steps (Integer)
dmc_equil_nblock  : 1              #*! Number of checkpoints (Integer)
dmc_stats_nstep   : 4800000          #*! Number of steps (Integer)
dmc_stats_nblock  : 20000              #*! Number of checkpoints (Integer)
dmc_target_weight : 1000.0         #*! Total target weight in DMC (Real)
dtdmc             : 0.003          #*! DMC time step (Real)
use_tmove         : F              #*! Casula nl pp for DMC (Boolean)
dmc_ave_period    : 100

# RMC

# OPTIMIZATION
opt_method        : emin         #*! Opt method (varmin/madmin/emin/...)
opt_cycles        : 20              #*! Number of optimization cycles (Integer)
opt_jastrow       : T              #*! Optimize Jastrow factor (Boolean)
opt_det_coeff     : F              #*! Optimize determinant coeffs (Boolean)
opt_backflow      : F              #*! Optimize backflow parameters (Boolean)
opt_orbitals      : F              #*! Optimize orbital parameters (Boolean)

# GENERAL PARAMETERS
use_jastrow       : T              #*! Use a Jastrow function (Boolean)
backflow          : F              #*! Use backflow corrections (Boolean)
expot             : F              #*! Use external potential (Boolean)
timing_info       : F              #*! Activate subroutine timers (Boolean)
esupercell        : F              #*! Energy/supercell in output (Boolean)
neighprint        : 0              #*! Neighbour analysis (Integer)
mpc_cutoff        : 30.d0 hartree  #*! G vector cutoff for MPC (Physical)
forces            : F              #*! Evaluate forces on atoms (Boolean)
checkpoint        : 1              #*! Checkpoint level (Integer)
cusp_correction   : T

# EXPECTATION VALUES
density           : F              #*! Accumulate density (Boolean)
spin_density      : F              #*! Accumulate spin densities (Boolean)
pair_corr         : F              #*! Accumulate rec. space PCF (Boolean)
pair_corr_sph     : F              #*! Accumulate sph. real space PCF (Boolean)
loc_tensor        : F        #-------------------#
# CASINO input file #
#-------------------#

# 

# SYSTEM
neu               : 44              #*! Number of up electrons (Integer)
ned               : 43              #*! Number of down electrons (Integer)
periodic          : F              #*! Periodic boundary conditions (Boolean)
atom_basis_type   : gaussian       #*! Basis set type (text)

# RUN
runtype           : dmc_stats            #*! Type of calculation (Text)
newrun            : F              #*! New run or continue old (Boolean)
testrun           : F              #*! Test run flag (Boolean)

# VMC
vmc_equil_nstep   : 5000           #*! Number of equilibration steps (Integer)
vmc_nstep         : 5000         #*! Number of steps (Integer)
vmc_nblock        : 4              #*! Number of checkpoints (Integer)
vmc_nconfig_write : 1000              #*! Number of configs to write (Integer)
complex_wf        : F              #*! Wave function real or complex (Boolean)
vmc_decorr_period : 12
dtvmc             : 0.2            #*! VMC time step (Double Precision)
opt_dtvmc         : 1              #*! Optimize VMC timestep (Integer)

# DMC
dmc_equil_nstep   : 2000           #*! Number of steps (Integer)
dmc_equil_nblock  : 1              #*! Number of checkpoints (Integer)
dmc_stats_nstep   : 4800000          #*! Number of steps (Integer)
dmc_stats_nblock  : 20000              #*! Number of checkpoints (Integer)
dmc_target_weight : 1000.0         #*! Total target weight in DMC (Real)
dtdmc             : 0.003          #*! DMC time step (Real)
use_tmove         : F              #*! Casula nl pp for DMC (Boolean)
dmc_ave_period    : 100

# RMC

# OPTIMIZATION
opt_method        : emin         #*! Opt method (varmin/madmin/emin/...)
opt_cycles        : 20              #*! Number of optimization cycles (Integer)
opt_jastrow       : T              #*! Optimize Jastrow factor (Boolean)
opt_det_coeff     : F              #*! Optimize determinant coeffs (Boolean)
opt_backflow      : F              #*! Optimize backflow parameters (Boolean)
opt_orbitals      : F              #*! Optimize orbital parameters (Boolean)

# GENERAL PARAMETERS
use_jastrow       : T              #*! Use a Jastrow function (Boolean)
backflow          : F              #*! Use backflow corrections (Boolean)
expot             : F              #*! Use external potential (Boolean)
timing_info       : F              #*! Activate subroutine timers (Boolean)
esupercell        : F              #*! Energy/supercell in output (Boolean)
neighprint        : 0              #*! Neighbour analysis (Integer)
mpc_cutoff        : 30.d0 hartree  #*! G vector cutoff for MPC (Physical)
forces            : F              #*! Evaluate forces on atoms (Boolean)
checkpoint        : 1              #*! Checkpoint level (Integer)
cusp_correction   : T

# EXPECTATION VALUES
density           : F              #*! Accumulate density (Boolean)
spin_density      : F              #*! Accumulate spin densities (Boolean)
pair_corr         : F              #*! Accumulate rec. space PCF (Boolean)
pair_corr_sph     : F              #*! Accumulate sph. real space PCF (Boolean)
loc_tensor        : F              #*! Accumulate localization tensor (Boolean)
structure_factor  : F              #*! Accumulate structure factor (Boolean)
struc_factor_sph  : F              #*! Accumulate sph. struc. factor (Boolean)
onep_density_mat  : F              #*! Accumulate 1p density matrix (Boolean)
twop_density_mat  : F              #*! Accumulate 2p density matrix (Boolean)
cond_fraction     : F              #*! Accumulate cond fraction (Boolean)
dipole_moment     : F              #*! Accumulate elec. dipole moment (Boolean)
expval_cutoff     : 30.d0 hartree  #*! G vector cutoff for expval (Physical)
permit_den_symm   : F              #*! Symmetrize QMC charge data (Boolean)
qmc_density_mpc   : F              #*! Use QMC density in MPC int (Boolean)
int_sf            : F              #*! Calc ee int from strucfac (Boolean)

# BLOCK INPUT      #*! Accumulate localization tensor (Boolean)
structure_factor  : F              #*! Accumulate structure factor (Boolean)
struc_factor_sph  : F              #*! Accumulate sph. struc. factor (Boolean)
onep_density_mat  : F              #*! Accumulate 1p density matrix (Boolean)
twop_density_mat  : F              #*! Accumulate 2p density matrix (Boolean)
cond_fraction     : F              #*! Accumulate cond fraction (Boolean)
dipole_moment     : F              #*! Accumulate elec. dipole moment (Boolean)
expval_cutoff     : 30.d0 hartree  #*! G vector cutoff for expval (Physical)
permit_den_symm   : F              #*! Symmetrize QMC charge data (Boolean)
qmc_density_mpc   : F              #*! Use QMC density in MPC int (Boolean)
int_sf            : F              #*! Calc ee int from strucfac (Boolean)

# BLOCK INPUT
As for envmc results, then firstly, I use CASINO 2.12.1, in which there is ve instead of envmc (probably it does not matter), and secondly, for unknown reasons, from some time it is not working (so for sure it does not matter). It gives an error message:

Code: Select all

    VE_HELPER won't talk to me.
      Make sure it has been compiled.
Probably the admins of the supercomputer messed something up wih some libraries, but fortunately I saw no effect of this on CASINO itself. Currenty, I am extracting the energy and variance information from out file using grep.

So, first I've done a varmin optimization (for sure too many steps, there was another thread at this forum about this calculation). The energies:

Code: Select all

 Reblocked VMC energy:     -497.443340363294 +/-        0.021669888903
 Reblocked VMC energy:     -498.611337434690 +/-        0.006720871491
 Reblocked VMC energy:     -498.661715616009 +/-        0.006740749253
 Reblocked VMC energy:     -498.683133010820 +/-        0.006668801498
 Reblocked VMC energy:     -498.672281834227 +/-        0.006871107601
 Reblocked VMC energy:     -498.687301669734 +/-        0.006772659853
 Reblocked VMC energy:     -498.712178406054 +/-        0.006767306674
 Reblocked VMC energy:     -498.772039033303 +/-        0.007004559776
 Reblocked VMC energy:     -498.920410624484 +/-        0.006426364076
 Reblocked VMC energy:     -499.074948274429 +/-        0.006184571494
 Reblocked VMC energy:     -499.092706965676 +/-        0.006114903775
 Reblocked VMC energy:     -499.095027970391 +/-        0.006235205013
 Reblocked VMC energy:     -499.096174137676 +/-        0.006526250833
 Reblocked VMC energy:     -499.094292024441 +/-        0.005977820905
 Reblocked VMC energy:     -499.098768348723 +/-        0.005887444216
 Reblocked VMC energy:     -499.096151751162 +/-        0.006252892504
 Reblocked VMC energy:     -499.106064987772 +/-        0.005667820625
 Reblocked VMC energy:     -499.085003636606 +/-        0.007065636325
 Reblocked VMC energy:     -499.105479107587 +/-        0.006292356292
 Reblocked VMC energy:     -499.112943810776 +/-        0.006508024877
 Reblocked VMC energy:     -499.092562770116 +/-        0.006188454814
 Reblocked VMC energy:     -499.107812528800 +/-        0.006962635931
 Reblocked VMC energy:     -499.103708234169 +/-        0.006377897765
 Reblocked VMC energy:     -499.105923104882 +/-        0.005928848990
 Reblocked VMC energy:     -499.101723640256 +/-        0.006653499216
 Reblocked VMC energy:     -499.103417575961 +/-        0.006739689784
 Reblocked VMC energy:     -499.099905013461 +/-        0.006299024179
 Reblocked VMC energy:     -499.100604855208 +/-        0.006687245988
 Reblocked VMC energy:     -499.106684704485 +/-        0.006663446862
 Reblocked VMC energy:     -499.116319748655 +/-        0.005953637409
 Reblocked VMC energy:     -499.091252086697 +/-        0.006543709055
 Reblocked VMC energy:     -499.106027127087 +/-        0.006217619439
 Reblocked VMC energy:     -499.096524887248 +/-        0.007006668787
 Reblocked VMC energy:     -499.114337964749 +/-        0.006693856985
 Reblocked VMC energy:     -499.099283592137 +/-        0.006632287375
 Reblocked VMC energy:     -499.105100139776 +/-        0.005924335528
 Reblocked VMC energy:     -499.106645810142 +/-        0.006526510003
 Reblocked VMC energy:     -499.100980176818 +/-        0.006068443575
 Reblocked VMC energy:     -499.099845379597 +/-        0.006330173260
 Reblocked VMC energy:     -499.109245544670 +/-        0.006544326800
 Reblocked VMC energy:     -499.119022925923 +/-        0.006347452277
and variances:

Code: Select all

 Variance of local energy (au/sim.cell) : 112.498412695036 +- 2.723008168482
 Variance of local energy (au/sim.cell) : 16.931590321482 +- 0.046250281607
 Variance of local energy (au/sim.cell) : 16.704593695810 +- 0.038284248150
 Variance of local energy (au/sim.cell) : 16.043822348362 +- 0.062171693034
 Variance of local energy (au/sim.cell) : 15.635422491374 +- 0.029289359527
 Variance of local energy (au/sim.cell) : 15.445704152638 +- 0.033239334833
 Variance of local energy (au/sim.cell) : 15.494576430558 +- 0.074475992426
 Variance of local energy (au/sim.cell) : 15.366314973559 +- 0.072365994893
 Variance of local energy (au/sim.cell) : 15.608997674411 +- 0.060106951286
 Variance of local energy (au/sim.cell) : 15.012656086767 +- 0.219274344166
 Variance of local energy (au/sim.cell) : 15.030167408844 +- 0.088262890720
 Variance of local energy (au/sim.cell) : 14.775276805864 +- 0.043651637971
 Variance of local energy (au/sim.cell) : 14.850242407161 +- 0.099172077064
 Variance of local energy (au/sim.cell) : 14.804920894396 +- 0.033721103315
 Variance of local energy (au/sim.cell) : 14.843828484005 +- 0.059800222480
 Variance of local energy (au/sim.cell) : 14.960920278606 +- 0.064722614964
 Variance of local energy (au/sim.cell) : 14.830216702779 +- 0.084829685555
 Variance of local energy (au/sim.cell) : 14.895631423220 +- 0.069425673566
 Variance of local energy (au/sim.cell) : 14.909753695275 +- 0.035038117948
 Variance of local energy (au/sim.cell) : 14.824074014812 +- 0.052683121390
 Variance of local energy (au/sim.cell) : 14.805541603598 +- 0.053915255309
 Variance of local energy (au/sim.cell) : 14.785522605020 +- 0.046342243911
 Variance of local energy (au/sim.cell) : 14.969361932702 +- 0.097011859332
 Variance of local energy (au/sim.cell) : 14.921671152956 +- 0.039463931827
 Variance of local energy (au/sim.cell) : 14.890740781853 +- 0.127223288613
 Variance of local energy (au/sim.cell) : 14.777187964990 +- 0.018095300115
 Variance of local energy (au/sim.cell) : 14.989826757893 +- 0.173917171017
 Variance of local energy (au/sim.cell) : 14.852959235073 +- 0.086729733807
 Variance of local energy (au/sim.cell) : 14.966094084144 +- 0.041850697344
 Variance of local energy (au/sim.cell) : 14.959856972473 +- 0.075964270328
 Variance of local energy (au/sim.cell) : 14.885165984571 +- 0.075828381287
 Variance of local energy (au/sim.cell) : 14.849093197207 +- 0.066433063636
 Variance of local energy (au/sim.cell) : 14.890851530360 +- 0.065482768245
 Variance of local energy (au/sim.cell) : 14.810622638373 +- 0.042150017358
 Variance of local energy (au/sim.cell) : 15.053621164806 +- 0.096818431494
 Variance of local energy (au/sim.cell) : 14.860197834714 +- 0.052238920336
 Variance of local energy (au/sim.cell) : 14.911523381272 +- 0.068895221680
 Variance of local energy (au/sim.cell) : 14.853457871896 +- 0.071824357506
 Variance of local energy (au/sim.cell) : 14.848235319468 +- 0.065023861280
 Variance of local energy (au/sim.cell) : 14.764888333895 +- 0.072938160770
 Variance of local energy (au/sim.cell) : 14.874679125418 +- 0.039276327981
Then , starting from the result of this optimization, I made emin optimization with fixed cutoffs. Energies:

Code: Select all

 Reblocked VMC energy:     -499.092562770116 +/-        0.006188454799
 Reblocked VMC energy:     -499.547782626469 +/-        0.007394163960
 Reblocked VMC energy:     -499.541097678237 +/-        0.007577387722
 Reblocked VMC energy:     -499.553242839559 +/-        0.008278434842
 Reblocked VMC energy:     -499.533082745455 +/-        0.007975655797
 Reblocked VMC energy:     -499.547629872998 +/-        0.007101879214
 Reblocked VMC energy:     -499.527320957213 +/-        0.007289088161
 Reblocked VMC energy:     -499.539961744694 +/-        0.007617292957
 Reblocked VMC energy:     -499.549820937656 +/-        0.008046015719
 Reblocked VMC energy:     -499.549169991950 +/-        0.007479595519
 Reblocked VMC energy:     -499.555059491981 +/-        0.007737537866
 Reblocked VMC energy:     -499.550016205950 +/-        0.006455662951
 Reblocked VMC energy:     -499.533188744469 +/-        0.008466920782
 Reblocked VMC energy:     -499.530357355931 +/-        0.008013411873
 Reblocked VMC energy:     -499.533448937568 +/-        0.007920977914
 Reblocked VMC energy:     -499.554884074010 +/-        0.006908437457
 Reblocked VMC energy:     -499.548661354811 +/-        0.007476937682
 Reblocked VMC energy:     -499.538531032896 +/-        0.007353838171
 Reblocked VMC energy:     -499.535850682572 +/-        0.007075156055
 Reblocked VMC energy:     -499.544985396643 +/-        0.007869686133
 Reblocked VMC energy:     -499.543053028984 +/-        0.007921228144
and variances:

Code: Select all

 Variance of local energy (au/sim.cell) : 14.805541603600 +- 0.053915255310
 Variance of local energy (au/sim.cell) : 20.425634421786 +- 0.106281340765
 Variance of local energy (au/sim.cell) : 20.475887598262 +- 0.025270919848
 Variance of local energy (au/sim.cell) : 20.738478337608 +- 0.191403639936
 Variance of local energy (au/sim.cell) : 20.561688738776 +- 0.089374976879
 Variance of local energy (au/sim.cell) : 20.601656172366 +- 0.067849645292
 Variance of local energy (au/sim.cell) : 20.686831442970 +- 0.129137806910
 Variance of local energy (au/sim.cell) : 20.604350461681 +- 0.082751823424
 Variance of local energy (au/sim.cell) : 20.557535604115 +- 0.038623606090
 Variance of local energy (au/sim.cell) : 20.506104371540 +- 0.015203513227
 Variance of local energy (au/sim.cell) : 20.535489203466 +- 0.102533330903
 Variance of local energy (au/sim.cell) : 20.628308124008 +- 0.070480645500
 Variance of local energy (au/sim.cell) : 20.519617183296 +- 0.097995903916
 Variance of local energy (au/sim.cell) : 20.580129486213 +- 0.087407007234
 Variance of local energy (au/sim.cell) : 20.745775098387 +- 0.056759966828
 Variance of local energy (au/sim.cell) : 20.496847837200 +- 0.037505950453
 Variance of local energy (au/sim.cell) : 20.637767065057 +- 0.065096990561
 Variance of local energy (au/sim.cell) : 20.581644450729 +- 0.060976031027
 Variance of local energy (au/sim.cell) : 20.537069678279 +- 0.058430730487
 Variance of local energy (au/sim.cell) : 20.732698808798 +- 0.077840113850
 Variance of local energy (au/sim.cell) : 20.985329991897 +- 0.222100519606
Mike Towler
Posts: 239
Joined: Thu May 30, 2013 11:03 pm
Location: Florence
Contact:

Re: Long equilibration

Post by Mike Towler »

OK, 2.12.1 - as I said, this is getting a little old now. If you can upgrade to the current_beta, I would do so since then we don't end up fixing things that we've already fixed...
As for envmc results, then firstly, I use CASINO 2.12.1, in which there is ve instead of envmc (probably it does not matter), and secondly, for unknown reasons, from some time it is not working (so for sure it does not matter). It gives an error message:

VE_HELPER won't talk to me.
Make sure it has been compiled.

Probably the admins of the supercomputer messed something up wih some libraries, but fortunately I saw no effect of this on CASINO itself. Currenty, I am extracting the energy and variance information from out file using grep.
OK - let me focus on one problem at a time (my brain is too small to do otherwise).

The ve --> envmc thing happened in :

Code: Select all

---[v2.13.109]---
* Changed name of 've' utility to 'envmc' to make it clearer what it actually
  does (along with vevp --> envmcvp in the virtual parallel case). All
  documentation changed to reflect this. I have retained 've' and 'vevp' as
  symlinks to the renamed utilities for people who don't know that I did this.
  -- Mike Towler, 2013-09-13
I did that largely because people kept telling me that ve didn't work for DMC calculations (even though it isn't meant to; 'envmc' makes that more clear). So envmc and ve are in fact the same program - no problem here. Just use ve if you're using 2.12.1. Either ve or envmc will do in 2.13.xx

When you say 'Probably the admins of the supercomputer messed something up wih some libraries' does that mean this is a centrally-installed version of CASINO that the admins have done, or is this your own personal copy of CASINO set up by you? (the latter is what we very much recommend..)

The error message means that the ve script can't find the helper Fortran programme that it requires, i.e. your Fortran utilities have not been set up properly. More specifically, it can mean either:

(1) ve_helper is not in your path for some reason. Type 'which ve_helper' on the command line: what output does it give?

(2) You are on a machine that requires a cross-compiler i.e. the main compute nodes on which CASINO itself runs are of a different architecture to the login nodes on which you run Fortran utilities (the two types of program thus require a different compiler, or possibly just different compiler flags).

It's perfectly possible for the CASINO arch system to handle cross compilers - it just requires someone who knows what they're doing to set it up (the 'automatic arch file designer' inside the install script is aware of this and will ask you about cross compilers). As an example, take a look at :

CASINO/arch/data/linuxpc-gcc-pbs-parallel.titan.arch

All that stuff at the bottom defining environment variables with a '_NATIVE' suffix: that's the stuff that handles the Fortran utilities.

Thus :

FFLAGS_opt = -O3
FFLAGS_opt_NATIVE = $(FFLAGS_opt) -target=native

says that the Fortran compiler should use a flag '-O3' to turn on optimization for both the CASINO executable and the Fortran utilities, but when compiling utilities it should additionally use '-target=native' which means 'Please compile this program for use on the login nodes rather than the compute nodes'.

So to summarize:

(1) is ve_helper in your path?
(2) does your machine use a cross-compiler?
(3) what supercomputer is this and who set it up? If it's something specialized you might like to send me the arch files you're using for permanent inclusion in the CASINO distribution (which is a very good idea in general).

Mike
varelse
Posts: 44
Joined: Mon Jun 10, 2013 10:17 pm

Re: Long equilibration

Post by varelse »

The output of which ve_helper is ~/casino/bin_qmc/ve_helper, so it probably is where it should be.

As for cross-compliers, the problem is that it was not me who installed CASINO there, so I don't know, but I'll try to get to know this. The CASINO_ARCH is set to linuxpc-gcc-pbs-parallel, so a generic arch. But maybe that is the problem.

For the installation - it is to use only by us (meaning me and Paweł, who also is a registered user of CASINO), no other users of the supercomputer have the access to this copy.

The supercomputer is the Supernova cluster at Wroclaw Centre for Networking and Supercomputing (WCNS or WCSS in Polish). As I said, now it uses a generic arch file, but if a more appropriate arch file is needed, i will send it to you as soon as we set it up.
Mike Towler
Posts: 239
Joined: Thu May 30, 2013 11:03 pm
Location: Florence
Contact:

Re: Long equilibration

Post by Mike Towler »

OK, so the person who set CASINO up on the machine (not you, then) clearly didn't do it properly. This is the problem with centralized installations. In my experience people who run Computer Centres think a software program should be a single executable, and they get very angry when it comes with loads of analysis tools as well.. which they often refuse to let people have access to.

To answer my own question - looking at the web page - your machine does have separate compute and login nodes, and it's run by controlling people who really don't like people running their own software on it, see e.g. Regulation 23:

'Zadania obliczeniowe należy uruchamiać używając systemów kolejkowania działających na serwerach KDM, których funkcjonalność pozwala optymalnie zarządzać zasobami komputerów. Zadania uruchomione poza kolejkami mogą zostać usunięte bez ostrzeżenia. Jeżeli użytkownik potrzebuje wykonać zadanie wymagające interakcji podczas działania należy skorzystać z zadania interaktywnego.'

So OK, look, make a little Fortran program - call it test.f90:

PROGRAM test
write(6,*)'Hello - I am the 2013 QMC Summer School Champion and I [pause for effect] am a GENIUS!'
END PROGRAM test

Then type 'gfortran -o test test.f90' (the machine uses modules, so you might have to do something like 'module load PrgEnv-gnu' or whatever first. See the documentation).

The type './test'. Does it print out the statement praising you above? (according to Regulation 23 you're supposed to submit this to the batch queue system' but surely.. ;)

If you can get a Fortran program to work on the login node, then try installing your own version of CASINO. Download the current_beta from the website, unpack it in your home directory, cd ~/CASINO, ./install. Choose the [n] option: 'Create a new CASINO_ARCH for this machine interactively' then answer the questions it asks you - very carefully (differentiating between the cross compiler and the login nodes compiler, if that's possible). Let me know how you get on.
Mike Towler
Posts: 239
Joined: Thu May 30, 2013 11:03 pm
Location: Florence
Contact:

Re: Long equilibration

Post by Mike Towler »

And as for you main question,: no, your DMC equilibration should not take 250000 steps - usually no more than a few thousand are required if your Jastrow is reasonable. Sounds like something's gone wrong somewhere - I don't immediately understand the thing about EBEST rising either. Can you post - or put on the web somewhere - the output of graphdmc (which may still have been called graphit in the version of the code that you're using..).
so I worry that probably the energies are highy correlated (and indeed, the reblock plot does not show a clear plateau).
Not surprising there's no plateau. You're running with dmc_ave_period=100, which means that 100 consecutive DMC energies are averaged together before being written to the dmc.hist file. The only purpose of this is to reduce the size of the dmc.hist file, which is not normally a serious consideration. What it will do is to remove almost all serial correlation from the numbers - so that you expect it to be pretty close to the plateau from the start. If you want to do a proper analysis of serial correlation, you should set dmc_ave_period to 1 (which is more usual).
varelse
Posts: 44
Joined: Mon Jun 10, 2013 10:17 pm

Re: Long equilibration

Post by varelse »

Ok. As for equilibration, this is a plot for the whole calculation:
http://www.mediafire.com/view/oixdyfhc8 ... equil1.png
(as you probably notice, I'm using gnuplot, but this is just because there was no Grace at Supernova)
Close-up of the beginning:
http://www.mediafire.com/view/5q167c1c1 ... equil2.png
And now about subject of my question. Here is a close-up of the whole calculation, so that you see the variation in the region where EBEST is nearly constant:
http://www.mediafire.com/view/858aa3xll ... equil3.png
I am talking about the behaviour of EBEST between 2 million, and, say, 11 million steps. The calculation continued, and, I can see that at the end it stopped growing - but still I wonder whether this growth is something to worry about, or not.

And as for reblocking - here is a reblock plot with 10 000 equilibration steps. As you said, this should be more than enough. Something like plateau is forming, but I am not sure yet. But clearly it does not look like I was already on a plateau.
http://www.mediafire.com/view/zk1dygqrs ... block3.png
Mike Towler
Posts: 239
Joined: Thu May 30, 2013 11:03 pm
Location: Florence
Contact:

Re: Long equilibration

Post by Mike Towler »

Hi Blazej,

Thanks for posting the pictures..

I don't see this is anything to worry about. In the region you say you're concerned with between 2 and 11 million steps we see a variation in EBEST of something like 0.00075 au. According to your reblock plot, the final error bar after 11 million moves is something like 0.0003 au (about half the EBEST variation). The standard error after 2 million moves will be considerably greater than that, so all this is well within statistical error. Or am I missing something?

To see how the error bar varies with the number of moves, use the reblock utility to analyze the dmc.hist file using different starting points. You should be able to plot a graph of the convergence of the error bar.

Other remarks:
(as you probably notice, I'm using gnuplot, but this is just because there was no Grace at Supernova)
The CASINO utilities which require a plotting program (graphdmc, reblock_plot..) have all been upgraded in the current_beta version, so that if they can't find xmgrace they will automatically look for and use gnuplot as an alternative. Missing xmgrace should therefore no longer be a problem.
Something like plateau is forming, but I am not sure yet.
It is a plateau, and it looks fine to me (it is of course expected that the error bars increase to the right of the graph). As I said before, if you want to do a proper analysis of serial correlation you should run with dmc_ave_period = 1. Use good long DMC blocks so that it doesn't keep interrupting the calc to write the dmc.hist file to disk (type 'casinohelp dmc_stats_nblock' to see what happens at the end of a block).

Did you get anywhere with the possible cross-compiler issue? (i.e. making the Fortran utilities work?)

Cheers,
Mike
varelse
Posts: 44
Joined: Mon Jun 10, 2013 10:17 pm

Re: Long equilibration

Post by varelse »

Mike Towler wrote:I don't see this is anything to worry about. In the region you say you're concerned with between 2 and 11 million steps we see a variation in EBEST of something like 0.00075 au. According to your reblock plot, the final error bar after 11 million moves is something like 0.0003 au (about half the EBEST variation). The standard error after 2 million moves will be considerably greater than that, so all this is well within statistical error. Or am I missing something?
Surely this growth is really small and what I wonder about is not the size, but rather the fact that it is persistent. I mean, it looks like there is a kind of trend, like I could fit to it a straight line (of nonzero slope of course). And if there is a trend, there is a correlation (or at least I suspect there is). I would rather expect that uncorrelated energy would grow-decrease-grow-decrease and so on, and this variation would be around a constant value. I don't know if I am explaining this clearly.
Mike Towler wrote:It is a plateau, and it looks fine to me (it is of course expected that the error bars increase to the right of the graph
This is a problem for me: to define whether there is a clear plateau or not. I would be sure only when there is a really flat part. The definition "by eye" is not always clear. (in one of Your articles there was an objective criterion on the reblocked error, which you use in the automatic analysis in CASINO, so I should probably use this).
Mike Towler wrote:Did you get anywhere with the possible cross-compiler issue? (i.e. making the Fortran utilities work?)
I checked Your hello world program, it works. I also tried to go through the information on the computer's website, but it doesn't seem very informative. Probably I have to contact the administrators.
btw, when I ran auto-detect of arch files, it detects linuxpc-gcc-pbs-parallel as a valid arch. I compiled CASINO for it, but the same problem with envmc appears ("vmc helper won't talk to me"). Suprisingly, at first it didn't compile, then I tried to make my own arch, which also did not compile (not surprising, without access to the documentation). And then I tried compilation of linuxpc-gcc-pbs-parallel just to copy the final error message here, and it worked. Maybe because i didn't run the [r] option before compilation.
Post Reply