Coder Social home page Coder Social logo

lattice / milc Goto Github PK

View Code? Open in Web Editor NEW
1.0 52.0 0.0 86.85 MB

Deprecated: Please use the milc_qcd repository which is a fork of the official MILC github repository. (Old description: This is a version of the milc software suite that is compatible with quda)

C 85.38% C++ 4.99% Perl 0.42% Objective-C 4.64% Shell 0.39% Assembly 4.18%

milc's Introduction

                          MILC Version 7

This code was developed by the MILC collaboration for simulations of
SU3 lattice gauge theory on MIMD parallel machines.  This code is
publicly available for research purposes.  Publications of work
done using this code or derivatives of this code should acknowledge
this use.  Development of this code was supported in part by grants
from the US Department of Energy and National Science Foundation.
Use this code at your own risk.

Since this is our working code, it is continually in a state of
development.  We will informally support the code as best we can by
answering questions and fixing bugs.  We will be very grateful for
reports of problems and suggestions for improvements.  These may be
sent to 

   [email protected].

      or 

   [email protected] 


Target architectures:

Currently code is supposed to run on:
1. Any scalar machine ("vanilla" version)
2. Linux/Unix switched clusters via MPI
3. MPP GigE mesh architectures

Overview of the code:

Each "application", or major variant of the code, has its own
directory.  For example, the ks_imp_dyn applications directory,
contains code for simulating full QCD in the staggered fermion scheme.
The compilation requires code from the "libraries", "generic", and
"generic_ks" directories, as well as the "ks_dynamical" directory
itself.  All applications share the "libraries" directory containing
low-level stuff, and the "generic" directory containing high level
stuff that is more or less independent of the physics.  The various
staggered fermion applications share the "generic_ks" directory.
Examples of "generic" code are the random number routines, the lattice
layout routines, routines to evaluate the plaquette or Polyakov loop,
etc.  Of the shared code, only the libraries must be built separately
before building any application code.  Code in the various generic
directories is compiled automatically as needed, and should not be
compiled separately.

doc:  More detailed documentation of the code

libraries:	Low level routines and include files
	
	complex.h:	Definitions and macros for complex numbers
	su3.h		Definitions and macros for SU(3)
	complex.1.a 	Routines for complex numbers (single precision)
	complex.2.a 	Routines for complex numbers (double precision)
	su3.1.a		Routines for SU(3) operations (single precision)
	su3.2.a		Routines for SU(3) operations (double precision)

include:   Header files required by the code

generic: High level code for generic SU(3) simulation. The other
	directories, which are for real applications, should use 
	the routines in this directory where possible, otherwise 
	copy routines from this directory and modify them or write 
	new routines.

generic_ks:     High level code shared by staggered fermion applications.

generic_wilson:   High level code shared by Wilson fermion applications.


The remaining directories are "applications" directories.  Most of the
application code can be built in various ways, depending on the
requirements of the project.  For example, the ks_imp_dyn directory
contains code for simulating full QCD in the staggered fermion scheme.
This code can be built to use the "R", "phi", and hybrid Monte Carlo
algorithms, and may also include measurements of the hadron spectrum.
These variants are obtained by selecting the appropriate compilation
target, as indicated in the application Make_template file.

arb_overlap
       Computes eigenvalues and eigenvectors of the overlap operator.

clover_dynamical
	Simulations with improved dynamical Wilson fermions.  Variants
	include the "R", "phi" and hybrid Monte Carlo updating
	algorithms.  Measurements include plaquette, Polyakof loop,
	psi-bar-psi and fermion energy and pressure.  Optional
	measurements include hadron spectrum, screening spectrum,
	axial current quark mass, and Landau gauge quark propagators.

clover_invert2
        Calculation of meson and baryon propagators with improved
        Wilson fermions or naive Dirac fermions.

ext_src
	Utility for extracting an extended source from a propagator file.

file_utilities
       A variety of utilities for converting lattice file formats, running
       a checksum of a gauge file, and  comparing some binary files.

gauge_utilities
        A variety of utilities for manipulating the gauge field, including
        coordinate translations, gauge fixing, and boundary twists.

gluon_prop
        Calculation of the gluon propagator in a specific gauge and
        the nonperturbative renormalization of the vector and axial
        vector current.

hvy_qpot
       Measures static quark potential as a function of separation.
       Also a variety of Wilson loops.

ks_eigen
	Eigenvalues of the staggered Dirac operator.

ks_imp_dyn
	Simulations with dynamical Kogut-Susskind fermions.  Variants
	include the "R", "phi" and hybrid Monte Carlo updating
	algorithms.  Measurements include plaquette, Polyakov loop,
	psi-bar-psi, and fermions energy and pressure.  Optional
	measurements include hadron spectrum, screening spectrum,
	and some wave functions. (includes FFT routines in wave function)

ks_imp_rhmc
        Simulations as above, but using the rational hybrid Monte
        Carlo method.

ks_imp_utilities
      Test code for the staggered fermion force and staggered inverter.

ks_measure
	Scalar operators, mainly used for the equation of state ahd
	quark number suscptibilities.

ks_spectrum
	Calculation of meson and baryon spectra from a wide variety of
	sources and sinks.  

pure_gauge
	Simulation of the pure gauge theory with the plaquette gauge action.

schroed_cl_inv
        Schroedinger functional computations with improved Wilson
        fermions.

smooth_inst
	Topological charge.

symanzik_sl32
	Pure gauge theory with the symanzik, 1-loop improved action.

Each directory should contain a README file which gives some further
information.

How to build the code:

1. Start with the particular application on a particular machine and
   edit the Makefile according to instructions there.

2. Edit the libraries/Make_vanilla make file as needed.

3. Select a particular make target by consulting the Make_template file
   in the desired applications directory.

4. Sample input and output files are provided for most targets.
   It is a good idea to run the compiled code with the sample input
   file and compare the results with the sample output.

Good luck!

References:

For documentation, see the directory doc.

Please also see the README files in various subdirectories.




milc's People

Contributors

maddyscientist avatar

Stargazers

S1mpleJ avatar

Watchers

Xiao-Yong Jin avatar Evan Berkowitz avatar  avatar Frank Winter avatar Buck Babich avatar Guochun Shi avatar James Cloos avatar Justin Foley avatar Alexei Strelchenko avatar Thorsten Kurth avatar Michael Cheng avatar Konstantin Petrov avatar Oliver Witzel avatar Jan Stephan avatar Bartosz Kostrzewa avatar Carsten Urbach avatar Chris Schroeder avatar Davide Rossetti avatar Gregory Petropoulos avatar  avatar  avatar Dean Howarth avatar  avatar Yuzhi Liu avatar Gustavo Ramirez avatar Alejandro Vaquero avatar  avatar Mathias Wagner avatar  avatar Steven Gottlieb avatar Hannes Vogt avatar James Osborn avatar Enrico Rinaldi avatar Yong-Chull Jang avatar Carleton DeTar avatar  avatar James Simone avatar  avatar Mario avatar Evan Weinberg avatar Chris Winterowd avatar Yoshifumi Nakamura avatar Masanori Yamada avatar Chris Culver avatar Nuno Cardoso avatar Colin Morningstar avatar Jacob Finkenrath avatar Simone Bacchio avatar  avatar  avatar  avatar Juan Fernandez de la Garza avatar

milc's Issues

Script to determine Processes per node (PPN)

Hi,

I am running lattice configurtaion 8x8x8x8x8.chklat and 18x18x18x36.chklat on 6 nodes having max PPN=48. Some of the configurations either hang after warmup iterations are completed or show "not enough factors of 5/7/11/23" etc.

Do you have a script to determine what PPN can be specified for a given lattice configuration and node count?

Thanks,
Amit Ruhela

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.