<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xml:lang="en" xml:base="http://ergodicity.iamganesh.com/wp-atom.php">
	<title type="text">Ganesh Swami</title>
	<subtitle type="text">Quick brown foxes and lazy dogs.</subtitle>

	<updated>2009-01-31T21:07:31Z</updated>
	<generator uri="http://wordpress.org/" version="2.9.1">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com" />
	<id>http://ergodicity.iamganesh.com/feed/atom/</id>
	

			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GaneshSwami" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="ganeshswami" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[On Git]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2009/01/on-git/" />
		<id>http://ergodicity.iamganesh.com/?p=303</id>
		<updated>2009-01-31T21:07:31Z</updated>
		<published>2009-01-31T11:06:44Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Computing" /><category scheme="http://ergodicity.iamganesh.com" term="distributed" /><category scheme="http://ergodicity.iamganesh.com" term="git" /><category scheme="http://ergodicity.iamganesh.com" term="open-source" /><category scheme="http://ergodicity.iamganesh.com" term="version-control" />		<summary type="html"><![CDATA[Many years ago, I tried playing with distributed version controls. Darcs seemed to be all the rage back then, but somehow I found them to be way too complicated for my uses. Yesterday, I decided to give Git a whirl.

I got it.

Having used Subversion for a couple of years and CVS for more years than [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2009/01/on-git/">&lt;p&gt;Many years ago, I tried playing with distributed version controls. Darcs seemed to be all the rage back then, but somehow I found them to be way too complicated for my uses. Yesterday, I decided to give Git a whirl.&lt;/p&gt;

&lt;p&gt;I got it.&lt;/p&gt;

&lt;p&gt;Having used Subversion for a couple of years and CVS for more years than I care to remember, I realized that a central repository system was fundamentally broken. It requires one to keep so much in one&amp;#8217;s head. I almost always have to execute a &lt;code&gt;svn status&lt;/code&gt; before every commit because I can&amp;#8217;t remember about files that have moved, changed, deleted, added etc. This also adds a lot of cruft to the metadata of files that have had substantial changes across branch merges.&lt;/p&gt;

&lt;p&gt;On the other hand, Git only cares about changes between trees. It cares about content and not files. You &lt;code&gt;diff&lt;/code&gt; trees, not files. This is all very beautiful.&lt;/p&gt;

&lt;p&gt;I have only scratched the surface. I cheated and took the &lt;a href="http://git.or.cz/course/svn.html"&gt;crash course&lt;/a&gt; for people coming from the Subversion world. I haven&amp;#8217;t even explored how merges work across branches: they are about &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"&gt;five&lt;/a&gt; of them in Git.&lt;/p&gt;

&lt;p&gt;One day, I will get all of it. Until then, I&amp;#8217;ll trust the judgement of the incredibly smart people who work on Git. This is another of Linus&amp;#8217; masterpieces.&lt;/p&gt;

&lt;p&gt;PS: Here&amp;#8217;s a fairly good explanation of the guts of Git: &lt;a href="http://eagain.net/articles/git-for-computer-scientists/"&gt;Git for computer scientists&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/vF3Py6ie1B8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2009/01/on-git/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2009/01/on-git/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Trip to China]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/11/trip-to-china/" />
		<id>http://ergodicity.iamganesh.com/?p=442</id>
		<updated>2008-11-07T22:26:23Z</updated>
		<published>2008-11-07T22:26:23Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Travel" /><category scheme="http://ergodicity.iamganesh.com" term="china" />		<summary type="html"><![CDATA[I just came back from an awesome 10-day trip to China. We visited 5 cities: Shangai, Suzhou, Hangzhou, Xi&#8217;an and Beijing. We drove to Suzhou and Hangzhou from Shangai, flew to Xi&#8217;an from Hangzhou and took the overnight train to Beijing from Xi&#8217;an.

The highlight of the trip was The Great Wall. I was completely blown [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/11/trip-to-china/">&lt;p&gt;I just came back from an awesome 10-day trip to China. We visited 5 cities: Shangai, Suzhou, Hangzhou, Xi&amp;#8217;an and Beijing. We drove to Suzhou and Hangzhou from Shangai, flew to Xi&amp;#8217;an from Hangzhou and took the overnight train to Beijing from Xi&amp;#8217;an.&lt;/p&gt;

&lt;div id="attachment_443" class="wp-caption aligncenter" style="width: 310px"&gt;&lt;a href="http://ergodicity.iamganesh.com/wp-content/uploads/2008/11/img_2718.jpg"&gt;&lt;img src="http://ergodicity.iamganesh.com/wp-content/uploads/2008/11/img_2718-300x225.jpg" alt="Only a part-time job" title="img_2718" width="300" height="225" class="size-medium wp-image-443" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Only a part-time job&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;The highlight of the trip was The Great Wall. I was completely blown away &amp;#8212; it was nothing like I expected!&lt;/p&gt;

&lt;div id="attachment_444" class="wp-caption aligncenter" style="width: 310px"&gt;&lt;a href="http://ergodicity.iamganesh.com/wp-content/uploads/2008/11/img_2609.jpg"&gt;&lt;img src="http://ergodicity.iamganesh.com/wp-content/uploads/2008/11/img_2609-300x225.jpg" alt="The Great Wall" title="img_2609" width="300" height="225" class="size-medium wp-image-444" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;The Great Wall&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;The experiences are far too many for me to write about, so I&amp;#8217;ll let you see my &lt;a href="http://gallery.iamganesh.com/China/index.html"&gt;photos&lt;/a&gt; instead.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/_idyyXvQObw" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/11/trip-to-china/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/11/trip-to-china/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Hot Chips 20 Reflections]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/09/hot-chips-20-reflections/" />
		<id>http://ergodicity.iamganesh.com/?p=307</id>
		<updated>2008-09-07T21:23:48Z</updated>
		<published>2008-09-07T09:22:17Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Computing" /><category scheme="http://ergodicity.iamganesh.com" term="anton" /><category scheme="http://ergodicity.iamganesh.com" term="conference" /><category scheme="http://ergodicity.iamganesh.com" term="cuda" /><category scheme="http://ergodicity.iamganesh.com" term="hpc" /><category scheme="http://ergodicity.iamganesh.com" term="silicon valley" /><category scheme="http://ergodicity.iamganesh.com" term="supercomputing" />		<summary type="html"><![CDATA[Here&#8217;s my summary of the hot chips workshop that I recently attended. It was well attended with over 600 people showing up. The organizers also provided lunch on all days and dinner on one day. I learnt a lot, not only from the tutorials and talks, but also from talking to people during lunch and [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/09/hot-chips-20-reflections/">&lt;p&gt;Here&amp;#8217;s my summary of the hot chips workshop that I recently attended. It was well attended with over 600 people showing up. The organizers also provided lunch on all days and dinner on one day. I learnt a lot, not only from the tutorials and talks, but also from talking to people during lunch and dinner. &lt;/p&gt;

&lt;p&gt;&lt;span id="more-307"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Morning Tutorial&lt;/h3&gt;

&lt;p&gt;As processors become faster and faster, memory is not able to keep up the demand made by applications, further exacerbated by multicore technology. As as result, applications spend most of their time waiting for data to arrive from memory. This is know as the &amp;#8220;memory wall.&amp;#8221; This tutorial had presenters from Rambus, Intel and AMD who described their respective approaches to dramatically improve the situation. Most of the technology showcased is still in the prototype stage. I should also never get confused between the terms bandwidth, latency and throughput.&lt;/p&gt;

&lt;h3&gt;Afternoon Tutorial&lt;/h3&gt;

&lt;p&gt;The second half of the day had various people from Nvidia showcasing the &lt;a href="http://www.nvidia.com/cuda"&gt;CUDA&lt;/a&gt; technology. They had just released version 2.0. I&amp;#8217;ve seen most of the material a couple of times before, so I&amp;#8217;m only going to write about things I found really interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;really simple extensions to the C language. My biggest concern with this toolkit is if we will ever see a return on investment in writing for CUDA. What if Nvidia were to abandon this effort a few years down the line? One of the product managers alleviated this concern for me &amp;#8212; the language is so simple that it should be trivial to write a source-to-source translator to convert it to plain multithreaded code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;the &lt;code&gt;nvcc&lt;/code&gt; compiler can spit out code for their GPUs or plain multithreaded code that can be compiled with gcc or visual studio.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;the CUDA FFT library supports three-dimensional transforms of Hermitian sequences. This special optimization is twice as fast as the regular complex-to-complex transform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;hardware support for various types of interpolation, filtering and boundary conditions owing to its graphics roots.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;hardware support for sin, exp, pow, rcp (reciprocal) that can be done in one clock cycle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;future: fortran/c++ support, multiple GPU devices, debugger, profiler, GPU cluster support.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Conference Day 1&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Cars that drive themselves:&lt;/strong&gt; One of the most interesting talks on the first day was the keynote was &lt;a href="http://robots.stanford.edu/"&gt;Sebastian Thurn&lt;/a&gt;. I had attended his talk before at SFU when he had come over just after winning the DARPA challenge n 2005. I was impressed then and I&amp;#8217;m continued to be impressed by the quality of work that he and his team puts out. This time he spent a lot of time describing the challenges in the next DARPA Urban Challenge. Two interesting points from his talk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the occupancy of freeways is really bad. With automated cars, we can improve the &amp;#8220;throughput&amp;#8221; of the freeways.&lt;/li&gt;
&lt;li&gt;you can think of these automated cars as train carriages, only attaching/detaching themselves as required.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mobile Media Processing: &lt;/strong&gt; Three really impressive technologies.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a 300 mW single chip television from &lt;a href="http://www.telegent.com/"&gt;Telegent&lt;/a&gt;. Most of the world is still on analog television. Take technology from the 50s and apply the latest process and methodologies to it.&lt;/li&gt;
&lt;li&gt;voice enhancer based on human audio system from &lt;a href="http://www.audience.com/"&gt;Audience&lt;/a&gt;. Based on the Fast Cochlea Transform, they can pick out just your voice and segment it from the background. Enables really advanced voice manipulation techniques &amp;#8212; useful for ransom negotiation. Maybe not.&lt;/li&gt;
&lt;li&gt;Nvidia Tegra. Really cool HD video in the palm of your hand. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Supercomputing:&lt;/strong&gt; The reason I was there.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Cell broadband engine: For some reason I was finding it difficult to stay focussed as this was not x86. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anton: Written about this &lt;a href="http://ergodicity.iamganesh.com/2007/08/10/anton/"&gt;earlier&lt;/a&gt;. They can do a nonbonded computation in one clock cycle! That&amp;#8217;s awesome. They get massive speedups with careful organization of memory and treating their hardware as a massive stream processor. All of the messy conditionals and correction terms are treated separately. Interesting to see that they get better performance by doing more computation and reducing unpredictability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/70gS4Kr6nBM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/09/hot-chips-20-reflections/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/09/hot-chips-20-reflections/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[முதற் பக்கம்]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/%e0%ae%ae%e0%af%81%e0%ae%a4%e0%ae%b1%e0%af%8d-%e0%ae%aa%e0%ae%95%e0%af%8d%e0%ae%95%e0%ae%ae%e0%af%8d/" />
		<id>http://ergodicity.iamganesh.com/?p=306</id>
		<updated>2008-09-08T23:58:44Z</updated>
		<published>2008-08-23T23:47:22Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Web" /><category scheme="http://ergodicity.iamganesh.com" term="tamil" /><category scheme="http://ergodicity.iamganesh.com" term="url" />		<summary type="html"><![CDATA[I came across a pure Tamil URL today: http://உதாரணம்.பரிட்சை/முதற்_பக்கம். Searching for such website is hard if ones doesn&#8217;t know how to type these.

In other news, lack of WiFi at my hotel encouraged me to walk around downtown SF. I should have gone earlier and rented a bike (shop closes at 6pm.)
]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/08/%e0%ae%ae%e0%af%81%e0%ae%a4%e0%ae%b1%e0%af%8d-%e0%ae%aa%e0%ae%95%e0%af%8d%e0%ae%95%e0%ae%ae%e0%af%8d/">&lt;p&gt;I came across a pure Tamil URL today: &lt;a href="http://உதாரணம்.பரிட்சை/முதற்_பக்கம்"&gt;http://உதாரணம்.பரிட்சை/முதற்_பக்கம்&lt;/a&gt;. Searching for such website is hard if ones doesn&amp;#8217;t know how to type these.&lt;/p&gt;

&lt;p&gt;In other news, lack of WiFi at my hotel encouraged me to walk around downtown SF. I should have gone earlier and rented a bike (shop closes at 6pm.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/TR_c3CynI3Y" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/%e0%ae%ae%e0%af%81%e0%ae%a4%e0%ae%b1%e0%af%8d-%e0%ae%aa%e0%ae%95%e0%af%8d%e0%ae%95%e0%ae%ae%e0%af%8d/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/08/%e0%ae%ae%e0%af%81%e0%ae%a4%e0%ae%b1%e0%af%8d-%e0%ae%aa%e0%ae%95%e0%af%8d%e0%ae%95%e0%ae%ae%e0%af%8d/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Hot Chips 20]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/hot-chips-20/" />
		<id>http://ergodicity.iamganesh.com/?p=256</id>
		<updated>2008-08-21T07:56:57Z</updated>
		<published>2008-08-21T07:56:57Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Activity" /><category scheme="http://ergodicity.iamganesh.com" term="Computing" /><category scheme="http://ergodicity.iamganesh.com" term="conference" /><category scheme="http://ergodicity.iamganesh.com" term="de shaw" /><category scheme="http://ergodicity.iamganesh.com" term="dot products" /><category scheme="http://ergodicity.iamganesh.com" term="larrabee" /><category scheme="http://ergodicity.iamganesh.com" term="silicon valley" /><category scheme="http://ergodicity.iamganesh.com" term="zymeworks" />		<summary type="html"><![CDATA[I&#8217;ll be at Stanford for the next few days for Hot Chips 20, a symposium on high performance chips. Sessions I&#8217;m particularly interested in:


D.E. Shaw&#8217;s specialized ASIC for molecular dynamics which I&#8217;ve written about earlier and IBM&#8217;s PowerXCell powering Roadrunner.
Upcoming architectures: AMD&#8217;s 780G and Intel&#8217;s Nehalem (dot products of special interest to me.)
Chips tuned for [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/08/hot-chips-20/">&lt;p&gt;I&amp;#8217;ll be at Stanford for the next few days for &lt;a href="http://www.hotchips.org/hc20/"&gt;Hot Chips 20&lt;/a&gt;, a symposium on high performance chips. Sessions I&amp;#8217;m particularly interested in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;D.E. Shaw&amp;#8217;s specialized ASIC for molecular dynamics which I&amp;#8217;ve written about &lt;a href="http://ergodicity.iamganesh.com/2007/08/10/anton/"&gt;earlier&lt;/a&gt; and IBM&amp;#8217;s PowerXCell powering &lt;a href="http://en.wikipedia.org/wiki/IBM_Roadrunner"&gt;Roadrunner&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Upcoming architectures: AMD&amp;#8217;s 780G and Intel&amp;#8217;s Nehalem (&lt;a href="http://ergodicity.iamganesh.com/2007/03/29/streaming-instructions/"&gt;dot products of special interest to me&lt;/a&gt;.)&lt;/li&gt;
&lt;li&gt;Chips tuned for network or IO (Sun&amp;#8217;s Rock, Fujitsu&amp;#8217;s SPARC64VII and Intel&amp;#8217;s Tukwila.)&lt;/li&gt;
&lt;li&gt;Algorithmic content: Roofline models for automatic tuning of kernels (good addition to Demmel&amp;#8217;s talk on the future of linear algebra from MMDS.)&lt;/li&gt;
&lt;li&gt;Intel&amp;#8217;s Larrabee: response to &amp;#8220;&lt;a href="http://www.engadget.com/2008/04/10/ce-oh-no-he-didnt-part-lv-nvidia-ceo-says-were-going-to-ope/"&gt;the can of whoop-ass&lt;/a&gt;&amp;#8221; (detailed &lt;a href="http://softwarecommunity.intel.com/UserFiles/en-us/File/larrabee_manycore.pdf"&gt;architectural paper&lt;/a&gt; from SIGRAPH.) &lt;/li&gt;
&lt;li&gt;CUDA: useful for a class of algorithms (based on memory access.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I&amp;#8217;m going to be trying something new this time &amp;#8212; live blogging. I&amp;#8217;ll try to push constant updates to my twitter stream : &lt;a href="http://twitter.com/gane5h"&gt;gane5h&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll be staying at the Sheraton in Palo Alto. Drop me a line if you want to meetup for a chat.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/qUNXENlom4Y" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/hot-chips-20/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/08/hot-chips-20/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[iPhone Review]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/iphone-review/" />
		<id>http://ergodicity.iamganesh.com/?p=309</id>
		<updated>2008-08-15T22:03:59Z</updated>
		<published>2008-08-15T22:45:04Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Design" /><category scheme="http://ergodicity.iamganesh.com" term="apple" /><category scheme="http://ergodicity.iamganesh.com" term="iphone" /><category scheme="http://ergodicity.iamganesh.com" term="phone" />		<summary type="html"><![CDATA[

I&#8217;m now a proud owner of an Apple iPhone 3G. There are tons of reviews out there that you can lookup, but here&#8217;s mine with the purpose of getting-shit-done:

Pros:


The easiest phone on the planet. This has got to be one of the most usable devices I&#8217;ve ever used. Everything from looking up contacts, syncing, WiFi [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/08/iphone-review/">&lt;p&gt;&lt;img src="http://ergodicity.iamganesh.com/wp-content/uploads/2008/08/iphone3g-300x158.jpg" alt="" title="iphone3g" width="300" height="158" class="alignright size-medium wp-image-355" /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m now a proud owner of an Apple iPhone 3G. There are tons of reviews out there that you can lookup, but here&amp;#8217;s mine with the purpose of &lt;em&gt;getting-shit-done&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The easiest phone on the planet. This has got to be one of the most usable devices I&amp;#8217;ve ever used. Everything from looking up contacts, syncing, WiFi is so easy.&lt;/li&gt;
&lt;li&gt;Native syncing with Exchange. Hate duplicate copies of my contacts.&lt;/li&gt;
&lt;li&gt;Inbuilt music player.&lt;/li&gt;
&lt;li&gt;Seamless integration with my Mac.&lt;/li&gt;
&lt;li&gt;Volume controls as physical buttons on the outside unlike the iPod Touch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The touch screen is &amp;#8220;cool&amp;#8221; for a few minutes but not usable. I regularly lookup information on my phone while driving &amp;#8212; this practice will now have to stop. &lt;/li&gt;
&lt;li&gt;Web browsing on the phone isn&amp;#8217;t even marginally useful for me.&lt;/li&gt;
&lt;li&gt;GPS isn&amp;#8217;t very good. That&amp;#8217;s OK because I got a real GPS unit.&lt;/li&gt;
&lt;li&gt;50% battery charge in two days. Wow. In a year, I&amp;#8217;ll need to keep the phone plugged in at all times.&lt;/li&gt;
&lt;li&gt;Sluggish. Skips music when syncing contacts.&lt;/li&gt;
&lt;li&gt;The alarm module is less useful than my 4 year Nokia phone.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/86oHjGTxep0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/iphone-review/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/08/iphone-review/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Fast Determinant Calculation]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/fast-determinant-calculation/" />
		<id>http://ergodicity.iamganesh.com/?p=310</id>
		<updated>2008-08-15T06:59:30Z</updated>
		<published>2008-08-14T22:54:00Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Computing" /><category scheme="http://ergodicity.iamganesh.com" term="algorithm" /><category scheme="http://ergodicity.iamganesh.com" term="determinant" /><category scheme="http://ergodicity.iamganesh.com" term="linear algebra" /><category scheme="http://ergodicity.iamganesh.com" term="math" /><category scheme="http://ergodicity.iamganesh.com" term="matrix decomposition" />		<summary type="html"><![CDATA[Someone came to me recently for some help on computing determinants. Determinants of 2&#215;2 and 3&#215;3 and maybe even 4&#215;4 matrices are trivial and you can easily hard code the expanded symbolic form. Determinants of bigger matrices are much harder and require careful thought. 

First some rules:


Singular matrices have determinant zero. Simple, but often overlooked.
If [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/08/fast-determinant-calculation/">&lt;p&gt;Someone came to me recently for some help on computing determinants. Determinants of 2&amp;#215;2 and 3&amp;#215;3 and maybe even 4&amp;#215;4 matrices are trivial and you can easily hard code the expanded symbolic form. Determinants of bigger matrices are much harder and require careful thought. &lt;/p&gt;

&lt;p&gt;First some rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Singular matrices have determinant zero. Simple, but often overlooked.&lt;/li&gt;
&lt;li&gt;If you require a spectral decomposition at a later stage, the easiest is the product of the eigenvalues (the &lt;a href="http://matrixcookbook.com/"&gt;matrix cookbook&lt;/a&gt; is a handy reference.)&lt;/li&gt;
&lt;li&gt;For triangular matrices, it&amp;#8217;s the product of the diagonal entries.&lt;/li&gt;
&lt;li&gt;The determinant of the product of two matrices is the product of their determinants.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using the above rules, the first step is to factor your matrix into two triangular matrices. The LU decomposition achieves this. In general, a permutation matrix allows all ones on the diagonal of L. If you only care about the absolute value of the determinant, simply computing the product of the diagonal values of U gets you the determinant.&lt;/p&gt;

&lt;p&gt;If your matrix is symmetric and positive definite, then you can use a specialization known as Cholesky decomposition which makes L the transpose of U (doing half the work with half the storage.) The determinant is then the product of the square of the diagonal elements. Diffusion tensors are covariance matrices (symmetric, positive definite) and so this decomposition always applies.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/gfFOwDpmmSA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/fast-determinant-calculation/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/08/fast-determinant-calculation/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Modern Massive Data Sets Reflections]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/modern-massive-data-sets-reflections/" />
		<id>http://ergodicity.iamganesh.com/?p=311</id>
		<updated>2008-08-22T16:57:01Z</updated>
		<published>2008-08-13T22:54:57Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Activity" /><category scheme="http://ergodicity.iamganesh.com" term="Computing" /><category scheme="http://ergodicity.iamganesh.com" term="algorithm" /><category scheme="http://ergodicity.iamganesh.com" term="conference" /><category scheme="http://ergodicity.iamganesh.com" term="math" /><category scheme="http://ergodicity.iamganesh.com" term="mmds" /><category scheme="http://ergodicity.iamganesh.com" term="stanford" />		<summary type="html"><![CDATA[The workshop was a blast! I had an incredible time getting up to speed on the latest and greatest in data analysis research. It was quite humbling to brush shoulders with some of top folks pushing the frontiers of science. There were also many opportunities to network where I could get a peek at the [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/08/modern-massive-data-sets-reflections/">&lt;p&gt;The &lt;a href="http://www.stanford.edu/group/mmds/"&gt;workshop&lt;/a&gt; was a blast! I had an incredible time getting up to speed on the latest and greatest in data analysis research. It was quite humbling to brush shoulders with some of top folks pushing the frontiers of science. There were also many opportunities to network where I could get a peek at the motivations behind some of the projects presented.&lt;/p&gt;

&lt;p&gt;Each day had a theme:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data Analysis and Data Applications&lt;/li&gt;
&lt;li&gt;Networked Data and Algorithmic Tools&lt;/li&gt;
&lt;li&gt;Statistical, Geometric, and Topological Methods&lt;/li&gt;
&lt;li&gt;Machine Learning and Dimensionality Reduction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The breadth of topics was quite exhaustive. I mostly pushed my own agenda: streaming algorithms. There&amp;#8217;s so much to write here that I won&amp;#8217;t even attempt to. &lt;/p&gt;

&lt;p&gt;Besides streaming algorithms, the presentations on mathematical topics were really interesting. Some of it I&amp;#8217;ve previously seen from my day-to-day work, some of it was new. Of particular interest to me were the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Graph Sparsification : Never seen anything like this before.&lt;/li&gt;
&lt;li&gt;Massive Terrain Data : Real smart use of offline datastrutures.&lt;/li&gt;
&lt;li&gt;Symmetries in point cloud data : I&amp;#8217;m intimately familiar with this style of mathematics from my &lt;a href="http://ergodicity.iamganesh.com/projects/fluid-match/"&gt;previous work&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Pathway Analysis in Protein Folding : Puts bread on the table.&lt;/li&gt;
&lt;li&gt;Intersection SVMs : Didn&amp;#8217;t know this was a well known concept in machine learning known as the &lt;a href="http://en.wikipedia.org/wiki/Kernel_trick"&gt;kernel trick&lt;/a&gt;. Goes by &lt;a href="http://en.wikipedia.org/wiki/Reproducing_kernel_Hilbert_space"&gt;Reproducing Kernel Hilbert Space&lt;/a&gt; in my neck of the woods and also a precursor to the above mentioned image matching algorithm.&lt;/li&gt;
&lt;li&gt;Manifold regularization : Fréchet means anyone?&lt;/li&gt;
&lt;li&gt;Sufficient Dimension Reduction&lt;/li&gt;
&lt;li&gt;Semi-definite programming : Some mathematical insights to a couple of engineering problems (where &amp;lt;1e-4 is good enough) that&amp;#8217;s making my life difficult.&lt;/li&gt;
&lt;li&gt;Spectral Algorithms&lt;/li&gt;
&lt;li&gt;Matrix/Tensor Factorization&lt;/li&gt;
&lt;li&gt;Future of Parallel Linear Algebra&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to my friend Krishna who let me sleep on the floor in his house, thereby saving me from the grips of boredom.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/cCDpNV5FQOs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/08/modern-massive-data-sets-reflections/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/08/modern-massive-data-sets-reflections/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Modern Massive Data Sets]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/06/modern-massive-data-sets/" />
		<id>http://ergodicity.iamganesh.com/?p=207</id>
		<updated>2008-06-19T21:36:53Z</updated>
		<published>2008-06-20T02:42:38Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Computing" /><category scheme="http://ergodicity.iamganesh.com" term="algorithm" /><category scheme="http://ergodicity.iamganesh.com" term="conference" /><category scheme="http://ergodicity.iamganesh.com" term="data streams" /><category scheme="http://ergodicity.iamganesh.com" term="mmds" /><category scheme="http://ergodicity.iamganesh.com" term="randomization" /><category scheme="http://ergodicity.iamganesh.com" term="stanford" />		<summary type="html"><![CDATA[I&#8217;m excited about the Workshop on Modern Massive Data Sets I&#8217;ll be attending next week at Stanford. 

The 2008 Workshop on Algorithms for Modern Massive Data Sets (MMDS 2008) will address algorithmic, mathematical, and statistical challenges in modern statistical data analysis. The goals of MMDS 2008 are to explore novel techniques for modeling and analyzing [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/06/modern-massive-data-sets/">&lt;p&gt;I&amp;#8217;m excited about the &lt;a href="http://www.stanford.edu/group/mmds/"&gt;Workshop on Modern Massive Data Sets&lt;/a&gt; I&amp;#8217;ll be attending next week at Stanford. &lt;/p&gt;

&lt;blockquote&gt;The 2008 Workshop on Algorithms for Modern Massive Data Sets (MMDS 2008) will address algorithmic, mathematical, and statistical challenges in modern statistical data analysis. The goals of MMDS 2008 are to explore novel techniques for modeling and analyzing massive, high-dimensional, and nonlinearly-structured scientific and internet data sets, and to bring together computer scientists, statisticians, mathematicians, and data analysis practitioners to promote cross-fertilization of ideas.&lt;/blockquote&gt;

&lt;p&gt;These are my notes (disclaimer: I&amp;#8217;m no expert, corrections are welcome.)&lt;/p&gt;

&lt;p&gt;Most algorithm engineers thus far are happy with algorithms that are linear, i.e., &lt;img src='http://ergodicity.iamganesh.com/wp-content/latexrenderer/pictures/a6e200f05467fb069772a59842a9f43d.gif' title='\mathcal{O}(n)' alt='\mathcal{O}(n)' align='middle' /&gt; in the number of data points in the dataset. With web-scale data, linear is not good enough: &lt;strong&gt;sub-linear&lt;/strong&gt; is required. These streams of data are typically unbounded and do not fit in main memory. They cannot even be stored, as it is infeasible to go back and reload them.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;Frequency Problem&lt;/em&gt; is used as a model problem over data streams, for example, computing means/variances, medians, top-k frequent items, distinct elements etc. One approach is to approximate the computation over the stream via random sampling. &lt;/p&gt;

&lt;p&gt;There are four topics that keep recurring when looking at proofs of streaming algorithms using randomization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Markov's_inequality"&gt;Markov&amp;#8217;s inequality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chebyshev's_inequality"&gt;Chebyschev’s inequality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/H%C3%B6lder's_inequality"&gt;Holder’s inequality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chernoff_bound"&gt;Chernoff bounds&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is really key. As an example, suppose we wanted to run some complicated algorithm (offline) over the packets flowing through a router. As this would a huge number of packets, we won&amp;#8217;t have the luxury of storing all packets, but only a subset. By sampling the packets with probability &lt;code&gt;p&lt;/code&gt;, we can estimate the amount of memory required to store the packets as the expectation value of the &lt;a href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;binomial variable&lt;/a&gt; with parameter &lt;code&gt;p&lt;/code&gt; and &lt;code&gt;n&lt;/code&gt;, where &lt;code&gt;n&lt;/code&gt; is the number of packets going through the router.&lt;/p&gt;

&lt;p&gt;The use of one of the bounds over the other is a matter of how tight the bound is. The Markov inequality only uses the expectation value of the random variable while the other use higher moments. They do this by using the Markov inequality to a moment generating function &lt;code&gt;exp(tX)&lt;/code&gt; of the random variable &lt;code&gt;X&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ll want to check the &lt;a href="http://www.stanford.edu/group/mmds/draft.html"&gt;preliminary program&lt;/a&gt; for the kind of topics that are going to be covered. While you are at it, check out the &lt;a href="http://www.stanford.edu/group/mmds/mmds2006.html"&gt;workshop webpage from 2006&lt;/a&gt;. I&amp;#8217;ll go find something to wipe the drool off my chin&amp;#8230;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/3BifWr--ets" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/06/modern-massive-data-sets/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/06/modern-massive-data-sets/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	</entry>
		<entry>
		<author>
			<name>ganesh</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Gromacs Workshop]]></title>
		<link rel="alternate" type="text/html" href="http://ergodicity.iamganesh.com/2008/06/gromacs-workshop/" />
		<id>http://ergodicity.iamganesh.com/?p=23</id>
		<updated>2008-06-18T16:11:37Z</updated>
		<published>2008-06-18T13:54:10Z</published>
		<category scheme="http://ergodicity.iamganesh.com" term="Activity" /><category scheme="http://ergodicity.iamganesh.com" term="Physics" /><category scheme="http://ergodicity.iamganesh.com" term="conference" /><category scheme="http://ergodicity.iamganesh.com" term="gromacs" /><category scheme="http://ergodicity.iamganesh.com" term="molecular dynamics" /><category scheme="http://ergodicity.iamganesh.com" term="supercomputing" />		<summary type="html"><![CDATA[I know some of my readers are deeply interested in high performance computing and computational physics: this is a post for them. The conference I had mentioned in my previous post was the GROMACS Workshop on Advanced Simulation Methods.

Gromacs is a high performance simulation engine primarily for solving Newtonian dynamics (it also does normal mode [...]]]></summary>
		<content type="html" xml:base="http://ergodicity.iamganesh.com/2008/06/gromacs-workshop/">&lt;p&gt;I know some of my readers are deeply interested in high performance computing and computational physics: this is a post for them. The conference I had mentioned in my &lt;a href="http://ergodicity.iamganesh.com/2008/06/17/silicon-valley/"&gt;previous post&lt;/a&gt; was the &lt;a href="http://www.gromacs.org/stanford2008/"&gt;GROMACS Workshop on Advanced Simulation Methods&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Gromacs is a high performance simulation engine primarily for solving Newtonian dynamics (it also does &lt;a href="http://en.wikipedia.org/wiki/Normal_mode"&gt;normal mode analysis&lt;/a&gt;, structure minimization and mixed molecular mechanics-quantum mechanics simulations.) It was an industry leader in terms of raw single processor performance for many years, until Desmond from D.E. Shaw Research took over with their super-scalable algorithms (I&amp;#8217;ve written about this &lt;a href="http://ergodicity.iamganesh.com/2006/11/28/fast-molecular-dynamics/"&gt;before&lt;/a&gt;.) With Gromacs 4.0, they&amp;#8217;ve fixed the scalability problems and with a variety of other algorithmic fixes, they are the top dog once again. &lt;strong&gt;Disclaimer&lt;/strong&gt;: these are all claims by relevant parties and I have not verified them myself, though I&amp;#8217;d love to do so unencumbered. Though the Gromacs 4.0 paper is published, I&amp;#8217;ll only be writing about it when the actual product is released.&lt;/p&gt;

&lt;p&gt;The focus of the workshop was on algorithms, though there were some applications too. I&amp;#8217;m sure an applications person would have felt out of place, but I felt I had something to contribute in almost every topic that was discussed. I&amp;#8217;m archiving the list of topics here for posterity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The new domain decomposition parallelization in Gromacs 4.0, with some tips &amp;amp; tricks to get the most out of your hardware&lt;/li&gt;
&lt;li&gt;Different methods to perform free energy calculations. Slow-growth, perturbations, Bennett Acceptance Ratio. Which protocol is most efficient, and what new things will be in Gromacs 4.0?&lt;/li&gt;
&lt;li&gt;QM/MM. How do you mix Quantum Mechanics with Gromacs?&lt;/li&gt;
&lt;li&gt;Virtual sites for hydrogen motion removal and long time-steps&lt;/li&gt;
&lt;li&gt;Membrane protein simulations&lt;/li&gt;
&lt;li&gt;Replica exchange, and extracting kinetic data from it&lt;/li&gt;
&lt;li&gt;Local pressure extensions to Gromacs&lt;/li&gt;
&lt;li&gt;Gromacs source code walk-through&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The take home message: strong coupling between various pieces of the algorithm is anti-thesis to parallel scalability. The CPU industry seems to have hit a brick wall in terms of improving raw computational speed: the future is in multi-core. Therefore, remove the coupling with better algorithms and you are on your way to highly scalable and by definition superbly fast algorithms. &lt;/p&gt;

&lt;p&gt;The timestep used in an integrator while solving a set of equations inherently determines the speed of the algorithm. Big timesteps will make the algorithm unstable as you your trajectory will not be able to follow the phase space manifold accurately (as a side note Euler-type integrators also become unstable as you make the timestep smaller, but this is the least of your worries with a non-symplectic integrator.) The Nyquist theorem determines the sampling rate, so removing fast (or high frequency) degrees of motion such as hydrogen bond vibrations with constraints on them is required for a big timestep. Usual constraints algorithms are coupled leading to undesirable non-scalable algorithms. The Gromacs developers have solved this with a new constraints algorithm called &lt;a href="http://pubs.acs.org/cgi-bin/abstract.cgi/jctcce/2008/4/i01/abs/ct700200b.html"&gt;P-LINCS&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/GaneshSwami/~4/FBpAjRzcmDo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://ergodicity.iamganesh.com/2008/06/gromacs-workshop/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ergodicity.iamganesh.com/2008/06/gromacs-workshop/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	</entry>
	</feed>

