<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ganesh Swami &#187; Paper</title>
	<atom:link href="http://ergodicity.iamganesh.com/category/paper/feed/" rel="self" type="application/rss+xml" />
	<link>http://ergodicity.iamganesh.com</link>
	<description>Quick brown foxes and lazy dogs.</description>
	<lastBuildDate>Sat, 31 Jan 2009 21:07:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Anton</title>
		<link>http://ergodicity.iamganesh.com/2007/08/anton/</link>
		<comments>http://ergodicity.iamganesh.com/2007/08/anton/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 15:16:11 +0000</pubDate>
		<dc:creator>ganesh</dc:creator>
				<category><![CDATA[Paper]]></category>
		<category><![CDATA[anton]]></category>
		<category><![CDATA[de shaw]]></category>
		<category><![CDATA[desmond]]></category>
		<category><![CDATA[molecular dynamics]]></category>

		<guid isPermaLink="false">http://ergodicity.iamganesh.com/2007/08/10/anton/</guid>
		<description><![CDATA[Named after Anton van Leeuwenhoek, the father of microbiology,
this is the latest from D. E. Shaw Research. This paper
describes the massively-parallel hardware part of their super
software-hardware technology. I&#8217;ve previously described their software
here.

Scheduled for completion at the end of 2008, Anton is built with the
aim of doing millisecond simulations. In contrast with approaches like
Folding@Home, they are [...]]]></description>
			<content:encoded><![CDATA[<p>Named after <a href="http://en.wikipedia.org/wiki/Anton_van_Leeuwenhoek">Anton van Leeuwenhoek</a>, the father of microbiology,
this is the latest from <a href="http://www.deshaw.com/">D. E. Shaw Research</a>. This <a href="http://doi.acm.org/10.1145/1273440.1250664">paper</a>
describes the massively-parallel hardware part of their super
software-hardware technology. I&#8217;ve previously described their software
<a href="http://ergodicity.iamganesh.com/2006/11/28/fast-molecular-dynamics/">here</a>.</p>

<p>Scheduled for completion at the end of 2008, Anton is built with the
aim of doing millisecond simulations. In contrast with approaches like
<a href="http://folding.stanford.edu/">Folding@Home</a>, they are interested in a single
trajectory. Folding@Home patches together many small trajectories that
are more feasible on a regular desktop PC. Their initial configuration
will have 512 nodes.</p>

<p>Many of the ideas implemented in their software simulation engine
<em>Desmond</em> were developed with Anton in mind. For long range
electrostatic interactions, they use a method called k-space Gaussian
split Ewald, reducing the computational burden from O(n^2) to O(n log(n)). Another advantage is that the same kernel is used for force
interpolation and spreading saving real estate on the chip.</p>

<p>As any molecular dynamics aficionado knows, about 90% of the
computational time is spent in computing non-bonded forces. With this
is mind, they&#8217;ve done everything possible to speed up the process
devoting much of the ASIC space. One of their ideas that struck me was
the explicit computation between all pairs and then to go back
subtract correction terms. This leads to a clear separation in
the accounting between what particles are required for what forces &#8211;
a major win for scalability.</p>

<p>They get major speedups by building a specialized hardware datapath
and control logic tuned for common molecular dynamics communication
patterns. They even have dedicated support to accumulate forces for
reducing latency. I was previously excited by the <a href="http://ergodicity.iamganesh.com/2007/03/29/streaming-instructions/">addition</a> of
the dot product instruction <code>haddps</code> to recent generations of
processors. Anton does dot products in hardware. Dot products can be
used everytime you&#8217;d want to &#8220;squish&#8221; a vector.</p>

<p>Anton does all computation in fixed point arithmetic, which is faster
and more accurate for the same silicon area (their claim.) Molecular
dynamics is expensive in computation and communication, but not so
much in memory. All of their data for a 25,000 particle system fits in
L1 cache.</p>

<p>One of the courses in Engineering at SFU (ENSC 250) deals with
designing a RISC processor from the ground up. I vaguely remember
building branch prediction logic in VHDL, not really knowing if I&#8217;d
ever use that knowledge again. If only I&#8217;d known&#8230;</p>

<p>Anyways, I&#8217;m missing out on some of the finer details of their
technology. Go read the <a href="http://doi.acm.org/10.1145/1273440.1250664">paper</a> for the real deal.</p>
]]></content:encoded>
			<wfw:commentRss>http://ergodicity.iamganesh.com/2007/08/anton/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Classic Math Papers</title>
		<link>http://ergodicity.iamganesh.com/2007/05/classic-math-papers/</link>
		<comments>http://ergodicity.iamganesh.com/2007/05/classic-math-papers/#comments</comments>
		<pubDate>Wed, 23 May 2007 15:42:34 +0000</pubDate>
		<dc:creator>ganesh</dc:creator>
				<category><![CDATA[Paper]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[math]]></category>

		<guid isPermaLink="false">http://ergodicity.iamganesh.com/2007/05/23/classic-math-papers/</guid>
		<description><![CDATA[I walked into a gold mine: a list of thirteen classic papers in applied
math. The webpage has other key papers, but this list should keep me occupied for some time. I&#8217;m reproducing the list for my own reference:


J.W. Cooley and J.W. Tukey, &#8220;An algorithm for the machine calculation of complex Fourier series,&#8221; Math. Comp., 19 [...]]]></description>
			<content:encoded><![CDATA[<p>I walked into a gold mine: a <a href="http://www.stanford.edu/class/cme302/classics/index.html">list</a> of thirteen classic papers in applied
math. The webpage has other key papers, but this list should keep me occupied for some time. I&#8217;m reproducing the list for my own reference:</p>

<ul>
<li>J.W. Cooley and J.W. Tukey, &#8220;An algorithm for the machine calculation of complex Fourier series,&#8221; Math. Comp., 19 (1965), pp. 297–301.</li>
<li>R. Courant, K. Friedrichs, and H. Lewy, &#8220;On the partial difference equations of mathematical physics,&#8221; IBM J. Res. Develop., 11 (1967), pp. 215–234.</li>
<li>A.S. Householder, &#8220;Unitary triangularization of a nonsymmetric matrix,&#8221; J. Assoc. Comput. Mach., 5 (1958), pp. 339–342.</li>
<li>C.F. Curtiss and J.O. Hirschfelder, &#8220;Integration of stiff equations,&#8221; Proc. Nat. Acad. Sci. U.S.A., 38 (1952), pp. 235–243.</li>
<li>C. de Boor, &#8220;On calculating with B-splines,&#8221; J. Approximation Theory, 6 (1972), pp. 50–62.</li>
<li>R. Courant, &#8220;Variational methods for the solution of problems of equilibrium and vibrations,&#8221; Bull. Amer. Math. Soc., 49 (1943), pp. 1–23.</li>
<li>G. Golub and W. Kahan, &#8220;Calculating the singular values and pseudo-inverse of a matrix,&#8221; J. Soc. Indust. Appl. Math. Ser. B Numer. Anal., 2 (1965), pp. 205–224.</li>
<li>A. Brandt, &#8220;Multi-level adaptive solutions to boundary-value problems,&#8221; Math. Comp., 31 (1977), no. 138, pp. 333–390.</li>
<li>M.R. Hestenes and E. Stiefel, &#8220;Methods of conjugate gradients for solving linear systems,&#8221; J. Research Nat. Bur. Standards, 49 (1952), pp. 409–436.</li>
<li>R. Fletcher and M.J.D. Powell, &#8220;A rapidly convergent descent method for minimization,&#8221; Comput. J., 6 (1963/1964), pp. 163–168.</li>
<li>G. Wanner, E. Hairer, and S.P. Nørsett, &#8220;Order stars and stability theorems,&#8221; BIT, 18 (1978), no. 4, pp. 475–489.</li>
<li>N. Karmarkar, &#8220;A new polynomial-time algorithm for linear programming,&#8221; Combinatorica, 4 (1984), no. 4, pp. 373–395.</li>
<li>L. Greengard and V. Rokhlin, &#8220;A fast algorithm for particle simulations,&#8221; J. Comput. Phys., 73 (1987), no. 2, pp. 325–348.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ergodicity.iamganesh.com/2007/05/classic-math-papers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Protein Folding</title>
		<link>http://ergodicity.iamganesh.com/2007/05/protein-folding/</link>
		<comments>http://ergodicity.iamganesh.com/2007/05/protein-folding/#comments</comments>
		<pubDate>Fri, 18 May 2007 04:19:23 +0000</pubDate>
		<dc:creator>ganesh</dc:creator>
				<category><![CDATA[Paper]]></category>

		<guid isPermaLink="false">http://ergodicity.iamganesh.com/2007/05/17/protein-folding/</guid>
		<description><![CDATA[

I came across a paper on the pre-print archive: &#8220;Introduction to
protein folding for physicists.&#8221; Proteins are polymers of amino acids
and the sequence of these amino acids completely determine the native
three dimensional structure. The human genome project gives us
the sequences of all proteins in the human body. In theory it should
be possible to study diseases like [...]]]></description>
			<content:encoded><![CDATA[<p><img class="gallery" src='http://ergodicity.iamganesh.com/wp-content/uploads/2007/05/Protein_folding.png'  /></p>

<p>I came across a <a href="http://arxiv.org/abs/0705.1845">paper</a> on the pre-print archive: &#8220;Introduction to
protein folding for physicists.&#8221; Proteins are polymers of amino acids
and the sequence of these amino acids completely determine the native
three dimensional structure. The <a href="http://www.ornl.gov/sci/techresources/Human_Genome/home.shtml">human genome project</a> gives us
the sequences of all proteins in the human body. In theory it should
be possible to study diseases like Alzheimer&#8217;s that are caused by the
misfolding. Right?</p>

<p>Unfortunately, the combinatorial nature of the problem makes it
impossible to do a brute force search. This paper is a decent
introduction to the vocabulary of molecular biologists. The abstract:</p>

<blockquote>
  <p>[...] we provide an exhaustive account of the reasons underlying the protein
  folding problem enormous relevance and summarize the present-day sta-
  tus of the methods aimed to solving it. We also provide an introduction to
  the particular structure of these biological heteropolymers, and we phys-
  ically define the problem stating the assumptions behind this (commonly
  implicit) definition. [...]</p>
</blockquote>

<p>The author recognizes the inadequacies of implicit solvent models. He
also asks a key question: is kinetic information important for
determining which minima is chosen. This was a similar question that I
had while doing my <a href="http://ergodicity.iamganesh.com/projects/motion-planning-and-biology/">docking project</a>. Most docking algorithms
right now only use static information.</p>

<p>References:</p>

<ul>
<li><p>Introduction to protein folding for physicists, by Pablo Echenique. <a href="http://arxiv.org/abs/0705.1845">arXiv:0705.1845v1</a> [physics.bio-ph]</p></li>
<li><p>Picture courtesy of Wikipedia</p></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ergodicity.iamganesh.com/2007/05/protein-folding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Euler identity</title>
		<link>http://ergodicity.iamganesh.com/2007/03/euler-identity/</link>
		<comments>http://ergodicity.iamganesh.com/2007/03/euler-identity/#comments</comments>
		<pubDate>Sun, 18 Mar 2007 00:52:38 +0000</pubDate>
		<dc:creator>ganesh</dc:creator>
				<category><![CDATA[Paper]]></category>

		<guid isPermaLink="false">http://ergodicity.iamganesh.com/2007/03/17/euler-identity/</guid>
		<description><![CDATA[Another interesting paper came out last week on the preprint
archive, &#8220;A matrix generalization of Euler identity.&#8221; The Euler
identity reads,



and is traditionally derived from the Taylor expansion of sine and
cosine. In this paper, the author generalizes the Euler identity to
matrices. He does this by introducing a complex matrix, known as the
imaginary unit matrix



Just like , .

He [...]]]></description>
			<content:encoded><![CDATA[<p>Another interesting <a href="http://arxiv.org/abs/math.CA/0703448">paper</a> came out last week on the <a href="http://arxiv.org">preprint
archive</a>, &#8220;A matrix generalization of Euler identity.&#8221; The Euler
identity reads,</p>

<p><img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/0952ba4d783ecbc59b453c4c29a61da8.gif' title='e^{jx} = \cos(x) + j \sin(x) ' alt='e^{jx} = \cos(x) + j \sin(x) ' align='middle' /></p>

<p>and is traditionally derived from the Taylor expansion of <code>sine</code> and
<code>cosine</code>. In this paper, the author generalizes the Euler identity to
matrices. He does this by introducing a complex matrix, known as the
imaginary unit matrix</p>

<p><img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/281e2720d8cfdd9e367795e6e563306a.gif' title='\mathbf{\Phi} = \left( \begin{array}{cc} 0 &amp;amp; j \\j \alpha^2 &amp;amp; 0\end{array} \right)' alt='\mathbf{\Phi} = \left( \begin{array}{cc} 0 &amp;amp; j \\j \alpha^2 &amp;amp; 0\end{array} \right)' align='middle' /></p>

<p>Just like <img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/3275256b09b3199024656be90d4f6de3.gif' title='j^2 = -1' alt='j^2 = -1' align='middle' />, <img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/99d8efeba4533ef01fb48c558fcee8f9.gif' title='\mathbf{\Phi^2} = &amp;#8211; \alpha^2 \mathbf{I}' alt='\mathbf{\Phi^2} = &amp;#8211; \alpha^2 \mathbf{I}' align='middle' />.</p>

<p>He then proves the Euler identity for these matrices as:</p>

<p><img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/e1bc316bae91a322ca0317a2fd0f9cb7.gif' title='e^{x \mathbf{\Phi}} = \cos(\alpha x)\mathbf{I} + \frac{1}{\alpha} \sin(\alpha x) \mathbf{\Phi} ' alt='e^{x \mathbf{\Phi}} = \cos(\alpha x)\mathbf{I} + \frac{1}{\alpha} \sin(\alpha x) \mathbf{\Phi} ' align='middle' /></p>

<p>for all real <code>x</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ergodicity.iamganesh.com/2007/03/euler-identity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Avoidable integrator errors</title>
		<link>http://ergodicity.iamganesh.com/2007/03/avoidable-integrator-errors/</link>
		<comments>http://ergodicity.iamganesh.com/2007/03/avoidable-integrator-errors/#comments</comments>
		<pubDate>Thu, 15 Mar 2007 05:02:00 +0000</pubDate>
		<dc:creator>ganesh</dc:creator>
				<category><![CDATA[Paper]]></category>
		<category><![CDATA[de shaw]]></category>
		<category><![CDATA[desmond]]></category>
		<category><![CDATA[gromacs]]></category>
		<category><![CDATA[integrator]]></category>
		<category><![CDATA[molecular dynamics]]></category>

		<guid isPermaLink="false">http://ergodicity.iamganesh.com/2007/03/14/avoidable-integrator-errors/</guid>
		<description><![CDATA[A friend brought this paper(pdf) to my attention &#8220;A
common, avoidable source of error in molecular dynamics integrators&#8221;
recently published in the Journal of Chemical Physics by D. E. Shaw
Research. I had previously written about their award winning
paper at SC06.


  In constrained molecular dynamics simulations using some of the most
  popular molecular dynamics codes, calculation [...]]]></description>
			<content:encoded><![CDATA[<p>A friend brought this <a href="http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&amp;id=JCPSA6000126000004046101000001&amp;idtype=cvips&amp;gifs=yes">paper</a>(<a href="http://scitation.aip.org/getpdf/servlet/GetPDFServlet?filetype=pdf&amp;id=JCPSA6000126000004046101000001&amp;idtype=cvips&amp;prog=normal">pdf</a>) to my attention &#8220;A
common, avoidable source of error in molecular dynamics integrators&#8221;
recently published in the Journal of Chemical Physics by D. E. Shaw
Research. I had previously <a href="http://ergodicity.iamganesh.com/2006/11/28/fast-molecular-dynamics/">written</a> about their award winning
paper at SC06.</p>

<blockquote>
  <p>In constrained molecular dynamics simulations using some of the most
  popular molecular dynamics codes, calculation of the velocities of
  constrained particles is based solely on the differences in particle
  positions during two successive time steps. This creates a numerical
  instability that the authors&#8217; show to be significant in a typical
  single-precision floating-point simulation. They describe a simple
  modification that eliminates this source of instability and
  demonstrate that this change substantially reduces the energy drift of
  a sample single-precision NVE simulation.</p>
</blockquote>

<p>The paper is really short (2 pages) and describes recipes for
modifying constraint algorithms <code>SHAKE</code>, <code>RATTLE</code> and <code>SETTLE</code>. Below
is a graph of the energy drift in double-precision, single-precision
and modified versions of GROMACS and Desmond (that&#8217;s D.E. Shaw&#8217;s MD
engine.) They simulated a 30A cube of 901 water molecules with
periodic boundary conditions for one nanosecond with a one femtosecond
timestep. See how bad single-precision GROMACS is for <a href="http://en.wikipedia.org/wiki/Microcanonical_ensemble">NVE</a>
simulations?</p>

<p><img class="gallery" id="image151" src="http://ergodicity.iamganesh.com/wp-content/uploads/2007/03/desmond.jpg" alt="desmond.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ergodicity.iamganesh.com/2007/03/avoidable-integrator-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fast Molecular Dynamics</title>
		<link>http://ergodicity.iamganesh.com/2006/11/fast-molecular-dynamics/</link>
		<comments>http://ergodicity.iamganesh.com/2006/11/fast-molecular-dynamics/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 03:00:20 +0000</pubDate>
		<dc:creator>ganesh</dc:creator>
				<category><![CDATA[Paper]]></category>
		<category><![CDATA[de shaw]]></category>
		<category><![CDATA[desmond]]></category>
		<category><![CDATA[molecular dynamics]]></category>
		<category><![CDATA[supercomputing]]></category>

		<guid isPermaLink="false">http://ergodicity.iamganesh.com/2006/11/28/fast-molecular-dynamics/</guid>
		<description><![CDATA[

One of the papers nominated for the best paper award at
Supercomputing 06 is titled &#8220;Scalable Algorithms for Molecular
Dynamics Simulations on Commodity Clusters&#8221; from the DE Shaw
Research group. If your standard of a modern molecular dynamics
code is Computer Simulations of Liquids, then this paper is
definitely worth a look. I&#8217;ve summarized the innovations below:

Midpoint method

Published earlier this [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin-left: 10px" align="right" class="gallery" id="image71" src="http://ergodicity.iamganesh.com/wp-content/uploads/2006/11/logo_sc06.gif" alt="SC06 Logo" /></p>

<p>One of the <a href="http://sc06.supercomputing.org/schedule/pdf/pap259.pdf">papers</a> nominated for the best paper award at
<a href="http://sc06.supercomputing.org/">Supercomputing 06</a> is titled &#8220;Scalable Algorithms for Molecular
Dynamics Simulations on Commodity Clusters&#8221; from the <a href="http://www.deshaw.com/">DE Shaw
Research</a> group. If your standard of a modern molecular dynamics
code is <a href="http://www.amazon.com/Computer-Simulation-Liquids-M-Allen/dp/0198556454">Computer Simulations of Liquids</a>, then this paper is
definitely worth a look. I&#8217;ve summarized the innovations below:</p>

<h4>Midpoint method</h4>

<p>Published earlier this year in the Journal of Chemical Physics, this
is a parallelizing algorithm which is a hybrid between spatial
decompositions and force decompositions. The major innovation of this
method is the reduced communication bandwidth, which can be a problem
when you scale simulations to hundreds of computers. </p>

<h4>Bitwise Time Reversibility</h4>

<p>One of the most important requirements for an integrator solving
Newton&#8217;s equations of motion is symplecticity. One way to check to
check for this is by running your integrator in negative time. Doing
so should return the system to the initial state. Though not an
absolute requirement, this is a nice thing to have for minimizing the
energy drift, which ultimately leads to a more realistic
simulation. These guys have an integrator that does this.</p>

<h4>Constraints in single precision</h4>

<p>To reduce high frequency motions (like vibrations of Carbon-Hydrogen
bonds for example), simulations typically make use of constraints to
hold bond lengths or atom velocities fixed. Typical codes RATTLE and
SHAKE need to be done in double precision for accuracy and to maintain
energy conservation. This paper talks about the use of an
(unpublished) algorithm that is stable in single precision.</p>

<h4>Normalized local coordinates</h4>

<p>Instead of representing coordinates in an absolute global frame, these
guys normalize coordinates. This gives them more precision (due to
operations done on floating points of the same magnitudes.) It also makes handling 
periodic boundary conditions simple. Another advantage they mention is that 
doing pressure control is time reversible.</p>

<h4>Interpolation schemes</h4>

<p>Personally, I think this is the cornerstone of the paper. The paper
mentions that instead of interactions being a function of distance <img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/4b43b0aee35624cd95b910189b3dc231.gif' title='r' alt='r' align='middle' />
between the particles, they compute it as a function of
<img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/174446184f1f448915b63410fd30e0c8.gif' title='ar^2+b' alt='ar^2+b' align='middle' />. The advantage is that the same set of polynomial
coefficients can be used for computing both forces and energies.</p>

<h4>SIMD instructions</h4>

<p>I&#8217;m just mentioning this for completeness. As far as I know, every
high performance engine makes use of these instructions. In fact,
<a href="http://www.gromacs.org/">GROMACS</a> has hand tuned kernels written using these
instructions. In theory, this makes your code four times faster.</p>

<p>In conclusion, I was pretty impressed with the quality of work and the
innovations these guys have brought to the community. Download the paper <a href="http://sc06.supercomputing.org/schedule/pdf/pap259.pdf">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ergodicity.iamganesh.com/2006/11/fast-molecular-dynamics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

