This chapter starts with lattice quantum chromo dynamics, including the basic formulation and discretization. Quantum chromo dynamics (QCD) calculations are needed to understand the distributions of quarks and gluons in protons and neutrons to improve our understanding of how hadronic matter is formed. Many Chroma users never have to write any high-performance code in C++ explicitly, they only need to write input files, which they can do from the comfort of their scripting language. Most users only ever have to deal with Chroma at the top level, and often only through input parameter files, to reap the benefits of the infrastructure. The sites of the lattice are labeled as even or odd depending on whether the sum of their four-dimensional coordinates is even or odd. To address the issue of movement and limited memory, a memory pool-cache was implemented. Data would be allocated into the pool on the device.