sites with periodic boundary conditions. For the spin update we partition lattice sites in two sets, the whites and the blacks, laid out in a framed checkerboard pattern in order to update in a completely asynchronous way all the white cells first and then all the black ones (given that the interactions are confined to nearest neighbors). This technique is also know as the Red-Black Gauss-Seidel [@pres92nrinc]. We analyzed equilibrium states of systems ranging from $N=16\times16$ to $N=32768\times 32768$ ($2^{15}\times2^{15} \simeq 1.073\times 10^9$ spins).

The typical simulation protocol is the following. Starting from an initial ordered state ($s_i=1$ $\forall i$) we fix the temperature to $T=T_{min}$ and run $t_{\mathit{tran}}$ to attain equilibrium, then we run $t_{\mathit{max}}$ taking one measure each $\delta t$ steps to perform averages. After that, we keep the last configuration of the system and use it as the initial state for the next temperature, $T=T_{\mathit{min}}+\delta T$. This process is repeated until some maximum temperature $T_{\mathit{max}}$ is reached. We repeat the whole loop for several samples to average over different realizations of the thermal noise. In a similar way we perform equilibrium measurements going from $T_{\mathit{max}}$ to $T_{\mathit{min}}$ starting initially from a completely random state.

GPU: device architecture 