Giter Club home page Giter Club logo

susy's People

Contributors

anoshjoseph avatar asherletov avatar daschaich avatar rgjha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

susy's Issues

More code reuse

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.

Test truncation

Need to figure out some way to test truncated code for correctness before merging the truncated_dev branch into master...

Report more malloc data

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:

  1. The eigenvectors at setup.c#L470

  2. The stochastic sources for the mode number computation at setup.c#L499

  3. The SU(2) matrix for gauge-fixing hits, which was just moved to setup.c#L457 on the gather_dev branch

Input methods

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.

Update to PRIMME2 or PRIMME3

Currently the eigensolver works with PRIMME v1.2.2. Changes to the PRIMME interface since then are currently incompatible with eig.c/complex.h.

Move some operations out of loops

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.

Bug Report: Division by Zero

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!

Bug report: Three Segmentation Fault Bugs

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:

  1. 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 *));

  2. 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 **));

  3. 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!

Multi-shift solver for stochastic mode number?

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).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.