Lattice QCD has also been used as a benchmark for high-performance computing, an approach originally developed in the context of the IBM Blue Gene supercomputer. Techniques Monte-Carlo simulations Monte-Carlo is a method to pseudo-randomly sample a large space of variables. The importance sampling technique used to select the gauge configurations in the Monte-Carlo simulation imposes the use of Euclidean time, by a Wick rotation of spacetime. In lattice Monte-Carlo simulations the aim is to calculate correlation functions. This is done by explicitly calculating the action, using field configurations which are chosen according to the distribution function, which depends on the action and the fields. Usually one starts with the gauge bosons part and gauge-fermion interaction part of the action to calculate the gauge configurations, and then uses the simulated gauge configurations to calculate hadronic propagators and correlation functions. Fermions on the lattice Lattice QCD is a way to solve the theory exactly from first principles, without any assumptions, to the desired precision. However, in practice the calculation power is limited, which requires a smart use of the available resources. One needs to choose an action which gives the best physical description of the system, with minimum errors, using the available computational power. The limited computer resources force one to use approximate physical constants which are different from their true physical values: The lattice discretization means approximating continuous and infinite space-time by a finite lattice spacing and size. The smaller the lattice, and the bigger the gap between nodes, the bigger the error. Limited resources commonly force the use of smaller physical lattices and larger lattice spacing than wanted, leading to larger errors than wanted. The quark masses are also approximated. Quark masses are larger than experimentally measured. These have been steadily approaching their physical values, and within the past few years a few collaborations have used nearly physical values to extrapolate down to physical values. In order to compensate for the errors one improves the lattice action in various ways, to minimize mainly finite spacing errors. Lattice perturbation theory In lattice perturbation theory the scattering matrix is expanded in powers of the lattice spacing, a. The results are used primarily to renormalize Lattice QCD Monte-Carlo calculations. In perturbative calculations both the operators of the action and the propagators are calculated on the lattice and expanded in powers of a. When renormalizing a calculation, the coefficients of the expansion need to