daschaich / susy Goto Github PK
View Code? Open in Web Editor NEWCodes for supersymmetric lattice gauge theories
License: GNU General Public License v3.0
Codes for supersymmetric lattice gauge theories
License: GNU General Public License v3.0
The current method of reading in runtime parameters from the command line seemed to lead to some trouble interfacing with performance monitoring tools. It may be more modern to read in from a file (a la QHMC), at least as an option.
This is mainly cosmetic, but becoming more worthwhile as the number of Twist_Fermion routines grows.
To help users keep track of how much memory is really being used, the usage due to the following FIELD_ALLOCS should be reported along the lines of the main fields and the pfaffian matrix at setup.c#L220:
The eigenvectors at setup.c#L470
The stochastic sources for the mode number computation at setup.c#L499
The SU(2) matrix for gauge-fixing hits, which was just moved to setup.c#L457 on the gather_dev branch
This should be a straightforward (if minor) performance improvement for I/O: In */generic/io_lat.c, there are currently lots of NUMLINK * sizeof(fmatrix)
multiplications inside loops over the lattice volume, which can be brought out front and stored in a constant data_size
variable, as in the 2d_SQCD_dev branch.
Need to figure out some way to test truncated code for correctness before merging the truncated_dev branch into master...
Is there a way to rearrange the stochastic mode number computation so that it does the inversions for all Omega simultaneously? Currently we have separate calls to the multi-shift solver for each Omega, each with the same source(s).
Currently the eigensolver works with PRIMME v1.2.2. Changes to the PRIMME interface since then are currently incompatible with eig.c/complex.h.
May take some work, but should give worthwhile performance boost --- good first step would be to check benefits in MILC's staggered multi-CG using QUDA...
Hi there!
In my recent use of this program, I found three segmentation fault bugs due to the inappropriate use of memory allocation routine malloc(). Below I list a verified fix for each:
Line 131 in susy/4d_Q16/susy/update_o.c
Twist_Fermion **src = malloc(Nroot * sizeof(**src));
should be changed to
Twist_Fermion **src = malloc(Nroot * sizeof(Twist_Fermion *));
Line 13 in susy/4d_Q16/susy/update_o.c
Twist_Fermion ***psim = malloc(Nroot * sizeof(***psim));
should be changed to
Twist_Fermion ***psim = malloc(Nroot * sizeof(Twist_Fermion **));
Line 44 in susy/4d_Q16/susy/congrad_multi.c
Twist_Fermion **pm = malloc(Norder * sizeof(**pm));
should be changed to
Twist_Fermion **pm = malloc(Norder * sizeof(Twist_Fermion *));
Thank you!
Hi there,
When I run the program, it encounters an "Division by Zero" error. The error-inducing inputs are:
nx: 3
ny: 1
nz: 1
nt: 3
PBC: 5
iseed: 1
Nroot: 3
Norder: 1
The error locates in function setup_layout() inside susy/4d_Q16/generic/layout_hyper_prime.c. I fixes the error by checking if the divisor is 0, which is achieved via inserting the following code segment before the division operation, i.e., before line 115.
if (squaresize[XUP] == 0 ||
squaresize[XUP] == 0 ||
squaresize[ZUP] == 0 ||
squaresize[TUP] == 0 )
{
Abort();
}
Thank you!
Once the truncated links are deprecated we can implement a bit more code reuse.
A bit more will also be allowed by implementing 2d_Q04 dimensional reduction center stabilization, as well as the spectral density and eigenmode number computations, for example in params.h.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.