Parallel params is a nice way of launching simulations for several parameters at once.
The core feature works perfectly fine, however from a user perspective it is not well documented how to use the feature/correctly setup the simulation directories.
It seems like people who use the feature rely on some internal scripts to setup the simulation.
I am working on a script, that uses the existing parameters file in combination with some new convention, in order to automatically generate the Temp folders and individual parameter files.
On top of that it creates links (ln -s "Temp_i" "some-human-readable-format-containing-infos-about-parameters"), so that the Temp folders become easier to differentiate.
Explanation of the notation:
Example 1:
&VAR_lattice
L1 = {4, 6, 8}
L2 = 0
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates three simulations of a 1D chain, with sizes 4, 6, 8.
Example 2:
&VAR_lattice
L1 = {4, 6, 8}
L2 = {4, 6, 8}
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates 3*3 simulations of a 2D lattice, with sizes (L1 =4, L2 = 4), (L1=4, L2=6)...
Example 3:
&VAR_lattice
L1 = {4, 6, 8}
L2 = [4, 6, 8; VAR_lattice, L1]
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates 3 simulations of a 2D lattice with sizes (L1=4, L2=4) (L1=6, L2=6), (L1=8, L2=8).
Notice that the square brackets link the L2 list with the "L1" element in the namelist "VAR_lattice".
Example 4:
&VAR_lattice
L1 = {4, 6, 8}
L2 = [6, 1, 3; VAR_lattice, L1]
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates 3 simulations of a 2D lattice with sizes (L1=4, L2=6) (L1=6, L2=1), (L1=8, L2=3).
Some advanced examples:
This is an example of a parameter file, how it is would be used with the new script.
parameters_easy.txt
Some cleaned up version, in order to see the applications better:
parameters_easy_cleaned.txt
Explanation:
With this parameter file, one would set up a u sweep for different square lattice sizes. A pi-flux square lattice per plaquette is used, thus for each lattice size N_phi needs to be set to N_Phi = L1*L2/2.
This is done using the convention from example 4: N_Phi = [8, 18, 32; VAR_lattice, L1]
The pi-flux generates Dirac fermions, therefore we would like to use \beta=L scaling, which is again done like in example 4: Beta = [4, 6, 8; VAR_lattice, L1].
But we can go even further and use this for Benchmarking, etc.:
All Namelists (except &VAR_errors, &VAR_Max_Stoch) and all types, i.e. booleans, integers, floats are supported.
Full parameter files, how it would be used:
parameters.txt
Cleaned up for readability:
parameters copy.txt
This would launch U sweeps for the for the Hubbard model and the tV model.
For different square lattices.
It would test the effects of Checkerboard and Symm. (E.g. for debugging...)
We again use the pi-flux square lattice (Thus N_phi=L_1*L_2/2) and again \beta=L scaling.
Also for some reason different Nwrap are probed in this example.
While this last example might not be useful in its application, it shows nicely, what is possible when establishing such a notation.
I am currently already writing the script, in order to enable this.
Parallel params is a nice way of launching simulations for several parameters at once.
The core feature works perfectly fine, however from a user perspective it is not well documented how to use the feature/correctly setup the simulation directories.
It seems like people who use the feature rely on some internal scripts to setup the simulation.
I am working on a script, that uses the existing parameters file in combination with some new convention, in order to automatically generate the Temp folders and individual parameter files.
On top of that it creates links (ln -s "Temp_i" "some-human-readable-format-containing-infos-about-parameters"), so that the Temp folders become easier to differentiate.
Explanation of the notation:
Example 1:
&VAR_lattice
L1 = {4, 6, 8}
L2 = 0
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates three simulations of a 1D chain, with sizes 4, 6, 8.
Example 2:
&VAR_lattice
L1 = {4, 6, 8}
L2 = {4, 6, 8}
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates 3*3 simulations of a 2D lattice, with sizes (L1 =4, L2 = 4), (L1=4, L2=6)...
Example 3:
&VAR_lattice
L1 = {4, 6, 8}
L2 = [4, 6, 8; VAR_lattice, L1]
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates 3 simulations of a 2D lattice with sizes (L1=4, L2=4) (L1=6, L2=6), (L1=8, L2=8).
Notice that the square brackets link the L2 list with the "L1" element in the namelist "VAR_lattice".
Example 4:
&VAR_lattice
L1 = {4, 6, 8}
L2 = [6, 1, 3; VAR_lattice, L1]
Lattice_type = "Square"
Model = "Hubbard"
/
...
This creates 3 simulations of a 2D lattice with sizes (L1=4, L2=6) (L1=6, L2=1), (L1=8, L2=3).
Some advanced examples:
This is an example of a parameter file, how it is would be used with the new script.
parameters_easy.txt
Some cleaned up version, in order to see the applications better:
parameters_easy_cleaned.txt
Explanation:
With this parameter file, one would set up a u sweep for different square lattice sizes. A pi-flux square lattice per plaquette is used, thus for each lattice size N_phi needs to be set to N_Phi = L1*L2/2.
This is done using the convention from example 4: N_Phi = [8, 18, 32; VAR_lattice, L1]
The pi-flux generates Dirac fermions, therefore we would like to use \beta=L scaling, which is again done like in example 4: Beta = [4, 6, 8; VAR_lattice, L1].
But we can go even further and use this for Benchmarking, etc.:
All Namelists (except &VAR_errors, &VAR_Max_Stoch) and all types, i.e. booleans, integers, floats are supported.
Full parameter files, how it would be used:
parameters.txt
Cleaned up for readability:
parameters copy.txt
This would launch U sweeps for the for the Hubbard model and the tV model.
For different square lattices.
It would test the effects of Checkerboard and Symm. (E.g. for debugging...)
We again use the pi-flux square lattice (Thus N_phi=L_1*L_2/2) and again \beta=L scaling.
Also for some reason different Nwrap are probed in this example.
While this last example might not be useful in its application, it shows nicely, what is possible when establishing such a notation.
I am currently already writing the script, in order to enable this.