Coder Social home page Coder Social logo

daschaich / susy Goto Github PK

View Code? Open in Web Editor NEW
15.0 7.0 6.0 20.26 MB

Codes for supersymmetric lattice gauge theories

License: GNU General Public License v3.0

C 98.04% C++ 0.70% Shell 1.23% Makefile 0.04%
lattice-gauge-theory mpi quantum-field-theory physics supersymmetry

susy's Introduction

SUSY LATTICE is parallel code for RHMC simulations of extended-supersymmetric Yang--Mills theories in various dimensions, including related measurements.
This package evolved from the MILC code, and supersedes the serial C++ code presented in arXiv:1108.1503.
Extension to additional theories is currently underway in development branches.

See subdirectories for more detailed READMEs:
1d_Q16 -- One-dimensional 16-supercharge Yang--Mills (BFSS/BMN) theories
2d_Q04 -- Two-dimensional N=(2,2) supersymmetric Yang--Mills theory
4d_Q16 -- Four-dimensional N=4 supersymmetric Yang--Mills theory

Please contact David Schaich with any questions, requests for new features, or (especially) bug reports:
http://www.davidschaich.net

Contributors: David Schaich, Thomas DeGrand, Raghav Jha, Anosh Joseph, Georg Bergner, Simon Catterall, Joel Giedt

Reference: A summary of useful information appears in the following paper, which we ask that you cite if you find SUSY LATTICE useful in your work:
  David Schaich and Thomas DeGrand,
  "Parallel software for lattice N=4 supersymmetric Yang--Mills theory",
  Comput. Phys. Commun. 190:200--212 (2015)
  [doi:10.1016/j.cpc.2014.12.025, arXiv:1410.6971].

Support: Development was supported in part by Syracuse University, the University of Colorado Boulder, the University of Bern, Friedrich Schiller University Jena, the International Centre for Theoretical Sciences Bangalore, the Indian Institute of Science Education and Research Mohali, Rensselaer Polytechnic Institute and the University of Liverpool, as well as by the U.S. Department of Energy under grants DE-FG02-04ER41290, DE-SC0010005, DE-SC0008669 and DE-SC0009998, and UK Research and Innovation Future Leader Fellowship MR/S015418/1.

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

susy's Issues

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.

Test truncation

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

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!

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.

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.

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

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.

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!

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.