text:
\section{Introduction\label{sec:introduction}}

In spite of a rather substantial concerted research effort extending over more than
three decades, a comprehensive understanding of the theory of the spin-glass state is
still not within reach. Nevertheless, substantial progress has been made since the
suggestion of the Edwards-Anderson Hamiltonian as the standard simplified model of a
spin glass in the 1970s \cite{edwards:75a} and the subsequent formulation of its
highly unusual mean-field theory based on the concept of replica-symmetry breaking
(RSB) \cite{mezard:book}. This concerns, in particular, the nature of the spin-glass
phase itself, for which a number of alternative descriptions have been
proposed. These include a putative continuation of the RSB theory known to be exact
in the mean-field limit to finite-dimensional systems \cite{marinari:00a} as well as
a more conventional picture describing the physics at low temperatures in terms of
droplet excitations similar to those found in ferromagnets
\cite{fisher:86,bray:87a}. In reaction to the conflicting evidence from numerical
calculations, more recently several mixed or intermediate scenarios have been
suggested as well \cite{houdayer:00a,krzakala:00,white:06}. Still, unequivocal
(numerical or analytical) evidence for any of these scenarios could so far not be
produced.

Another, possibly even more fundamental, issue regards the question of the existence
of a spin-glass phase transition for specific spin symmetries and spatial dimensions
and, in particular, the determination of the lower critical dimension $d_l$ of the
spin-glass transition. It has been rather clear since a number of years that the
Edwards-Anderson Ising model undergoes a spin-glass transition in three dimensions
\cite{kawashima:96,ballesteros:00}, but there is no spin-glass phase at non-zero
temperatures in two dimensions \cite{bhatt:88}, such that $2\le d_l < 3$. On the
other hand, it is only recently that a consensus emerges as to the lower critical
dimension for vector spin glasses. A number of large-scale studies has consistently
shown the occurrence of a spin-glass transition at finite, but rather low
temperatures for the {\em XY\/} \cite{pixley:08} and Heisenberg spin glasses
\cite{lee:03a,campos:06,lee:07,viet:09} in three dimensions. Less agreement has been
achieved as to the question of the influence of the symmetry group O($n$), $n>1$, on
the ordering of these continuous-spin systems. Following initial suggestions by
Villain \cite{villain:79a} about the possibility of a decoupling of the Ising like
degrees of freedom embedded according to $\operatorname{O}(n) =
\operatorname{SO}(n)\oplus\mathbb{Z}_n$ in the order parameter, there is an ongoing
debate as to whether two consecutive transitions, corresponding to an ordering of
chiral and spin degrees of freedom, can be observed in these systems
\cite{weigel:05f,pixley:08,lee:03a,campos:06,lee:07,viet:09}.

In the absence of clear-cut field-theoretic and other perturbative approaches for
these systems in the relevant regime $d < d_u = 6$, much of the progress in the field
has relied on the development of new computational techniques and the use of
cutting-edge computing hardware for performing extensive computer simulation
studies. On the algorithmic side, these included the deployment of the replica
exchange or parallel tempering technique \cite{geyer:91,hukushima:96a} as well as,
for continuous-spin glasses, the adaptation of the over-relaxation move
\cite{campos:06} from its original use in lattice field theory. Besides using the
most powerful supercomputers available at each time, the hardware side of this
simulational attack to the problem has repeatedly seen the design and construction of
special-purpose machines, specifically optimized for the type of simulations at
hand. The most recent such enterprise has been the JANUS machine, a special-purpose
computer for the simulation of discrete spin systems (mostly used for spin glasses)
based on field-programmable gate arrays (FPGA) \cite{belleti:09} (see also the review
article of the JANUS collaboration in this issue). While such machines are highly
efficient, the effort for their design and construction is significant. As an
alternative route, one might hence think of using less exotic components that
nevertheless provide a massively parallel computing environment. Such hardware is
given by current-generation graphics processing units (GPUs). In a number of previous
studies, we have investigated the suitability of such devices for the general purpose
of simulating lattice spin models
\cite{weigel:10c,weigel:11,weigel:10b,weigel:10a}. One of the observations gleaned
from this experience is that within this class of applications a near ideal
application for such devices is (a) the study of disordered system due to the
inherent trivial parallelism over disorder realizations and (b) systems with
continuous spins, since these allow to harvest the large floating-point performance
and the benefits of special-function implementations in hardware. The purpose of the
present study is to see whether the 3D Heisenberg spin-glass model lives up to its
name in this respect and a GPU simulation can be performed with outstanding
efficiency.

\section{Model and method \label{sec:model}}

We consider the nearest-neighbor Edwards-Anderson spin glass model in an external,
random magnetic field,
\begin{equation}
  \label{eq:hamiltonian}
  {\cal H} = -\sum_{i,j} J_{ij}\,{\bm s}_i \cdot {\bm s}_j
  - \sum_{i} {\bm H}_i \cdot {\bm s}_i.
\end{equation}
Here, the indices $i$ and $j$ enumerate the sites of a simple (hyper-)cubic lattice
of edge length $L$ and the ${\bm s}_i$ are $m$-component classical vectors of unit
length. For the purpose of the present paper, we assume $m=3$, i.e., Heisenberg spins
and $d=3$ space dimensions, but it should be clear that our code can be adapted to
more general situations with rather modest modifications. One exception to this rule
is the heat-bath update discussed below, which cannot be formulated in closed form
for arbitrary numbers $m$ of spin components. To avoid this problem, however,
alternative techniques such as the fast linear algorithm of Ref.~\cite{loison:04} can
be adapted instead. We further assume nearest-neighbor interactions, which will be
important from the algorithmic point-of-view for the efficient use of the massive
parallelism available from GPUs using domain decompositions. The nearest-neighbor
couplings $J_{ij}$ are quenched, precomputed random variables drawn from a Gaussian
distribution with zero mean and standard deviation unity: $J_{ij}\sim {\cal N} (0,1)$
(generalizations to other nearest-neighbor $J_{ij}$ amounts to their precomputation
according to a different distribution).  Likewise, the on-site magnetic fields ${\bm
  H}_i$ are drawn independently from a uniform distribution on an $m$ dimensional
sphere of fixed radius $|{\bm H}|$. This choice is motivated by the recent work
\cite{sharma:10} suggesting that considering fields with a random {\em direction\/}
(in addition to possibly having a random magnitude) will exhibit a de
Almeida--Thouless line (at least) in the mean-field limit of such models, which is in
contrast to the findings for vector-spin systems in a uniform field that, instead,
exhibit a Gabay--Tolouse line with spin-glass ordering only in the transverse
components.

We study these systems with a combination of algorithms that is currently considered
the best tool-set for the simulation of (continuous) spin glasses (see, e.g.,
Refs.~\cite{campos:06,lee:07,viet:09}). Importance sampling is performed using
heat-bath updates, as these avoid the extra tunable parameter in form of a
spin-reorientation amplitude required for Metropolis updates of continuous spins and
they are also more efficient in terms of reduced autocorrelation times
\cite{loison:04}. The update generates a new spin state ${\bm s}'$ on site $i$
independently of the old state ${\bm s}$ according to the conditional Gibbs
distribution for this spin subject to all other spins in the system fixed:
\begin{equation}
    \label{eq:heat_bath}
    {\bm s}' \sim C e^{\beta {\bm H}_{\rm eff} \cdot {\bm s}},
\end{equation}
where $\beta$ is the inverse temperature, $C$ is a normalization constant and ${\bm
  H}_{\rm eff}=\sum_{j} J_{ij} {\bm s}_j+{\bm H}$ is the local molecular field. The
Cartesian components of ${\bm s}'$ can be explicitly obtained from two random numbers
distributed uniformly between 0 and 1, see, e.g., the discussion in
Ref.~\cite{lee:07}. It has been shown in Ref.~\cite{campos:06} that an additional
precession of the spins around their local, instantaneous molecular fields can help
to significantly speed up the decorrelation in the system. These over-relaxation
moves are microcanonical, i.e., they preserve the total energy, and can be
implemented very efficiently as they do not involve random numbers
\cite{bernaschi:10}. The most efficient implementation and, arguably, the most
efficient decorrelation of the states is achieved by simply {\em reflecting\/} each
spin at its local molecular field,
\begin{equation}
  \label{eq:microcanonical}
  {\bm s}' = 2\, \frac{{\bm s} \cdot
    {\bm H}_{\rm eff}}{{\bm H}_{\rm eff}^2} \, {\bm H}_{\rm eff} - {\bm s}.
\end{equation}
The ratio of the number of over-relaxation to heat-bath updates is an optimization
parameter to be tuned to reach the maximal decorrelation effect per clock cycle.  As
spin-glass systems suffer from notoriously slow dynamics at low temperatures, the
equilibrium of these models can hardly be studied for more than the smallest system
sizes without further, generalized-ensemble techniques for coping with their complex
free-energy landscapes. One efficient approach, that we chose to employ here, is the
parallel tempering or replica exchange method \cite{geyer:91,hukushima:96a}. There,
for every choice of $J_{ij}$ a number $R_T$ of copies of system
(\ref{eq:hamiltonian}) are simulated at a set of different, but close neighboring
temperatures $T_i$. After each copy undergoes a number of local spin updates, for
instance the combination of heat bath and over-relaxation moves discussed above, a
sweep of attempts to swap pairs $i$ and $i+1$ of neighboring configurations with
energies $E_i$ and $E_{i+1}$ at temperatures $T_i$ and $T_{i+1}$ starting from the
lowest temperature $T_1$ is made, and each swap is accepted according to the
Metropolis criterion
\begin{equation}
  \label{eq:parallel_tempering}
  p_{\rm acc}(i \leftrightarrow i+1) = \min\left[1,\,e^{\Delta \beta\Delta E}\right].
\end{equation}
Here, $\Delta E = E_{i+1}-E_{i}$ and $\Delta \beta = 1/T_{i+1}-1/T_{i}$. With an
appropriate choice of temperatures, this update allows for configurations with slow
dynamics at low temperatures to successively diffuse to high temperatures,
decorrelate there and return back to the low-temperature phase, likely arriving in a
different valley of a complex free-energy landscape. The choice of temperatures as
well as the local frequency of swap attempts can be optimized to ensure an optimal
decorrelation effect \cite{katzgraber:06,bittner:08,hasenbusch:10}.

To study spin-glass phase transitions undergone by such systems, due to the severely
restricted system sizes one is able to equilibrate, some effort needs to be invested
in devising well-suited finite-size scaling analyses. One of the most successful
approaches for spin glasses and other disordered systems \cite{ballesteros:98a}
concentrates on the role of the finite-size spin-glass correlation length
$\xi_L$. This is determined from the Edwards-Anderson order parameter,
\begin{equation}
  \label{eq:sg_order_parameter}
  q^{\mu\nu}=\frac{1}{N} \sum_i s_i^{\mu (1)} s_i^{\nu (2)},
\end{equation}
where $\mu,\nu$ are spin components and ``(1)'' and ``(2)'' denote two copies of
model (\ref{eq:hamiltonian}) with identical interactions which are simulated in
parallel. We first consider the case of a vanishing external magnetic field and
define the wave-vector dependent overlap as
\begin{equation}
  q^{\mu\nu}({\bm k}) = {1 \over N} \sum_i s_i^{\mu (1)} s_i^{\nu (2)} e^{i {\bm k} \cdot {\bm R}_i}.
\end{equation}
This leads to the ${\bm k}$-dependent spin glass susceptibility
\begin{equation}
\label{eq:susceptibility}
  \chi_{\rm SG}({\bm k}) = N \sum_{\mu,\nu} [\langle \left|q^{\mu\nu}({\bm k})\right|^2 \rangle ]_J,
\end{equation}
where $\langle \cdots \rangle$ denotes a thermal average and $[\cdots ]_J$ denotes an
average over disorder. The standard second-moment definition of the correlation
length is then given by
\begin{equation}
    \label{eq:xi}
    \xi_L = {1 \over 2 \sin (k_{\rm min}/2)} \left({\chi_{\rm SG}(0) \over \chi_{\rm SG}({\bm k}_{\rm min})} - 1\right)^{1/2}
\end{equation}
with ${\bm k}_{\rm min} = (2\pi/L)(1, 0, 0)$. To allow for a more detailed analysis
of $\chi_{\rm SG}({\bm k})$ \cite{leuzzi:09} we record a small number of additional
modes. For the case of non-vanishing magnetic fields ${\bm H}_i$, one needs to
subtract the disconnected part of the spin-glass correlation function such that
\cite{katzgraber:09}
\begin{equation}
  \chi_{\rm SG}({\bm k}) = \frac{1}{N} \sum_{i,j}\sum_{\mu,\nu} [(\chi_{ij}^{\mu\nu})^2e^{i{\bm k}\cdot ({\bm
      R_i}-{\bm R_j})}]_J,
\end{equation}
where
\[
  \chi_{ij}^{\mu\nu} = \langle s_i^\mu s_j^\nu\rangle-\langle s_i^\mu\rangle \langle s_j^\nu\rangle.
\]
In practice, we estimate $(\chi_{ij}^{\mu\nu})^2$ by simulating in parallel {\em
  four\/} distinct real replicas with the same disorder configuration, using samples
from the time series to compute the averages
\begin{equation}
  \begin{split}
    \chi_1({\bm k}) &= \langle \sum_{i,j} \sum_{\mu,\nu} s_i^{\mu(1)} s_j^{\nu(1)} s_i^{\mu(2)} s_j^{\nu(2)}
    e^{i{\bm k}\cdot ({\bm R_i}-{\bm R_j})} \rangle, \\
    \chi_2({\bm k}) &= \langle \sum_{i,j} \sum_{\mu,\nu} s_i^{\mu(1)} s_j^{\nu(1)} s_i^{\mu(3)} s_j^{\nu(4)}
    e^{i{\bm k}\cdot ({\bm R_i}-{\bm R_j})} \rangle, \\
    \chi_3({\bm k}) &= \langle \sum_{i,j} \sum_{\mu,\nu} s_i^{\mu(1)} s_j^{\nu(2)} s_i^{\mu(3)} s_j^{\nu(4)}
    e^{i{\bm k}\cdot ({\bm R_i}-{\bm R_j})} \rangle, \\
  \end{split}
  \label{eq:four_replica}
\end{equation}
and assembling them at the end of the simulation to yield
\begin{equation}
  \label{eq:four_replica_two}
\chi_{\rm SG}({\bm k}) = \frac{1}{N} [\chi_1({\bm k}) -2\chi_2({\bm k})+\chi_3({\bm k})]_J.
\end{equation}
The correlation length itself is calculated from the same Eq.~\eqref{eq:xi} as for
the zero-field case.

In contrast to ferromagnets, where the symmetry group of the order parameter is
$S^n$, the $n$-dimensional unit sphere, the lack of long-range order in spin glasses
results in a symmetry group of $O(n)$, including proper as well as improper
rotations. Correlations in the embedded reflection degrees of freedom, or
chiralities, are not directly captured by the (spin) correlation length
\eqref{eq:xi}. To examine the possibility of a decoupling of spin and chiral degrees
of freedom, we therefore additionally consider the chiral correlation length which is
sensitive to such correlations. Following Ref.~\cite{olive:86}, we define the local
chirality in terms of three spins on a line as
\begin{equation}
  \kappa_i^\alpha = {\bm s}_{i+\hat{\alpha}} \cdot {\bm s}_i\times {\bm s}_{i-\hat{\alpha}}.
\end{equation}
Here, $\hat{\alpha}$ denotes one of the basis vectors of the lattice's unit cell. In
analogy to the spin degrees of freedom, we then define the chiral overlap,
\begin{equation}
  \label{eq:chiral_overlap}
  q^{\alpha}_c({\bm k}) = {1 \over N} \sum_i  \kappa_i^{\alpha (1)} \kappa_i^{\alpha (2)} e^{i {\bm k} \cdot {\bm R}_i},
\end{equation}
and the corresponding, wave-vector dependent chiral susceptibility for zero magnetic field,
\begin{equation}
  \label{eq:chiral_susceptibility}
  \chi^\alpha_{\rm CG}({\bm k}) = N [\langle \left|q_c^{\alpha}({\bm k})\right|^2 \rangle ].
\end{equation}
This, finally, allows us to define the chiral correlation length as
\begin{equation}
  \label{eq:chiral_correlation_length}
   \xi^\alpha_{c,L} = {1 \over 2 \sin (k_{\rm min}/2)} \left({\chi^\alpha_{\rm CG}(0) \over \chi^\alpha_{\rm CG}({\bm k}_{\rm min})} - 1\right)^{1/2}.
\end{equation}
To the extent it is affected by external fields, the chiral correlation length for
the case of non-vanishing fields can be estimated from four-replica expressions
analogous to Eq.~\eqref{eq:four_replica}. In addition, we consider some more
fundamental quantities such as the internal energy $U_{L}(T)=[\langle {\cal H}
\rangle ]$ and specific heat $C_{L}(T)=1/T^2[\langle {\cal H}^2 \rangle - {\langle
  {\cal H} \rangle}^2]$. Further observables, for instance the spin-glass Binder
cumulants, can also easily be measured additionally with only small computational
overhead, but we will not discuss them here.

\section{Implementation\label{sec:implementation}}

The locality of interactions, the natural prevalence of relatively expensive
floating-point operations such as those required for the heat-bath update, and the
large number of fully or nearly independent systems introduced by the required
average over disorder realizations and the parallel-tempering update, make the
present problem near ideally suited for simulations on the massively parallel
architecture provided by current GPU devices. Building on our previous experience
with simulating spin models on GPU \cite{weigel:10a,weigel:11}, we here concentrate
on a CUDA implementation for NVIDIA devices, although a more general OpenCL
realization would be feasible along rather similar lines. While parallelization over
(nearly) independent system replicas is almost trivial to achieve algorithmically,
the performance on GPU devices is, at least for the problem at hand, strongly
dominated by the efficiency of memory accesses. Hence, significant effort needs to be
devoted to the optimal memory layout of the required data structures, the
minimization of memory accesses, the adherence to the preferred memory access
patterns of the GPU devices (coalescence and avoidance of bank conflicts), and the
efficient use of the intrinsic memory hierarchy of global memory, shared memory and
registers. Technical details about these issues can be found, for instance, in
Refs.~\cite{kirk:10,cuda}. Naturally, the completely independent simulations of
different disorder realizations are easily parallelized also over different GPU
devices, which we indeed use in practice. For simplicity, however, we confine our
discussion in the present article to the description of a single-GPU code.

\subsection{Double checkerboard decomposition \label{sec:double_checkerboard}}

The locality of interactions and spin updates allows us to use a straightforward
domain decomposition. For a bipartite lattice, such as the cubic lattice of model
(\ref{eq:hamiltonian}), the natural way of achieving this is through a (generalized)
checkerboard decomposition: all spins on one of two sub-lattices (referred to, for
instance, as ``even'' and ``odd'') can be updated in parallel without any need for
inter-thread communication. This is illustrated schematically in the left panel of
Fig.~\ref{fig:checker2}. To make efficient use of the aforementioned memory hierarchy
of GPU devices and, in particular, the availability of a small amount (currently up
to 48 kB) of shared memory with access latencies around 100 times less than those for
accessing global memory, this updating scheme is combined with a caching technique
applied to tiles which we have dubbed a {\em double checkerboard decomposition\/}
\cite{weigel:10c,weigel:10a}. There, the spin configuration of one of $B^d$ tiles
(plus a boundary layer) is loaded collaboratively into shared memory and assigned for
updating to a thread block. The threads of the block then update the even tile spins
in parallel, followed by an update of the odd spins. If these tiles are, in turn,
arranged in a checkerboard fashion (leading to the second checkerboard level),
updating of tiles of one of two sub-lattices of tiles can occur in parallel without
any communication overheads. While the use of shared memory leads to a performance
improvement as compared to any non-tiled code for a single system, the tiling turns
out to be most beneficial if {\em several\/} updates are performed on each tile
before proceeding to loading the next tile \cite{weigel:10a}. For the present model,
we perform several rounds of over-relaxation and heat-bath updates for each tile to
ensure an optimal amortization of the tile load overhead.

\begin{figure}[tb]
\centering
\includegraphics[width=0.45\textwidth]{checker2} \hspace*{0.25cm}
\includegraphics[width=0.45\textwidth]{checker-1}
\caption{Left panel: the double checkerboard decomposition applied to a square
  lattice of edge length $L=32$. Here, each of the $B\times B = 4\times 4$ big tiles
  is assigned as a thread block to a multiprocessor, whose individual processors work
  on one of the two sub-lattices of all $T\times T = 8\times 8$ sites of the tile in
  parallel. An analogous procedure is used for the three-dimensional spin-glass model
  considered here. Right panel: A non-linear arrangement of spins in the global
  memory address space can save on global-shared memory transactions.  The bottom
  tile covered with warp-size-long lines cartoonifies the case when memory is
  arranged linearly, and so one needs $2(8+2) = 20$ memory fetches to fetch all spins
  of the tile including halo.  In the upper left tile each long line is converted
  into a $4 \times 4$ memory tile. As a result, one needs only 9 memory fetches.  See
  text for full discussion.  }
\label{fig:checker2}
\end{figure}

\subsection{General code arrangement \label{sec:general_code}}

We first give a general outline of the code and the compute kernels involved before
moving on to discussing some of the used optimizations in more detail in the
following section. From a very abstract point-of-view, our compute model works as
follows: a CPU thread calls one CUDA enabled GPU device for the concurrent simulation
of, say, $R$ copies of the system with Hamiltonian (\ref{eq:hamiltonian}). As we will
show below, this multitude of copies results from the average over disorder plus the
parallel tempering update. Each CPU thread then goes through many identical,
independent and repeatable execution rounds each consisting of three stages. First, a
CPU thread reads from the hard drive initial configurations of spins ${\bm s}$,
interactions $J$ and external magnetic fields ${\bm H}$ that describe $R$ systems, as
well as states of random number generators (RNG) and temperature points $T$ for
parallel tempering. Second, the CPU thread moves the arrays to the global memory of
the GPU device and controls execution of GPU kernels that are responsible for the
generation of new spin configurations as well as measurements of the relevant
quantities. Third, the CPU thread moves final spin configurations and states of RNG
back to the host's hard drive. The final spin configurations and RNG states are now
ready to be used as inputs for the next execution round. Moreover, breaking the
simulation into the independent runs described above permits to run, after each
round, a statistical analysis of the accrued time series and schedule for simulation
only those configurations that have not achieved convergence, as well as adjust
temperature points, if the round belongs to the equilibration stage.  Additionally,
such modularity permits a complete control over execution disruptions.

The number $R$ of copies simulated in parallel consists of $R_D$ realizations of the
disorder in the couplings and fields, times $R_O=2$ copies for each system required
to calculate the overlaps of Eqs.~\eqref{eq:sg_order_parameter},
\eqref{eq:chiral_overlap}, each of which again is multiplied by $R_T$ replicas at
different temperatures used for parallel tempering. We, therefore, represent the
system copies as a three-dimensional array of $R = R_T R_O R_D$ elements labeled by
an index\footnote{Note that we implement all multidimensional arrays flattened to
  one-dimensional C style arrays.} ${\bm r}=(r_T,r_O,r_D)$. As $R$ copies are
simulated independently, choosing a particular order of indices in ${\bm r}$ is not
crucial. However, for the parallel tempering kernel (see below) it is beneficial to
have the index $r_T$ changing slowest among the three in the energy array. The memory
organization of the data associated to an individual replica is as follows: the spin
configuration consists of $mN$ single-precision floats labeled by a four-dimensional
index ${\bm i}=(\mu,{\bm x})$, where $\mu$ spans $m=3$ spin components and ${\bm
  x}=(z,y,x)$ is the $d=3$ dimensional space index changing first, in analogy to
representing digits in a base-system number representation.  In order to benefit from
the double checkerboard decomposition, it is however convenient to think of each
system as consisting of subsystems each represented by a tile.  In this case, we
consider the index ${\bm x}$ as consisting of two sub-indices, ${\bm x}=({\bm X},
{\bm {\xi}})$, with ${\bm X}$ enumerating tiles and ${\bm \xi}$ enumerating spins
within each tile.  Hence, the spin configuration associated to a replica is organized
in a $10=3+7$-dimensional array with index $i\equiv ({\bm r},{\bm i})\equiv({\bm
  r},\mu,{\bm X},{\bm \xi})$. Similarly, the couplings and random fields require each
8-dimensional indices.

The updating of spins is performed entirely on GPU. A first kernel, doing the {\em
  local updating\/} performs the heat-bath and over-relaxation moves. It utilizes the
double-checkerboard decomposition discussed above. If a checkerboard with $B^d$
coarse tiles is chosen, we launch $B^d/2$ thread blocks per replica working on all
the tiles of one sub-lattice in parallel. On each tile, we perform $n_M$
microcanonical over-relaxation sweeps and $n_B$ heat bath sweeps; we typically take
$n_M=10$ and $n_B=1$ \cite{lee:07}. Looping over sub-lattices, we update the whole
lattice $n_T$ times, after which we attempt a parallel tempering move, with,
typically, $n_T=1$. A second kernel performs the {\em parallel tempering update\/}. A
thread in a block of this kernel performs all necessary temperature exchanges for a
given disorder realization $r_D$ and a given overlap index $r_O$. Such calculations
are independent and $R_D R_O$ threads necessary for all temperature exchanges can be
distributed among blocks rather arbitrarily. The energies required for
Eq.~\eqref{eq:parallel_tempering} are reconstructed in the parallel-tempering kernel
from energy increments recorded continuously in the course of the heat-bath
updates. After the replica exchange has been performed $n_A$ times, the quantities of
interest, such as the current energy and the susceptibilities $\chi_{\rm SG}({\bm
  k})$ and $\chi^\alpha_{\rm CG}({\bm k})$ are calculated.  For instance, to obtain
the ${\bm k}$-dependent spin glass susceptibility, Eq.~(\ref{eq:susceptibility}),
entries of the time series of $\chi_1$, $\chi_2$, $\chi_3$ of
Eq.~\eqref{eq:four_replica} are generated for the $R$ copies simulated concurrently
and immediately copied to host memory. Since measurements are performed relatively
rarely, the overhead of such memory transfers is not an issue here. One complete
round of the Monte Carlo simulation is finished as soon as a time series of length
$T_{\rm prod}$ for each physical quantity has been accrued. In total, the Monte Carlo
procedure on GPU thus looks as follows:
\begin{enumerate}
\item \label{alg:1} The {\it local updating} kernel is launched with $B^2/2 \times
  R$ thread blocks assigned to treat the {\it even} tiles of the coarse
  checkerboard in each of $R$ systems.
\item \label{alg:2}
The $T^2/2$ threads of each thread block cooperatively load into shared memory the
configuration of spins ${\bm s}$, couplings $J$ and external magnetic fields ${\bm H}$ of their tile,
plus a boundary layer (referred to as the ``halo'' below).
\item \label{alg:3}
The threads of each block perform an over-relaxation update of each {\it even}
lattice site in their tile in parallel.
\item \label{alg:4}
All threads of a block wait for the others to finish at a barrier synchronization point.
\item \label{alg:5}
The threads of each block perform an over-relaxation update of each {\it odd}
lattice site in their tile in parallel.
\item \label{alg:6}
The threads of each block are again synchronized.
\item \label{alg:61}
Steps \ref{alg:2}--\ref{alg:6} are repeated $n_M$ times.
\item \label{alg:7}
Steps \ref{alg:2}--\ref{alg:6} are repeated $n_B$ times, with
over-relaxation updates replaced by heat-bath updates.
\item \label{alg:8}
A second {\it local updating} kernel is launched, repeating steps
\ref{alg:1}--\ref{alg:7} on the {\it odd} tiles of the coarse checkerboard
of $R$ systems.
\item \label{alg:9}
Steps \ref{alg:1}--\ref{alg:8} are repeated $n_T$ times.
\item \label{alg:10}
A {\it parallel tempering} kernel is executed permuting temperatures on $R$ systems.
\item \label{alg:11}
Steps \ref{alg:1}--\ref{alg:10} are repeated $n_A$ times.
\item \label{alg:12}
{\it Analysis kernels} are launched to calculate physical quantities of interest.
\item \label{alg:13} Steps \ref{alg:1}--\ref{alg:12} are repeated $T_{\rm prod}$
  times, and can be preceded by $T_{\rm equi}$ steps for equilibration without
  launching {\it analysis kernels} in step \ref{alg:12}.
\end{enumerate}
We note that $n_M$, $n_B$, $n_T$, $n_A$ and $R_T$ can be considered as optimization
parameters, minimizing autocorrelation times of physical quantities of interest in
units of $t_{\rm update}$, while $T_{\rm prod}$ can be chosen to make $t_{\rm run}$
of the order of hours, see Table \ref{tab:speed-up} and the accompanying discussion
for a definition of $t_{\rm run}$ and $t_{\rm update}$.

Random numbers are required for performing the heat-bath update. For the purpose of
the benchmark runs reported below, we used the multiply-with-carry generator first
implemented on GPU in Ref.~\cite{alerstam:08}. While the statistical quality of the
thus generated sequences is not outstanding, it is presumably sufficient for the
purpose at hand, in particular since the quenched couplings and fields are generated
off-GPU with the help of another, high-quality RNG. Since the proportion of the total
run-time consumed by random-number production is small compared to the remaining
arithmetic, in particular since the over-relaxation moves employed generously do not
consume random numbers, we are planning to replace the multiply-with-carry algorithm
with another generator of higher quality, see also the review on random-number
generators on GPU in this issue \cite{manssen:12}.

\subsection{Memory optimizations}

In the described algorithm $R_T R_O$ out of $R$ systems are simulated with the same
realizations of couplings $J$ and external magnetic fields ${\bm H}$. To avoid
unnecessary transfers between global and shared memory, we assign to each block a
number $R_{\overline{TO}}\geq 1$ of different systems that are sequentially simulated
with the same configuration of $J$ and ${\bm H}$.  In this case, in the algorithmic
steps \ref{alg:1} and \ref{alg:8} above, only $(B^2/2 \times R)/R_{\overline{TO}}$
blocks are scheduled for execution, while steps \ref{alg:2}--\ref{alg:7} are
sequentially repeated on $R_{\overline{TO}}$ systems with different ${\bm s}$ but the
same $J$ and ${\bm H}$, allowing for loading the latter only once.  We note that
$R_{\overline{TO}}$ can be deemed yet another optimization parameter.

The highest bandwidth of memory transactions between global and shared memory is
achieved for coalesced memory fetches \cite{kirk:10}, i.e., accesses conforming to
certain pre-described patterns. More precisely, global memory loads and stores by
threads of a warp can be coalesced by the device into one memory transaction,
provided that all 32 threads of a warp access 4-byte words (floats) located in the
same 128-bit aligned memory segment\footnote{This is for devices of compute
  capability 2.x which we have used here.}. To organize cooperative loading of each
tile along with its halo into shared memory in a fashion to ensure coalescence
wherever possible, a non-linear storage of arrays for ${\bm s}$, $J$ and ${\bm H}$ in
the address space of global memory might be beneficial. Specifically, a much higher
ratio of coalesced to non-coalesced memory transactions can be achieved by suitably
positioning tiles on the lattice and by adding additional granularity to the
spin-enumerating index ${\bm r}$, in each out of $R$ lattices. This is illustrated
in the right panel of Fig.~\ref{fig:checker2} for a square lattice. For simplicity,
we assume here that the state of each spin only occupies a single 32-bit word. Also,
for the sake of argument, assume that the warp size is 16 and the tile size is $16
\times 16$.  If the floats for $s_i$ are stored sequentially in global memory and
tiles are aligned to the edges of the lattice, fetching every tile {\it plus} its
halo amounts to 20 memory transactions. This is the case for the lower tile in the
right panel of Fig.~\ref{fig:checker2}, where linearly aligned warp-length addresses
are shown with long red lines.  Note that fetching just one float for the left halo
is as time consuming as fetching all 16 floats would have been.  Contrary to that, if
one stores floats in a non-linear fashion, for example, in the form of $4\times 4$
{\it memory tiles} and if one misaligns the lattice tile, fetching every such tile
{\it plus} its halo amounts to merely 9 memory transactions as shown for the upper
left tile. There, floats are aligned in a sequential manner first within small {\it
  memory tiles}, such that each square consisting of four red lines of length four
represents sequential addresses, and then the memory tiles are themselves positioned
sequentially.  In addition, the lattice tile is shifted by $1$ both in $x$ and $y$
directions.  Note, that floats in every memory transaction, represented by a memory
tile, are now used more economically. The same type of argument can be made for the
three-dimensional lattices and $m$ floats per spin for the model actually under
consideration.

After loading the tile into shared memory we intend to perform several sweeps over
the whole tile, see the algorithm above. Updating each spin requires calculation of
the local magnetic field vector ${\bm H}_{\rm eff}=\sum_{j} J_{ij} {\bm s}_j+{\bm
  H}$, and thus accessing neighboring interactions and states of neighboring spins.
This can be done most efficiently by using the shared memory address space in a {\it
  linear} fashion, unlike in the global memory.  This means that while introducing
global memory tiles saves on memory transactions to shared memory, it entails an
overhead for additional index operations to restore a non-tiled layout in shared
memory. To capture the interplay between these two opposite effects we consider both
lattice tile sizes and memory tile sizes as optimization parameters.  We avoid shared
bank conflicts by padding, which reduces the percentage of conflicts down to a few
percent of the accesses.

Another optimization saving on memory bandwidth results from packing the state $(s_z,
s_y, s_x)$ of each spin into two numbers. An obvious choice would be exploiting ${\bm
  s}=1$ to use polar angles $\theta$, $\phi$.  Here, instead, we decided to store for
each spin the two numbers $s_y$ and $s_x+\Delta\,\operatorname{sign}(s_z)$, where we
chose the arbitrary offset $\Delta=4$. Restoration of the three Euclidean spin
components is then performed in shared memory with the help of only one (costly)
transcendental function.

We have also attempted an alternative arrangement of the code that does not rely on
the double-checkerboard decomposition with its heavy use of shared memory, but on a
direct fetch of data for ${\bm s}$, $J$, ${\bm H}$ from global memory to registers
(see also Ref.~\cite{bernaschi:10}). In this setup, the spin index $i$ naturally
decomposes as $i\equiv(\mu,\sigma,{\bm X},{\bm r})$, where $\sigma$ and ${\bm X}$
enumerate the two sub-lattices and $2\times 2$ tile ``super-cells'' of the cubic
lattice, correspondingly, and ${\bm r}$ changes first. The need to simulate a large
number $R$ of systems ensures coalescence of global-register fetches in such a
``vertical'' arrangement of data in global memory. This results in somewhat simpler
code, but also comes with a number of drawbacks, namely (i) the need to fetch 30
floats for every spin update (the spin, 6 neighboring spins, 6 couplings, 1 magnetic
field), or 22 floats in the packed implementation, (ii) the impossibility to recycle
$J$ and ${\bm H}$, and (iii) that $R_D$ families of systems with different disorder
realization cannot be easily considered separately (which might be necessary if one
wants to run certain realizations longer than others). We therefore abandoned this
type of code in favor of the code layout discussed above.

Apart from the {\it local updating kernel}, which is responsible for the bulk of the
GPU time, we set up a {\it parallel tempering kernel}, where each of a total of $R_D
R_O$ threads is assigned to permute temperatures in all $R_T$ systems with the same
$J$. To ensure coalescence, the matrices keeping track of permutation indices, as
well as temperature and energy arrays are stored in global memory with the
temperature index changing slowest. The division of the $R_O R_D$ threads into
thread blocks is arbitrary as they are independent, and is dictated solely by time
efficiency. In the {\it analysis kernel} for the calculation of $\chi_{\rm SG}({\bm
  k})$ and $\chi^\alpha_{\rm CG}({\bm k})$, every block of threads works on $R_O$
complete systems, by sequentially loading into shared memory and processing tiles of
spins (of not necessarily the same size as the ones used in the {\it local updating
  kernel}) to cover their entire lattices, while different blocks are scheduled $R_T
R_D$ times.  The arithmetic load of each thread block to process each tile for
several values of ${\bm k}$ and for all combinations of the spin components $\mu$,
$\nu$, see Eq.~\eqref{eq:susceptibility}, is high (even disregarding the calculation
of the sines and cosines involved), making this kernel compute bound and thus
unlikely to benefit from other mappings onto the grid-and-block execution model of
the GPU. Since measurements occur relatively infrequently, however, the impact of
this kernel on the total execution time is small.

\section{Benchmarks and testing}

It remains to confirm that the chosen implementation, in particular regarding the
mixed-precision computations with spins being represented in single precision and
aggregate quantities such as measured correlation functions in double precision, is
correct and provides results in agreement with reference CPU implementations. To this
end, we compared our GPU runs to our own CPU implementation and found statistical
consistency of the results of our final implementations.

\begin{figure}[tb]
  \centering
  \includegraphics[width=0.8\textwidth]{q2ofk}
  \caption{ The spin-glass correlation length $\xi_L$, Eq.~(\ref{eq:xi}), divided by
    system size $L$ as a function of temperature for $L=4$ and $8$. Our results
    reproduce those of Ref.~\cite{lee:07} well. The simulation parameters were chosen
    as $R_T=32$ ($L=8$) and $R_T=16$ ($L=4$), $R_O=2$, $T_1=0.1$, $T_{R_T}=0.6$,
    $n_A=10$, $n_T=1$, $n_M=10$, and $n_B=1$. For each disorder realization, a time
    series of length $T_{\rm prod}=2\times 10^4$ was collected, after discarding the
    initial $T_{\rm equi}=8\times 10^4$ records to allow for equilibration. $R_D=256$
    disorder realizations were studied.  }
  \label{fig:ksi}
\end{figure}

To completely convince ourselves of the correct implementation of our codes, we also
compared parts of the final results to some of the published data on the Heisenberg
spin glass. In particular, Fig.~\ref{fig:ksi} shows our estimates for the finite-size
spin-glass correlation length for system sizes $L=4$ and $L=8$ as a function of
temperature, compared to the corresponding data gleaned from Lee and Young
\cite{lee:07} for the case of zero random field. This comparison serves as an
important check as to the sufficiency of the mixed-precision ansatz for the intended
simulations.

To assess the quality of the implementation, we performed a series of benchmark runs,
comparing the GPU implementation against our CPU based reference. The results are
summarized in Table \ref{tab:speed-up}, featuring average times per spin update for
an $L=32$ system, which is realistic for the (larger of the) system sizes to be
considered in production runs. The speed-ups for larger systems are similar to and
the speedups for smaller systems somewhat smaller than those reported in Table
\ref{tab:speed-up}.  The benchmark runs were performed on the GTX 480 Fermi card,
equipped with 15 streaming multiprocessors of 32 cores each at a processor clock of
1.4 GHz; as a reference CPU, an Intel Core 2 Quad Q9650 at 3.0 GHz was used. Against
the serial code, overall speed-ups of up to a remarkable factor of 150 are
observed. Here, if the whole simulation of $R$ systems took physical time $t_{\rm
  run}$ in seconds on the device, Table \ref{tab:speed-up} quotes $t_{\rm
  update}=t_{\rm run}/[(n_M+n_B)n_T\,R\,N]$ as the time of one spin update. As a
typical mixing rate \cite{lee:07}, we considered the case of one heat-bath and ten
over-relaxation moves per sweep, resulting in an average time of 0.45 ns per update
--- which is brought into perspective comparing to the 0.50 ns for a pure Metropolis
update of a 2D Heisenberg ferromagnet reported in Ref.~\cite{weigel:10a}.

As mentioned above, one additional optimization is possible on using the fast
intrinsic special-function implementations provided on GPU. While this has no effect
on the over-relaxation moves not involving special-function calls, cf.\
Eq.~\eqref{eq:microcanonical}, the heat-bath update significantly profits from
activating this feature, cf.\ the data for ``float, fast\_math'' in Table
\ref{tab:speed-up}. Importantly, we did not observe any systematic deviations of the
final results on activating the fast, but reduced precision intrinsics. The
differences coming from packing the state $(s_z,s_y, s_x)$ into two numbers are found
to be insignificant.

In terms of parameter optimization, using the double checkerboard decomposition and
the multiply-with-carry random number generator \cite{alerstam:08}, close-to-optimal
running times of the {\it local updating kernel} are obtained for shared memory tile
sizes $8\times8\times8$ with padding, memory tile sizes $2\times2\times2$, see
Fig.~\ref{fig:checker2}, and recycling of $J$ and ${\bm H}$ at
$R_{\overline{TO}}\geq8$, see sec.~\ref{sec:implementation}. For the chosen
implementation, there is obviously a rather vast space of optimization parameters
which would be very time consuming to scan systematically. Even more, for a realistic
and fair comparison, one would require to compare all options in terms of times to
generate uncorrelated events. These can differ between the considered variants, in
particular for situations with multi-hit updates on tiles, which nominally yield
larger speed-ups (cf.\ the last two lines in Table \ref{tab:speed-up}), but will also
result in somewhat increased autocorrelation times \cite{weigel:10a}. A more complete
scan of the space of optimization parameters will be discussed elsewhere.

\begin{table}
\centering
\caption{
  Times per spin update in ns for different variants of our GPU implementation as
  compared to the CPU reference code. ``HB'' is a heat-bath update, ``OR'' refers to
  an over-relaxation move. The variants with ``fast\_math'' refer to the case of
  using the fast intrinsic special-function implementations.
  The data were generated running $R=256$ systems of size  $L = 32$. For these benchmark
  runs, we chose temperature $T=100$ to avoid any dependence on the disorder
  realization, but we checked that the results at more realistic temperatures are
  virtually identical. Note that all times are per single spin update, irrespective
  of whether it is a heat-bath or over-relaxation move.
  On CPU, execution times behave linearly; for instance,
  1 HB + 10 OR take $61\approx(242+10 \times 43)/11$ ns.
}
\begin{tabular}{l*{6}{l}}
\hline
\multicolumn{1}{c}{device} & \multicolumn{1}{c}{mode} &
\multicolumn{1}{c}{update} &
\multicolumn{1}{c}{$t_\mathrm{update}$ [ns]} & \multicolumn{1}{c}{speedup}
\\ \hline
			& double		&  1 HB			& 242			& 1		\\
Intel Q9650	        & double		&  1 OR		& 43				& 1		\\
			& double		&  1 HB	+ 10 OR	& 61                      	& 1		\\ \hline
	     		& float                 &  1 HB			& 2.23                          & 108	\\
	     		& float, fast\_math   	&  1 HB			& 1.58                          & 153 	\\
     		        & float               	&  1 OR		& 1.30                          & 33	\\
     	   	        & float, fast\_math    	&  1 OR		& 1.30			        & 33    \\
GTX 480			& float                	&  1 HB + 10 OR	& 0.45		                & 136	\\
			& float, fast\_math    	&  1 HB + 10 OR	& 0.39		                & 156	\\
			& float                	&  1 HB + 100 OR& 0.29		                & 155	\\
			& float 	        &  10 $\times$ (1 HB + 10 OR)	&  0.36	        & 169	\\
			& float, fast\_math	&  10 $\times$ (1 HB + 10 OR)	&  0.31	        & 197	\\ \hline
\end{tabular}
\label{tab:speed-up}
\end{table}

One direction in the multidimensional optimization space deserves special attention,
as it is related to the algorithmic aspect of simulations. This is a suitable choice
of the number, $R_T$ and position, $T_i$, of temperature points in a fixed
temperature interval used for the parallel tempering moves
\cite{katzgraber:06,bittner:08,hasenbusch:10}. We checked earlier observations
\cite{lee:07} that choosing $T_i$ in a geometric manner: $T_i=T_1 f^{i-1},
f=(T_{R_T}/T_1)^{1/(R_T-1)}$, in contrast to a linear spacing of $T_i$, is crucial
for allowing configurations with slow dynamics at low temperatures to successively
diffuse to high temperatures, and decorrelate.  In Fig.~\ref{fig:T2C-C2T} we show the
probability $p_{\rm diff}$ that, after a parallel tempering update, a copy of the
system at $T_i$ will diffuse to neighboring temperatures.  It is clear that the
linear choice of $T_i$ is inefficient in that it disfavors the most important
exchanges at low $T_i$. On the contrary, a geometric choice of $T_i$ results in
simulated copies of the system successfully undergoing a random walk in the whole
temperature interval, traveling a closed loop between $T_{1}$ and $T_{R_T}$ for
$N_{\rm tunn}\approx 3$ times on average during the production run of length $2\times
10^4$ sweeps, see the inset in Fig.~\ref{fig:T2C-C2T}. For the linear temperature
protocol, essentially no tunneling events are observed.

\begin{figure}[tb]
  \centering
  \includegraphics[width=0.8\textwidth]{T2C-C2T}

  \caption{ Probability $p_{\rm diff}$, averaged over disorder realizations, that a
    spin configuration at a given temperature $T$ diffuses to neighboring $T$ with
    the parallel tempering exchange algorithm for an arithmetic and a geometric
    sequence of temperature points $T_i$.  Inset: distribution of the number of
    tunneling events over $R = 2^{14} = 16\,384$ systems studied.  A tunneling
    event occurs when a replica travels a closed loop between the temperature end
    points $T_{1}$ and $T_{R_T}$.  The presented data are for system size $L=8$ and
    ${\bm H=0}$ in Eq.~(\ref{eq:hamiltonian}). Simulation parameters are as in
    Fig.~\ref{fig:ksi}, but with $n_A=1$.
 }
  \label{fig:T2C-C2T}
\end{figure}

\section{Conclusions}

Spin-glass simulations are extremely CPU hungry applications. In the present paper,
we have shown that graphics processing units (GPUs) are an interesting alternative to
conventional computer clusters and special-purpose computers for the specific problem
of simulating short-range spin glasses with continuous spins. Carefully crafting the
code to reduce memory bandwidth consumption, bank conflicts and communication
overheads, and to increase concurrency, coalescence, and device load it is possible
to achieve speed-ups against serial CPU code of around 150 for this problem. While
these results are encouraging, it is still worthwhile to point out that some of the
details of the implementation are rather intricate. One example of this is our
observation of systematic drifts in energy in the energy-conserving microcanonical
moves if the fusion of multiplications and additions by the compiler is not
explicitly prevented.

One of the advantages of the chosen code layout is that the total run-times for
individual disorder realizations can be chosen independent of each other, thus
allowing to accommodate the fat-tailed distribution in ``hardness'' of disorder
realizations to be expected from spin-glass systems
\cite{moreno:03,bittner:06,weigel:06b}. This flexibility will be essential for
performing more extensive simulations of the problem considered here, which will also
put to test the reliability of the new compute model in a large-scale application.

\section*{Acknowledgments}

The authors thank E.\ Sch\"omer for his contributions at an early stage of the
project, as well as H.\ Katzgraber for enlightening discussions. The authors
acknowledge support by the ``Center for Computational Sciences in Mainz'' (SRFN),
computer time provided by NIC J\"ulich under grant No.\ hmz18 and funding by the DFG
under contract No.\ WE4425/1-1 (Emmy Noether Programme).

redpajama_set_name: RedPajamaArXiv


So I have a little announcement.
Two years ago, I sat on this couch watching a throng of women with cute shoes and sweet smiles walk by and I had no idea what I was doing. I had just started my blog. I had just pulled together the rough outline of a book idea. And I had just received the all-clear from my surgeon that my carotid artery rupture repair was successful.
Still in recovery-mode, I wasn't sure how I would keep up the pace of the busy weekend, but incurable genetic things tend to change your perspective on what's possible. So when my girl Kristen over at Right Hand Work asked if I wanted to attend the 2016 She Speaks Conference for Christian writers and speakers together, I said LET'S GO. Bucket-List Living, here we come. And there I sat on the couch wondering how I could simultaneously feel like I was so grossly inadequate but also exactly where I needed to be.
When we have no idea what we are doing, we've got two choices: we can turn around and go back to what's comfortable and safe or we can dive into the unknown and trust God to show us the next step. I've been taking one baby step after another since that afternoon on the couch. The blog has more than a few posts on it now. The book idea turned into a self-published Bible study. And I've met some of the most amazing women trying to do one simple thing: trust God to show them the next step.
I am thrilled to tell you that I've signed a publishing contract with Abingdon Press for my second Bible study! Determined: Living Like Jesus in Every Moment, a six-week study of Luke, will be published in April 2019.
There are a lot of things I can't do anymore because of Vascular EDS, but I can still write and speak and share my love of God's Word and tell of His goodness. Sometimes His goodness means leading us into the unknown to take us where we were meant to be all along.
Stay tuned for more info on the Determined Study coming soon!
Who said anything about safe? Course he isn't safe. But he's good. He's the King, I tell you.
PS – fellow writers and speakers, Kristen and I will be at She Speaks again this summer and I can't wait to hug your neck! Are you going? Let me know in the comments!


Steven Walker - " I didn't come from a family of artists, I wasn't top of my class or win a lot of awards but I've always had a strong work ethic and the passion to work on my craft." Born in Myrtle Beach, South Carolina and raised in Richmond, Virginia he discovered his love for art at a very early age. With little interest in anything else, Steven took the next big step towards his pursuit of a career in art when he earned his bachelor's degree in fine arts at Virginia Commonwealth University. He would later earn his masters in fine arts from Marywood University, where he also met his wife/ fellow artist Evelyn. Instant success was not in the cards as Steven continued showing at a string of coffee shops, libraries and other businesses.Eventually his hard work paid off with a few local awards that soon caught the attention of two gallery owners. Since his venture into gallery life, his landscapes have been well received by collectors as his paintings are part of several private collections such as Airstream Inc., Hilton Hotels, the Boy Scouts of America, Dominion Resources, Virginia State Department, the National Parks Service, the Columbus Convention Center and the United States Air Force. Since going full time as an artist in 2008, Steven has been included in several local and national juried competitions including the Richeson 75 Landscape Competition, Plein Air Salon, the International Salon Competition, the Oil Painters of America Salon and the Art Renewal Center. Steven also had the privilege of being a part of a statewide traveling exhibition with the Virginia Museum of Fine Arts. He has participated in several artist in residency programs in Michigan, Indiana, Iowa and Colorado. In 2014, he was selected to create the Ohio Governor's Art Awards by the Ohio Arts Council and in 2015 he received honorable mention in the Southwest Art Magazine's Artistic Excellence Competition. Steven currently resides in Hahira, Georgia where he continues to work hard on the advancement of his career, with the assistance of his lovely wife Evelyn and studio assistant/daughter Poppy. Currently, his work is represented in Kentucky, Ohio, Georgia, North Carolina, Virginia, Oklahoma and Washington, D.C.


Distance paramedical college providing best distance education in paramedical courses and Distance learning paramedical courses in Kerala | Coimbatore | Karnataka | Tamilnadu.We are providing distance education in diploma, UG, PG degrees in all medical courses.
We are expertise in various fields includes Web design and development, Graphic Design, Mobile Application development, Software Development, Training and Placement.
Get to Know how to pass your IT exam with latest updated dumps, pratice tests and study guides by cert4prep.
Washington University of Barbados, School of Medicine is one among the top medical universities of caribbean islands. This medical school in Barbados offers the best quality education in the caribbean without MCAT. Washington University of Barbados, School of Medicine situated in the beautiful sovereign Island country of Barbados, is one of the most reputed group of Elite medical schools in the Caribbean serving students all over the globe in the field of medicine and clinical research.
Neuropharmacology Congress 2017 is an international platform for sharing knowledge and representing work in the field of neuropharmacology, neurochemistry, pharmacology, psychopharmacology, neurotoxicology. We invite you all to join us.
Superachievers is a premier institution for global English language tests like PTE. Voucher for PTE exam can be refunded as well. Guidelines are available there and students can read the whole procedure online. So, get your voucher now.
Sree Vidyanikethan Educational Society (SVES) provide scholarships and other financial support for educational institutions in the nation of South India.
Minerva Academy of Higher Education have been making the dreams of many to be graduate a reality with its distance educational programs . The way these distance education programs are layered makes one feel at ease while overcome his/her difficulties. We have been providing programs for more than 1000 students each year. We are one of the leading providers of distance education courses for the people of Tamilnadu and its surronding districts.
Prosper Overseas With our footing as strong and deep as a decade in the overseas education industry, we're still the same committed set of individuals striving for excellence in recruiting students to overseas universities, if not increasing. We boast in the self evolved pride of being associated with more than 600 universities round the world, where our students are scaling new heights and conquering pinnacle positions. Our agenda is to propagate overseas education by rigorously promoting the concept by conducting overseas education awareness seminars, spot admissions in collaboration with numerous universities, all round personality development workshops, and also career related programs to educate and empower the students to let them unveil the hidden potential in them.
Best Software training Institute, Provides Oracle Training with placement, PHP Training with Placement, IOS Training with placement, dot net training with placement, Software Testing Training with placement, manual testing training with placement, HTML Training, Java Training with placement, Selenium testing training with placement, angular js training with placement, BI Training with placement, Android training institute with placement, hadoop training institute with placement, network training with placement.
Education Guidance is a leading Admission Consultants in Delhi to facilitate direct admissions in MBA, Medical, Engineering, Management Colleges all over the country.
Vocational Services is one of the Best Admission Consultants in Delhi Ncr & Provides Career Counselling, Admissions in Top Medical, Btech & MBA Colleges & Universities in India & Abroad.
DMT Class is a Corporate Institute providing Digital Marketing Course in Delhi & Classroom Practical Training for 100% Placements.
Admission Tracks is the best Admission consultants in Delhi for career counselling & admission assistance. We help students in admission in Top Colleges in India in Engineering, Management & Medical.
At a time when the technology has advanced, there is no meaning in depending on the conventional tools for communication. Online communication has already proven to be more effective and cheaper. Many schools and colleges are using online communication tools for teachers and students to communicate properly.
Best CCNA training in Noida delivered by rexton it solutions with training and live-projects . The best CCNA training institute in Noida with 100% placement.
IIP Academy is a leading Website Designing, PHP, Android, iPhone, SEO, Java, C, C++ Training Institute in Jodhpur. Here we provide training on HTML5, Css3, PHP MySQL, WordPress, Magento, Android, iPhone, Cake PHP, SEO, java etc. Most essential part of our training is that our student works on live project so that they get professional environment of learning.


text:
Friend at Hand, Little North Street
On 8 November 1792, with the LCS around six months old, three new divisions were set up, including division 19, which had splintered from division 6. The new division first met on 26 November 1792, at the Friend at Hand on Little North Street in Knightsbridge with John Richter elected as the delegate to the General Committee (Thale 26n; BL Add MSS 27812, for 24-4v). On 30 October 1794, at the trial of Thomas Hardy, evidence was given that 6 members were present at the first meeting of the division (ST vol. 24 col. 574).
The Friend at Hand has proven stubborn to identify, in part because in the late eighteenth century Knightsbridge remained a relatively small village outside of London between Chelsea and Kensington. Finding a reliable contemporary map has proven a challenge, it was not, for example, sufficiently large to merit inclusion on Horwood's Map of 1792-9, which only made it as far west as Kensington. Nor have I been able to find any records of a "Little North Street" in Knightsbridge, though there was a North Street (now Basil Street), which presumably was connected with Little North Street. Things are further confused by the fact that the house was at the junction of North Street, Queen Street, and Elizabeth Street, all of which have changed their names at least once, and the address is variously given as being on one of these streets, with very little consistency of address. The confusion is compounded by the fact that "Knightsbridge" did not designate a district so much as a street name until the twentieth century, earlier it was more properly considered a part of Brompton.
Greenwood Map of 1830
A classified ad for the lease for the Friend at Hand appeared in the Morning Post and Daily Advertiser on 15 September 1791. The listing describes a "well established public house" with a "house adjoining," and describes its location as "desirably situate the corner of North and Queen-Street, near Sloane Square." The estate was sold by auction by Mr. Christie, who had established his auction rooms thirty years earlier in the 1760s, and which is today the world's largest auction house.
Morning Post and Daily Advertiser, 15 September 1791.
Like many other public houses of the eighteenth century the Friend at Hand occasionally served as an auction house itself. In June 1791 a large collection of fire arms consisting of "double and single barreled fowling pieces, rifle bullet guns, pistols and blunderbusses" was sold there by auction.
Gazetteer and New Daily Advertiser, 28 June 1791.
On 6 April 1797 the address of the Friend at Hand was given in a classified ad in the Morning Post and Fashionable World as "Elizabeth-Street, Hans-Place," rather than Queen Street. And while it's tempting to think that perhaps the house had moved to an alternative nearby location, later addresses continue to list it at Queen Street, suggesting that it had not moved, but that addresses were given with rather more latitude around the turn of the nineteenth century.
According to the Sun Fire Office Records a "Friend at Hand" was insured to "Edward Bates, at the Friend at Hand, Queen Street Brompton" in August 1810 (London Metropolitan Archives MS 11936/453/846997).
By August 1820 the Friend at Hand on Queens Street, Brompton was insured to a William Vinall (LMA MS 11936/483/970363). The same address and the same owner is provided in the Sun Fire records office until 12 March 1823 (LMA MS 11936/498/1001908). From the 1826s on the Friend at hand appears in various directories with the address 1 Elizabeth Street (see pubshistory.com). In January 1830, for example, Michael Collins of the Friend at Hand, Elizabeth Street, Brompton, was declared bankrupt (Law Advertiser 8.1 (1830): p1). The address is given consistently as Elizabeth Street until 1886, when Queen Street and Elizabeth Street were renamed Hans Road, which is the name by which it still goes.
The Survey of London (vol. 41) reports that "at the comer of North (Basil) Street next to the entrance to the Queen's Gardens School, the Friend at Hand public house was rebuilt in a cheerful stripey style by Dear and Winder, architects, in 1894." Again, there is no guarantee that this was the same "Friend at Hand" that the LCS met in one hundred years previously, but if not they must have been very close to the same location.
The Survey of London says that all of the buildings on the former Queens Road that were developed at the end of the nineteenth century, including the new stripey Friend at Hand, disappeared in 1908–12, as the Harrods department store (initially based on Brompton Road) bought up the leases and expanded on to the sites. One of the last mentions of the Friend At Hand occurs in the Post Office Directory of 1910, where the landlord is listed as Edwin Cash, and the address is given as 37 & 39 Hans Road.
Harrods viewed from corner of Hans Road and Basil Street
Unsurprisingly, given the fame of Harrods there is a substantial archive of photography which document the history of the area. A search for "Hans Road" on Collage brings up numerous images of Hans Road from the late nineteenth and early twentieth century, documenting the growth and development of the department store.
Harrods, Brompton Road: by Hans Road looking east.
Photograph from 1892; London County Council Photograph Collection at the LMA.
Frustratingly, however, most of the images are from the Brompton Road end of Hans Road, looking east and none show the junction of Hans Road with Basil Street (where the Friend at Hand still existed into the early twentieth century). The Friend at Hand, like many of the alehouses in which the LCS met remains just out of shot, proximate to, but never quite present in the recognizable images of the metropolis.
Posted by Ian Newman at 6:46 PM 5 comments:
Labels: Div. 06, Div. 19, Friend at Hand

redpajama_set_name: RedPajamaCommonCrawl


XYplorer has crashed on me several times today and it seems that the cause is when I preview a pdf file in the preview pane. The windows event log is set out below. I am not a computer expert so do not fully understand the message below.
and use their preview handler. Make sure you install the 32-bit versions of either of these two!
Many thanks Highend, PDF XChange Viewer did the trick.
I tried installing the 32-bit version of Sumatra but it seems is does not have the preview handler.
Only the 64-bit version has the preview handler.
Problem is the 64-bit version of Sumatra makes XYPlorer crash.
You need the 32 bit version, run the installer like this with /opt pdfpreviewer, or if you know how, extract the dlls and register them manually.
I personally use the 64bit exe (its unnecessary though), and just use the 32bit dll's for preview, I have never had a single issue or crash.
Don't know why they removed the checkbox to register the previewer in the 32-bit version.
For anybody reading this who really wants an outstanding PDF previewer (given that Adobe's has problems, and the suggested ones aren't so great), if you have the money to spoon out, Bluebeam Revu has an excellent 32-bit PDF previewer (in addition to 64-bit) with a toggle to choose which one to use.
I'm on 64-bit Win 7 Pro. No luck for me yet. Adobe crashes XY. 32-bit PDF-XChange will not install on 64-bit systems. "SumatraPDF-3.1.2-install.exe /opt pdfpreviewer" does not generate a GUID. Revu costs $350. Foxit does not yield any preview.
Thank you. I already had PDF-XChange installed but had not installed it with the Shell Extensions. I reinstalled it with Shell Extensions and found that it worked at that point. I guess that this is obvious in hindsight.


Our 8th Annual Childcare Cost Survey reveals that the average cost of a full-time childcare place in Northern Ireland is £168 per week which is equivalent to almost 40 per cent of average household income .
The report captures the views and experiences of 4,800 parents across Northern Ireland and highlights how they believe access to childcare is acting as a barrier to work. In almost a third (30%) of households, the childcare bill is more than the mortgage or rent, and 46% of parents report they have had to go without or cut back in order to meet childcare costs. For some this means cutting back on heating their homes, going without quality, fresh food, and skipping meals to meet their monthly childcare bill. Worryingly, 33% of parents, up from 25% last year, have used means such as savings, credit cards, loans or gifts from family and friends, and even payday loans to cover the cost.
Factors other than cost that working parents struggle with include: lack of out of school and wraparound services; lack of provision in rural areas; restricted and inflexible opening hours; and limited provision for children with specific needs.
Despite this, the overwhelming majority (87%) of parents are positive about the quality of childcare provision. They recognise the valuable experience their children receive and the important role childcare staff play in their children's lives.
Employers For Childcare has been conducting the Northern Ireland Childcare Cost Survey since 2010 to explore the cost of childcare and how this impacts on parents in Northern Ireland. It is the most extensive study of its kind in Northern Ireland, and is widely used to inform political debates, policy development in relation to the affordability of childcare, and service delivery.
Download the full report or highlights of the key findings can be found in the Executive Summary.
 'Households below average income Northern Ireland', Department of Communities 2015/16 – the average (median) income before housing costs in NI increased by 4% to £436 per week in 2015/16. These were the most up to date figures at time of writing.


text:
Commentary: Resolutions are more likely kept if redemption is made easier
The writer cites a study that found there are ways to make keeping New Year's resolutions on track.
CAMBRIDGE, Mass. — Many New Year's resolutions are about redemption. Maybe you aren't the sort of person you want to be. Maybe you aren't kind enough to others (strangers, co-workers, family members). Maybe you suffer from a self-control problem involving cigarettes, alcohol or gambling.
Maybe you procrastinate; maybe you're impatient or impulsive. Maybe you haven't taken steps that would enable you to make your life better – with more time off from work, a vacation in a gorgeous setting, an adventure or two.
Cass R. Sunstein, a Bloomberg View columnist, is the Robert Walmsley University professor at Harvard Law School and former head of the White House Office of Information and Regulatory Affairs.
On New Year's Eve, you resolve to make a change. But within a month, you're back to your normal patterns. How come?
Some clues can be found in a study with the revealing title "Everyone Believes in Redemption." The paper, by the economists Robert Letzler and Joshua Tasoff, doesn't involve New Year's resolutions. But it demonstrates that people suffer from both unrealistic optimism and inertia, which make it hard for them to carry out their plans.
Letzler and Tasoff gave the participants in their study an opportunity to earn $20 by redeeming a mail-in form. The subjects were instructed to print out a "certification page," which they were required to include with their form.
Participants were also asked to predict the likelihood that they would send in the form. As it happens, their responses were wildly optimistic. Actual redemption rates ended up being about 50 percent lower than what the participants predicted.
In other words, they resolved to mail in the form, and they fully expected to do so – but ultimately they didn't. (Similar patterns are observed in the real world; each year, American consumers fail to mail in at least $1 billion in potential rebates.)
Can anything be done to help? Letzler and Tasoff tried three different interventions.
• First, they informed people about the low redemption rates of earlier participants. But this information, helpful though it would seem, had no effect on people's optimism about what they would themselves do or on the likelihood that they would mail in the form.
• Second, Letzler and Tasoff sent people emails to remind them of the approaching deadline for redemption. The researchers had reason to think that this intervention would be effective, because reminders have been found to work in (for example) getting people to pay their bills and to come to doctor appointments. But in the case of the rebates, reminders had no effect. People ignored them.
• Finally, Letzler and Tasoff eliminated the requirement that subjects print out and submit a certification page as part of the redemption process. This was the only intervention that worked. By making things easier, they increased redemption rates by about 20 percent.
The important lesson here is that simplification brought people's predictions closer in line with reality by changing their behavior, not their beliefs. Once the process became a bit easier, people became more likely to take action and thus to make good on their predictions.
When people are unrealistically optimistic about what they will do, Letzler and Tasoff conclude, it is because they don't pay enough attention to the costs and burdens involved. When they resolve to act, and when they make inaccurate predictions about their own behavior, the benefits of action are salient, but the costs are not.
Consider New Year's resolutions in this light. It's easy to resolve to be more altruistic, to exercise greater self-control, to be more patient or to enhance one's life, but it's costly to do these things. Suppose that you aren't always as generous and kind as you would like to be, or that you have trouble resisting temptation, or that you don't give yourself enough time off. If so, it's probably because it's costly to do those things, and it's hard to anticipate those costs and burdens in advance.
The best remedy is to find ways to reduce such costs and burdens. If you want to be more altruistic, you might set up automatic monthly gifts to your favorite charity. If you want to increase your self-control, you might alter your environment so that you run into temptations less often – for example, by keeping less food in your refrigerator. If you want to have an adventure or two, you might accompany your New Year's resolution with a purchase, today or tomorrow, of a plane ticket.
Months or even weeks after New Year's, many people learn that optimism and inertia are a potent combination. To overcome them, it helps to make redemption automatic – or at least a lot simpler.
— The Washington Post News Service with Bloomberg News
Obituary: Earl "Bud" Blake Harris Jr.
Obituary: Teresa Alexine "Tree" Bendokas
Obituary: Duncan James MacDonald Jr.
Obituary: Abner Pic Clarkson
Obituary: Donald Keith Murdoch


text:
SLS Hotel and Residences will feature a whole new level of entertainment and dining experience in Brickell. Highlighting the following restaurants; Katsuya by Philippe Starck, Bazaar by Jose Andres, and a new restaurant by Michael Schwartz of Michael Genuine.
The project will be anchored at 1300 South Miami Avenue in Brickell. It will have retail at the ground level highlighting 3 on-site restaurants. The hotel part of the building will begin at the lobby level and go up to the 9th floor, where there will be an elevated 200 ft long pool, spa deck, and amenities such as the HYDE Bar and Lounge and CIEL Spa. The residential units will start from the 10th and up. There will be 11 units per floor. SLS Hotel and Residences will consist of 10 stories of Hotel with interiors by Philippe Starck, SLS Brickell will be very luxurious, offering an amazing array of services. This is not a condo-hotel.
Residents will be able to take advantage many of the Hotel's services, such as, Rooftop pool for Resident's use only. Business center. 8000 sqft Ballroom. Private Spa, State of the Art Fitness Center, Screening room. One assigned parking space per unit." says Christian Tupper, Related Group.
— Housekeeping Service
— Multimedia Room
— Valet Parking
— Residences will range in size from 700 to 1,500 square feet
— 11 units per floor
— 14 penthouses encompassing the last two floors
— 1 assigned parking space per unit
— Club and/or Resort Access
— Designer Fixtures
— Private Elevator
— Soaking Tub
— Wired For Voice, Data and/or Cable
— 10% at Reservation - Soon — 10% at Contract - estimated to be three months after reservation period. — 10% at Ground Breaking estimated to be three months from contract. — 10% at 25th floor - approximately ten (10) months after ground breaking. — 10% at top off - Approximately eight (8) months after previous payment — 50% at Closing NOW... We are taking reservations with the following deposits: — $100,000 for Penthouse units — $50,000 for 3 Bedroom — $40,000 for 2 Bedroom — $30,000 for 1 Bedroom
SLS Hotel and residences – Penthouse
Line PH 01 - 3 beds plus den / 3.5 baths	4	1,846 SQ. Ft
Fl Plan
RES.01
Line 01 - 2 beds plus den / 2 baths Unit number: 38, 1,286 SQ. Ft
RES. 02
RES 03
Line 03 - 1 bed plus den / 2 baths	Unit number: 38, 883 SQ. Ft
Line 04 - 1 bed plus den / 1 bath	Unit number: 38, 689 SQ. Ft
Line 05 - 3 beds plus den / 2.5 baths	Unit number: 38, 1,281 SQ. Ft
Line 06 - 3 beds / 2.5 baths Unit number: 38, 1,153 SQ. Ft
Line 07 - 1 bed / 1 bath	Unit number: 38, 570 SQ. Ft
Line 08 - 1 bed plus den / 1.5 baths Unit number: 38,649 SQ. Ft.
Line 09 - 2 beds / 2.5 baths	Unit number: 38,963 SQ. Ft
Line 10 - 2 beds plus den / 2 baths	, Unit number: 38, 1,155 SQ. Ft
Line 11 - 2 beds / 2 baths	Unit number: 38, 868 SQ. Ft
Brickell Ten condos will be anchored at 1010 SW 2nd Avenue, Miami, Florida 33130. This twenty-two story, 155 apartment condominium is ..


Your Alfa Romeo was manufactured with different tire sizes. To determine the best tire size for your specific 1987 Alfa Romeo Spider, we first need to determine your rim size. Please review the information below.
The original tire size for your 1987 Alfa Romeo Spider is listed below. Tap on the box to view a color-coded explanation of your Alfa Romeo Spider's' tire size.
The original tire size for your 1987 Alfa Romeo Spider is 185/70HR14. A color-coded explanation of the 1987 Alfa Romeo Spider's tire size is shown below.
The original tire size for your 1987 Alfa Romeo Spider is 195/60HR15. A color-coded explanation of the 1987 Alfa Romeo Spider's tire size is shown below.


This page contains solutions/answers to Accounts from Incomplete Records – Ascertainment of Missing Figures – Numerical Questions Solutions numerical questions. If you're looking for answers/solutions to the theoretical questions or the numerical questions related to Accounts from Incomplete Records – Ascertainment of profit or loss by statement of affairs method (OR) Calculation of profit or loss and ascertainment of statement of affairs at the end of the year (Opening Balance is given) (OR) Ascertainment of statement of affairs at the beginning and at the end of the year and calculation of profit or loss, you can find them at the following pages.
* Accounts from Incomplete Records – Ascertainment of profit or loss by statement of affairs method (OR) Calculation of profit or loss and ascertainment of statement of affairs at the end of the year (Opening Balance is given) (OR) Ascertainment of statement of affairs at the beginning and at the end of the year and calculation of profit or loss.
The amount to be paid to creditors is ₹ 4,40,175.
Note: In the above problem as we're concerned with the preparation of the creditors account, we didn't consider the Discount Allowed and Returns Inwards as these are related to the Debtors account.
To find the credit purchases, we need to prepare the total creditors account. The credit purchases can be computed as follows.
Note: The cash purchases, discount allowed and returns inwards are considered from the given table as they do not belong to the creditors account.
17. From the following information calculate total purchases.
To find out the total purchases, we need to prepare the Total Creditors account. However, as the opening and closing balance of the Bills payable account are provided, we need to prepare the Bills payable account also to find out the bills payable (which will be used in the creditors account).
To calculate the credit purchases during the year, we need to prepare the total creditors account.
Note:The return inwards and discount allowed belong to the Debtors account. So, it is not considered in the creditors account.
19. From the following, calculate the amount of bills accepted during the year.
To find the amount of bills accepted during the year, we need to prepare the Bills Payable Account.
To find the bills matured during the year, we need to prepare the Bills Payable account.
Note: The cheque dishonoured is assumed to be the one given by the debtors to the business (not given by the business to the creditors). So, it is not taken into account.
By analyzing the above data, we see that few of the transactions belong to the creditors account and few to the bills payable account. So, we need to prepare both the bills payable and total credtors account.
22. Calculate the amount of bills receivable during the year.
To find the amount of Bills Receivable during the year, we need to prepare the Bills Receavable account.
23. Calculate the amount of bills receivable dishonoured from the following information.
To find the amount of bills receivable dishonoured we need to prepare the Bills Receivable Account.
24. From the details given below, find out the credit sales and total sales.
To find out the credit sales, we need to prepare the Total Debtors account. Total Sales can then be found by adding the cash sales and credit sales.
25. From the following information, prepare the bills receivable account and total debtors account for the year ended December 31, 2013.
26. Prepare the suitable accounts and find out the missing figure if any.
The given transactions belong to both Bills Receivable as well as Total Debtors accounts. So, we need to prepare both of these accounts.
27. From the following information ascertain the opening balance of sundry debtors and closing balance of sundry creditors.
The rate of gross profit is 25% on selling price and out of the total sales ₹ 85,000 was for cash sales.
In order to find the opening balance of sundry debtors, we need to prepare the total debtors account. Similarly, in order to find the opening balance of sundry creditors, we need to prepare the sundry creditors account.
To proceed with the problem we need to find out the credit sales. However, to find the credit sales, we need to find the totals sales. As profit percentage is given, we can find the total sales, if we first find the total cost.
Note:The opening stock, purchases and the closing stock are used to find the total cost. However, as you might have noticed they do not form part of the Total Debtors or Total Creditors accounts.
All her sales and purchases were on credit. Provide depreciation on plant and building by 10% and machinery by 5%, make a provision for bad debts by 5%.
To prepare the final accounts i.e. the trading and profit and loss account and the balance sheeet, we need to know the purchases, sales and the capital. To find the sales, we need to prepare the total debtors account. To find the purchases, we need to find the total creditors account. Also, to find the capital we need to prepare the statement of affairs.
Note: In the text book, the plant value at the beginning of the year has a typo where it is printed as 10,00,000 instead of 1,00,000. We prepared the final accounts considering that the plant is 1,00,000.


We are excited to announce the November release of Azure Data Studio (formerly known as SQL Operations Studio) is now available.
Download Azure Data Studioand review the Release Notes to get started.
Note: If you are currently using the preview version, SQL Operations Studio, and would like to retain your settings when you upgrade to the latest version, follow these instructions. When you download Azure Data Studio, remember to enable preview features by default at first launch, and then you can disable in settings if you dont need it otherwise. By not enabling the preview features, you will be missing preview experiences like Query Plans, certain extension support, and more.
Azure Data Studio was announced Generally Available at Microsoft Ignite 2018. If you missed it, catch up by reading the GA announcement on the SQL Server blog. You wont want to miss the great orthogonality matrix included comparing SSMS and Azure Data Studio and answers to many of your questions.
In Novembers version of the monthly release blog, the emphasis was on fixing customer issues and adding and improving existing extensions.
Since announcing the Public Preview of SQL Server 2019 at Ignite, we are continuing to make updates to the SQL Server 2019 extension in Azure Data Studio, including improvements in the Azure Data Studio Notebooks and the Create External Data Wizard.
To download the extension and view the full release notes, follow the instructions here.
In addition to the extensions mentioned above, we are always looking for great community contributed extensions. One of our most active extension authors is Drew Skwiers-Koballa, and he created an integrated experience for Brent Ozar Unlimiteds Paste the Plan feature.
Once you have an execution plan from a saved execution plan file, the extension allows you to open in a browser or copy to a clipboard. You can see this in the gif below from the extension ReadMe.
To learn more about the extension, you can view the extension repo here.
The Paste the Plan extension for Azure Data Studio brings to the forefront an important topic data privacy. It is important to understand the implications of any extensions you might install. While the Paste the Plan extension securely hands your execution plan off to Paste the Plan via https, Paste the Plan is a public website and your execution plan is publicly available from there. One benefit to open source software is that it puts power in the communitys hands to review the code and raise concerns about the way it treats your data. Another benefit to the open source extensions is that they can be used as guidebooks and frameworks when working on your own extensions. If an extension is open source, as many are, you can access the source code from the link in the Extension Gallery.
Drew has shipped not only one extension this month, but two extensions. He must really love writing extensions for Azure Data Studio!
The second extension is the High Color Queries extension. This extension allows for a great dark and light theme for working with T-SQL. It was interesting to see how the extension evolved based on Twitter feedback where a user wanted to see a theme more closely aligned with the default SSMS theme, and this was incorporated in the extension, as seen below.
If you have your own themes that you would like to build and share, Drew does a great job explaining how to make an integrated T-SQL theme in his blog post which can be found here. In general, feel free to email yu.alan@microsoft.com if you have any questions on how to get started building an Azure Data Studio extension.
We are seeking ways to empower users to submit more specific details on issues they run into in Azure Data Studio. Thus, our team has improved logging support, which you can start including in your issue reports going forward.
You can then view the logs by opening the Output Window by pressing Ctrl+u and clicking the dropdown for Log(SqlTools).
After some activity and having logging enabled, this is what it may look like.
If you would like to help make Azure Data Studio a great product, share any feedback or report issues through our Issues page. Our engineering team is regularly going through the untriaged issues and assigning issues into different monthly milestones so that you can know we are working on it. Your votes on issues help us prioritize.
#2851TimeSeries chart does not render correctly.
SQL Agent, Profiler, and Import Wizard all had several bug fixes. In particular, keyboard shortcuts and command palette commands now are working properly.
If you have any feature requests or issues, please submit to our Github issues page. For any questions, feel free to comment below or tweet us @AzureDataStudio.
The post The November release of Azure Data Studio is now available appeared first on SQL Server Blog.


text:
HomeTibet News
China has built bunkers to shelter fighter planes at Gonggar Airport, Lhasa
Gonggar Airport, Lhasa, Tibet. (Photo courtesy: Tibet Discovery)
(TibetanReview.net, Oct04, 2018) – China has built underground bomb-proof shelters to house fighter planes at the Gonggar airport of Tibet's capital Lhasa in apparent preparation for possible conflict with India, which it considers realistic following the tense, drawn out Doklam standoff last year, according to a hindustantimes.com report Oct 3.
The airfield, earlier meant to boost "regional connectivity", is now being turned into a military airbase, the report said, citing three unnamed officials familiar with the development.
The report cited one of the officials as saying a "taxi track" from the airstrip leads to blast- or bomb-proof hangers dug deep inside the mountains nearby. The three officials have been cited as saying the underground facility can hold around three squadrons of fighters or about 36 aircraft.
The report quoted the second official as saying, "You need blast- or bomb-proof hangers for fighters only if there is a possibility of hostilities. Fighters kept in the open are vulnerable to attacks during hostilities, therefore they are kept safe inside bomb-proof shelters. When required, they are pulled out of the shelters and launched."
The People's Liberation Army (Air Force) has such facilities along its border with Russia and the underground bomb-proof facilities along the India-China border in the Tibet Autonomous Region (TAR) is a "new development," the report cited the third official as saying.
Besides, the officials have been cited as saying, there are Surface-to-Air Missile (SAM) bases near some of the airfields that are being augmented and expanded along with helicopter bases. For instance, the SAM base near the Shigatse airfield situated across Sikkim has also been augmented, it was stated.
During the Doklam crisis last year, troops of India and China engaged in an extended stand-off lasting 73 days. During that period China's official media repeatedly taunted India and called for war to teach New Delhi a lesson. It eventually ended after hectic diplomatic parleys, with the two sides agreeing to withdraw from the site.
Relations between the two countries have warmed in recent months with the Indian Prime Minister Narendra Modi visiting Wuhan for an informal summit with Chinese president Xi Jinping where the two leaders committed to improve ties.
Bomb-proof Shelter
Gonggar Airport
Chinese police seized late revered Tibetan monk's statue, roughed up those associated with it
China still silent on two Tibetan monk-brothers arrested in Sichuan five months ago


Products related to "Neptune Krill Oil 500 mg"
Neptune Krill Oil (NKO) is known for its unique fatty acid (FA) profile, as well as for its rich antioxidant content. NKO's balanced fatty acid content includes not only EPA and DHA, the crucial Omega-3 FA's, but Omega-9 FA's and phospholipids, as well.
Suggested Usage: As a dietary supplement, take 2 softgels daily with breakfast. Consider taking this product in combination with NOW® CoQ10, Tru-E BioComplex™ and Phosphatidyl Serine.
* Percent Daily Values are based on 2,000 calorie diet. †Daily Value not established.
Ingredients: Krill Oil, Softgel capsule (gelatin, glycerin, water). Contains shellfish (krill) derivative.
NKOâ"¢ is a trademark of Neptune Technologies & Bioressources Inc. Quebec, Canada. US Patent No.: 6,800,299 B1.


University of Åbo Akademi, Finland.
This article focuses a hermeneutic approach to the interpretation of narratives. It is based on the French philosopher Paul Ricoeur's theory of interpretation but modified and used within a caring science paradigm. The article begins with a presentation of the theoretical underpinnings of hermeneutic philosophy and narration, as well as Ricoeur's theory of interpretation, before going on to describe the interpretationprocess as modified by the authors. The interpretationprocess which consists of several stages is exemplified and discussed using a single case from a larger study on suffering. The results of that study indicate that the struggle of suffering is perceived as a struggle formed between shame and dignity, and that nurses must engage in the process of preserving and restoring the dignity of their suffering patients. The authors suggest that Ricoeur's theory of interpretation is useful when trying to understand narrative data if the researcher realises that the process of distanciation, although central in Ricoeur's thinking, is not the goal of the process but rather it is a means to deal with the researcher's pre-understandings. According to Ricoeur, distanciation is accomplished by putting the context aside and dealing with the text "as text" and thereby explaining its meaning. Explanation thus becomes the dialectic counterpart to understanding in the interpretationprocess. The researchers further argue that distanciation must be followed by reflection where the interpretations are linked back to the empirical context.