The topic of Lattice QCD or Lattice gauge theory or even Lattice field theory is quite old now. And the main reason for the interest in the topic is the ability to calculate nonperturbative stuff on a computer.

It seems that to do research with lattice you need an access to some supercomputer. But now everyone can afford something that is as powerful as supercomputers 20 years ago. Maybe it possible to redo some of the results of that time?

Is there any project that is:

  1. Relatively simple.
  2. Allows to calculate some real-world quantity (like mass of the proton).
  3. Can be done with an average home computer.
  • $\begingroup$ Do you want to program something yourself, and if so, what is your skill level? $\endgroup$ – Gerben May 23 '11 at 11:52
  • $\begingroup$ @Gerben , yes I want to program myself. Preferably from scratch. Assume that I have all the experience needed in numerics, computing, CS, low-level or parallel programming e.t.c. $\endgroup$ – Kostya May 23 '11 at 12:18

While not strictly lattice QCD, Michael Creutz' 30 year old lattice gauge papers have very simple C implementations (!).

For example, look at this paper, which gives a very readable explanation of lattice gauge simulations, with source code:


The source code is also available here:


This compiles and runs out of the box and reproduces the results in the paper. Current papers like the portugese GPU groups' mentioned by Lubos all build on Creutz's 30 year old stuff.

  • 1
    $\begingroup$ Now that is the answer I was waiting for. Thanks a lot for the links. $\endgroup$ – Kostya Feb 15 '12 at 17:40
  • $\begingroup$ I'm late to this, but it is worth noting for those that come later, that this code doesn't include many significant improvements that have been made in the mean time and will scale much more poorly than even moderately up-to-date codes. $\endgroup$ – dmckee --- ex-moderator kitten Aug 6 '15 at 21:35

You don't need a really big computer.

Peter LePage used to do talks where he'd ask the audience fro a "random" number as the beginning of the talk (but not 7, 17, 42, or 69 'cause he'd already done those) and start a simulation on one screen with that number as a seed. Then he'd give a talk on how to speed up LQCD calculations on the other screen while his PII 200 MHz laptop crunched a $b\bar{b}$ state during the talk.

But lets talk about that.

First, heavy flavor is easier to do than anything involving light quarks. Especially $u$ or $d$ quarks. You certainly want to learn this business with a faster problem than the proton mass.

Second, "relatively simple" in LQCD is still pretty complicated. Peter's 45 minute talk was intended to give people who knew roughly what a naive LQCD calculation looked like an idea of how his very clever trick for optimizing the business worked. I also sat through four hours of the same thing at a graduate summer school where he was teaching the technique and I only sort of got it (because it was targeted at students who were doing LQCD).

This is a big project.

  • 1
    $\begingroup$ In the same vein, I'd suggest something more modest than true QCD, like finding the phase diagram of the Higgs sector. Even setting that up properly will take quite some time, and I know for a fact that (when done efficiently) it's not a very expensive calculation. For ideas on how it's done, check out Montvay/Münster (Quantum fields on a lattice), or one of the countless other canonical references of the field. $\endgroup$ – Gerben May 23 '11 at 18:23

You may try to download QCD software for CUDA - using GPU etc. - at


See also


But I don't have any experience and I don't expect the work to be a user-friendly smooth sailing. ;-)

  • $\begingroup$ I don't have any experience with CUDA itself (apart from having read some articles about it), but I wouldn't recommend to start with it; it's a lot more technical, meaning that you need a lot more computer and programming knowledge to do something for yourself, for relatively little benefit to the home user. $\endgroup$ – Gerben May 23 '11 at 11:49
  • $\begingroup$ Yes you should try to find an unoptimized good ol' C-code with suitable documentation.. then post the links here :) $\endgroup$ – BjornW May 23 '11 at 12:14
  • $\begingroup$ Actually I'm perfectly fine with CUDA... $\endgroup$ – Kostya May 23 '11 at 12:19
  • $\begingroup$ Usually, CUDA-optimization is a heavy work by itself, and the CUDA specifications change continually with new GPUs arriving 2 times a year. So one usually has to make the decision on which to concentrate on - the physics or the computer optimization. Cardosos papers linked above concentrate mainly on the implementation details with regards to CUDAfication, and hardly describe anything about the results they extract or the background physics. If you are already an expert at lattice qcd, then it will be fun of course to implement on the GPU:) $\endgroup$ – BjornW May 23 '11 at 12:35
  • $\begingroup$ See also Marco Frasca blog: marcofrasca.wordpress.com/2011/03/29/cuda-upgrading-to-3-tflops $\endgroup$ – Vladimir Kalitvianski May 23 '11 at 13:32

If you don't have much experience with Monte Carlo simulations, you might want to start with simulations of the 2d Ising model, which is a lot less complex than SU(N) Yang-Mills or QCD. Monte Carlo simulation is mostly an art, since we don't usually have rigorous error bounds. You'll learn the art faster if you can reduce the time your simulations take, and 2d Ising model sims are extremely fast. You can do them in Python on a modern laptop in a matter of minutes.

Try tuning the hopping parameter until you see the phase change. See if you can extract critical exponents and check them against the exact solutions.


You could check out pyQCD here: http://www.github.com/mspraggs/pyQCD. It's feature set is not huge and it's still not mature but it can do the basic lattice calculations using quenched configs: propagator calculation and Wilson loops etc.

If you want to get involved with the project you're very welcome (though given you asked two years ago you may no longer be interested).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.