<?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>Jarred Capellman</title>
	<atom:link href="http://www.jarredcapellman.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jarredcapellman.com</link>
	<description>Putting 1s and 0s to work since 1995</description>
	<lastBuildDate>Tue, 15 May 2012 11:28:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>More jcBench Results</title>
		<link>http://www.jarredcapellman.com/2012/05/15/more-jcbench-results/</link>
		<comments>http://www.jarredcapellman.com/2012/05/15/more-jcbench-results/#comments</comments>
		<pubDate>Tue, 15 May 2012 11:28:21 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[jcBENCH]]></category>
		<category><![CDATA[jcbench expanded results of mips vs amd]]></category>
		<category><![CDATA[mips vs amd]]></category>
		<category><![CDATA[mips vs amd cpu performance]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1217</guid>
		<description><![CDATA[Got some more results add to the comparison: Tonight I am hoping to add a quick comparison page so anyone could ask, well how does a Dual 600mhz Octane perform against a 600mhz O2?]]></description>
			<content:encoded><![CDATA[<p>Got some more results add to the comparison:</p>
<div id="attachment_1218" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/05/jcBenchExpandedInteger.png" rel="lightbox[1217]" title="jcBench Expanded Integer Results - 5/15/2012"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/05/jcBenchExpandedInteger-300x142.png" alt="" title="jcBench Expanded Integer Results - 5/15/2012" width="300" height="142" class="size-medium wp-image-1218" /></a><p class="wp-caption-text">jcBench Expanded Integer Results - 5/15/2012</p></div>
<div id="attachment_1219" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/05/jcBenchExpandedFloatingPoint.png" rel="lightbox[1217]" title="jcBench Expanded Floating Point Results - 5/15/2012"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/05/jcBenchExpandedFloatingPoint-300x126.png" alt="" title="jcBench Expanded Floating Point Results - 5/15/2012" width="300" height="126" class="size-medium wp-image-1219" /></a><p class="wp-caption-text">jcBench Expanded Floating Point Results - 5/15/2012</p></div>
<p>Tonight I am hoping to add a quick comparison page so anyone could ask, well how does a Dual 600mhz Octane perform against a 600mhz O2?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/05/15/more-jcbench-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jcGE News</title>
		<link>http://www.jarredcapellman.com/2012/05/09/jcge-news/</link>
		<comments>http://www.jarredcapellman.com/2012/05/09/jcge-news/#comments</comments>
		<pubDate>Thu, 10 May 2012 02:50:03 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[jcGE]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[game engine]]></category>
		<category><![CDATA[irix game programming]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[opengl 3d engine]]></category>
		<category><![CDATA[opentk]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1212</guid>
		<description><![CDATA[About a year ago I started work on a new 3D game engine, while originally it was just foray into WPF, it turned into using OpenGL and C# using OpenTK. Eventually this turned into a dead end as I had too high ambitions. A year later (really more like 15 years later), I finally have [...]]]></description>
			<content:encoded><![CDATA[<p>About a year ago I started work on a new 3D game engine, while originally it was just foray into WPF, it turned into using OpenGL and C# using OpenTK.  Eventually this turned into a dead end as I had too high ambitions.  A year later (really more like 15 years later), I finally have come up with a more reasonable game plan to create an iterative approach.</p>
<p>Following id software's technology jumps starting with Wolfenstein 3D and hopefully one day hit Quake III level of tech.  </p>
<p>So the initial features will be:</p>
<ol>
<li>90' Walls, Floors and Ceilings</li>
<li>Clipping</li>
<li>Texture Mapping with MIP-Mapping Support</li>
<li>OpenGL Rendering with SDL for Window Management</li>
<li>IRIX and Windows Ports</li>
</ol>
<p>I started work on the base level editor tonight:</p>
<div id="attachment_1213" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/05/jcGEDitor.png" rel="lightbox[1212]" title="jcGEDitor WIP"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/05/jcGEDitor-300x227.png" alt="" title="jcGEDitor WIP" width="300" height="227" class="size-medium wp-image-1213" /></a><p class="wp-caption-text">jcGEDitor WIP</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/05/09/jcge-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIPS vs AMD Floating Point Performance</title>
		<link>http://www.jarredcapellman.com/2012/04/23/mips-vs-amd-floating-point-performance/</link>
		<comments>http://www.jarredcapellman.com/2012/04/23/mips-vs-amd-floating-point-performance/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 01:36:33 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[jcBENCH]]></category>
		<category><![CDATA[amd versus mips floating point]]></category>
		<category><![CDATA[amd vs mips testing]]></category>
		<category><![CDATA[jcbench results]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1104</guid>
		<description><![CDATA[Below are some interesting results of the floating point performance differences between MIPS and AMD cpus. The biggest thing to note, is the effect Level 2 cache has on Floating Point performance. The 4mb Level 2 cache in the R16000, clearly helps to compensate for the massive difference in clock speed. Nearly a 1 to [...]]]></description>
			<content:encoded><![CDATA[<p>Below are some interesting results of the floating point performance differences between MIPS and AMD cpus.</p>
<div id="attachment_1105" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/jcBench-Floating-Point.png" rel="lightbox[1104]" title="jcBench Floating Point Performance"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/jcBench-Floating-Point-300x130.png" alt="" title="jcBench Floating Point Performance" width="300" height="130" class="size-medium wp-image-1105" /></a><p class="wp-caption-text">jcBench Floating Point Performance</p></div>
<p>The biggest thing to note, is the effect Level 2 cache has on Floating Point performance.</p>
<p>The 4mb Level 2 cache in the R16000, clearly helps to compensate for the massive difference in clock speed.  Nearly a 1 to 1 relationship between a the 6x3.2ghz Phenom II and the 4x800 MIPS R16k.</p>
<p>So bottom line, Level 2 cache makes up for megahertz almost by a factor of 4 in these cases.  It's a shame the fastest MIPS R16000 only ran at 1ghz and is extremely rare.</p>
<p>More benchmarking later this week...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/23/mips-vs-amd-floating-point-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expanded MIPS vs AMD Integer Performance Comparison</title>
		<link>http://www.jarredcapellman.com/2012/04/23/expanded-mips-vs-amd-integer-performance-comparison/</link>
		<comments>http://www.jarredcapellman.com/2012/04/23/expanded-mips-vs-amd-integer-performance-comparison/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 23:34:28 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[jcBENCH]]></category>
		<category><![CDATA[jcbench integer results]]></category>
		<category><![CDATA[mips vs amd performance]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1101</guid>
		<description><![CDATA[I was able to add several more machines to the comparison with the help of a friend over at Nekochan. Very interesting how MIPS scales and how much of a difference 100mhz and double the Level 2 cache makes an effect on speed.]]></description>
			<content:encoded><![CDATA[<p>I was able to add several more machines to the comparison with the help of a friend over at <a href="http://www.nekochan.net" title="Nekochan" target="_blank">Nekochan</a>.</p>
<div id="attachment_1102" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/jcBench-Integer-Comparison-2.png" rel="lightbox[1101]" title="jcBench Integer Comparison 2"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/jcBench-Integer-Comparison-2-300x129.png" alt="" title="jcBench Integer Comparison 2" width="300" height="129" class="size-medium wp-image-1102" /></a><p class="wp-caption-text">jcBench Integer Comparison 2</p></div>
<p>Very interesting how MIPS scales and how much of a difference 100mhz and double the Level 2 cache makes an effect on speed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/23/expanded-mips-vs-amd-integer-performance-comparison/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jcBench 0.2 performance numbers and analysis (Integer performance across the board for AMD vs MIPS)</title>
		<link>http://www.jarredcapellman.com/2012/04/22/interesting-performance-numbers-and-analysis/</link>
		<comments>http://www.jarredcapellman.com/2012/04/22/interesting-performance-numbers-and-analysis/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 17:32:23 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[jcBENCH]]></category>
		<category><![CDATA[amd integer performance]]></category>
		<category><![CDATA[amd mobile versus amd desktop]]></category>
		<category><![CDATA[amd versus amd cpus]]></category>
		<category><![CDATA[amd versus mips r14000]]></category>
		<category><![CDATA[c-50 benchmarks]]></category>
		<category><![CDATA[jcbench]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1096</guid>
		<description><![CDATA[Just finished getting the features for jcBench 0.2 completed. The big addition is the separate test of integer and floating point numbers. The reason for the addition of this test is that I heard years ago that the size of Level 2 cache directly affected performance of Floating Point operations. You would always hear of [...]]]></description>
			<content:encoded><![CDATA[<p>Just finished getting the features for jcBench 0.2 completed.  The big addition is the separate test of integer and floating point numbers.  The reason for the addition of this test is that I heard years ago that the size of Level 2 cache directly affected performance of Floating Point operations.  You would always hear of the RISC cpus having several MegaBytes of cache, while my first 1ghz Athlon (Thunderbird), December 2000 only had 256kb.  As I get older, I get more and more scrupulous over things I hear now or had heard in the past thus the need for me to prove to myself one or the other.</p>
<p>I'm still working on going back and re-running the floating point tests so that will come later today, but here are the integer performance results.  Note the y-axis is the number of seconds taken to complete the test, so lower is better.<br />
<div id="attachment_1097" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/jcBench-integer-comparison.png" rel="lightbox[1096]" title="jcBench 0.2 integer comparison"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/jcBench-integer-comparison-300x168.png" alt="" title="jcBench 0.2 integer comparison" width="300" height="168" class="size-medium wp-image-1097" /></a><p class="wp-caption-text">jcBench 0.2 integer comparison</p></div></p>
<p>Kind of a wide range of CPUs, ranging from a netbook cpu in the C-50, to a mobile cpu in the P920 to desktops cpus. The differences based on my current findings vary much more greatly with floating point operations.</p>
<p>A key things I got from this data:</p>
<ol>
<li>Single Threaded, across the board was ridiculously slow, even with AMD's Turbo Core technology that ramps up a core or two and slows down the unused cores.  Another unsettling fact for developers that continue to not write parallel programs.</li>
<li>The biggest jump was from 1 thread to 2 threads across the board</li>
<li>MIPS R14000A 600mhz CPU is slightly faster than a C-50 in both single and 2 threaded tests.  Finally found a very near equal comparison, I'm wondering with the Turbo Core on the C-60 if it brings it inline.</li>
<li>numalink really does scale, even over the now not defined as "fast" numalink 3 connection, scaling it across 2 Origin 300s using all 8 cpus really did increase performance (44 seconds versus 12 seconds).</li>
</ol>
<p>More to come later today with floating point results...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/22/interesting-performance-numbers-and-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated version of jcBench coming soon and TPL/POSIX findings</title>
		<link>http://www.jarredcapellman.com/2012/04/21/updated-version-of-jcbench-coming-soon-and-tpl-posix-findings/</link>
		<comments>http://www.jarredcapellman.com/2012/04/21/updated-version-of-jcbench-coming-soon-and-tpl-posix-findings/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 12:29:20 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[jcBENCH]]></category>
		<category><![CDATA[irix and windows benchmarking]]></category>
		<category><![CDATA[jcbench]]></category>
		<category><![CDATA[mips vs amd]]></category>
		<category><![CDATA[porting C# to c]]></category>
		<category><![CDATA[porting tpl to posix]]></category>
		<category><![CDATA[posix for C# programmers]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1092</guid>
		<description><![CDATA[Just got the initial C port of jcBench completed. Right now there are IRIX 6.5 MIPS IV and Win32 x86 binaries working, I'm hoping to add additional functionality and then merge back in the changes I made to the original 4 platforms. I should note the performance numbers between the 2 will not be comparable. [...]]]></description>
			<content:encoded><![CDATA[<p>Just got the initial C port of <a href="http://www.jarredcapellman.com/jcbench-2/" title="jcBENCH" target="_blank">jcBench</a> completed.  Right now there are IRIX 6.5 MIPS IV and Win32 x86 binaries working, I'm hoping to add additional functionality and then merge back in the changes I made to the original 4 platforms.  I should note the performance numbers between the 2 <strong>will not</strong> be comparable.  I rewrote the actual benchmarking algorithm to be solely integer based, that's not to say I won't add a floating point, but it made sense after porting the C# code to C.  That being said, after finding out a while back <a href="http://www.jarredcapellman.com/2012/04/07/details-on-how-the-task-parallel-library-actually-works/" title="Details on how the Task Parallel Library actually works…" target="_blank">on how Task Parallel Library (TPL) really works</a>, my implementation of multi-threading using POSIX, does things a little differently.</p>
<p>Where the TPL starts off with one thread and as it continues processing increases the threads dynamically, my implementation simply takes the number of threads specified via the command line, divides the work (in my case the number of objects) by the number of threads and kicks off the threads from the start.  While TPLs implementation is great for work that you don't know if it will really even hit the maximum number of cpus/cores efficiently, for my case it actually hinders performance.  I'm now wondering if you can specify from the start how many threads to kick off?  If not, Microsoft, maybe add support for that?  I've got a couple scenarios I know for instance would benefit from at least 4-8 threads initially, especially for data migration that I prefer to do in C# versus SSIS (call me a control freak).</p>
<p>Back to <a href="http://www.jarredcapellman.com/jcbench-2/" title="jcBENCH" target="_blank">jcBench</a>, at least with the current algorithm, it appears that a MIPS 600mhz R14000A with 4MB of L2 cache is roughly equivalent to a 1200mhz Phenom II with 512kb L2 cache and 6mb of L3 cache at least in Integer performance.  This is based on a couple runs of the new version of jcBench.  It'll be interesting to see with numalink if it continues this to 1 to 2 ratio.  I'm hoping to see how different generations of AMD cpus compare to the now 10 year old MIPS cpu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/21/updated-version-of-jcbench-coming-soon-and-tpl-posix-findings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silicon Graphics Origin 300 numalinked finally!</title>
		<link>http://www.jarredcapellman.com/2012/04/19/silicon-graphics-origin-300-numalinked-finally/</link>
		<comments>http://www.jarredcapellman.com/2012/04/19/silicon-graphics-origin-300-numalinked-finally/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 22:15:38 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[New Hardware/Software]]></category>
		<category><![CDATA[numalink]]></category>
		<category><![CDATA[origin 300 numalink]]></category>
		<category><![CDATA[SGI Origin 300]]></category>
		<category><![CDATA[silicon graphics origin 300 numalink]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1087</guid>
		<description><![CDATA[After waiting about a month in a half, I finally got a numalink cable so I could numalink together two Silicon Graphics Origin 300s. The idea behind numalink is that you can take multiple machines and link them together in a cluster. In my case, I now have a 8 way R14000A 600mhz and 8GB [...]]]></description>
			<content:encoded><![CDATA[<p>After waiting about a month in a half, I finally got a numalink cable so I could numalink together two Silicon Graphics Origin 300s.  The idea behind numalink is that you can take multiple machines and link them together in a cluster.  In my case, I now have a 8 way R14000A 600mhz and 8GB of ram Origin 300.</p>
<p>Like with many things I'm finding with Silicon Graphics machines it was pretty easy to setup.  I tried to document it all below.</p>
<p>First off I needed to update the "rack" position of my Slave (2nd) Origin 300:</p>
<pre class="brush: bash; title: ; notranslate">
001c01-L1&gt;brick slot 02
brick slot set to 02 (takes effect on next L1 reboot/power cycle)
001c01-L1&gt;reboot_l1

SGI SN1 L1 Controller
Firmware Image B: Rev. 1.44.0, Built 07/17/2006 18:20:38

001c02-L1&gt;
</pre>
<p>Next I needed to clear the serial based on the error I got:</p>
<pre class="brush: bash; title: ; notranslate">
001c02-L1&gt;

Not able to determine correct System Serial Number
001c02 == M2002931
Please use the command 'serial clear' on the brick which
  has the serial number you do not wish to keep

Not able to determine correct System Serial Number
001c16 == M2100250
Please use the command 'serial clear' on the brick which
  has the serial number you do not wish to keep

001c02-L1&gt;serial clear
</pre>
<p>Unplugged the power to both and then hooked them up with the numalink cable:<br />
<div id="attachment_1089" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000074.jpg" rel="lightbox[1087]" title="Silicon Graphics Origin 300s connected via numalink"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000074-225x300.jpg" alt="" title="Silicon Graphics Origin 300s connected via numalink" width="225" height="300" class="size-medium wp-image-1089" /></a><p class="wp-caption-text">Silicon Graphics Origin 300s connected via numalink</p></div></p>
<p>Then plugged both power cables back in and hit power button on both.  To my surprise upon starting up IRIX everything worked.</p>
<pre class="brush: bash; title: ; notranslate">
[SPEEDO2]:~ $ hinv -vm
Location: /hw/module/001c01/node
       IP45_4CPU Board: barcode MNS886     part 030-1797-001 rev -B
Location: /hw/module/001c01/Ibrick/xtalk/14
             IO8 Board: barcode MJX813     part 030-1673-003 rev -F
Location: /hw/module/001c01/Ibrick/xtalk/15
             IO8 Board: barcode MJX813     part 030-1673-003 rev -F
Location: /hw/module/001c02/node
       IP45_4CPU Board: barcode MNM964     part 030-1797-001 rev -B
Location: /hw/module/001c02/Ibrick/xtalk/14
             IO8 Board: barcode MHE546     part 030-1673-003 rev -E
Location: /hw/module/001c02/Ibrick/xtalk/15
             IO8 Board: barcode MHE546     part 030-1673-003 rev -E
8 600 MHZ IP35 Processors
CPU: MIPS R14000 Processor Chip Revision: 2.4
FPU: MIPS R14010 Floating Point Chip Revision: 2.4
CPU 0 at Module 001c01/Slot 0/Slice A: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0x1a
CPU 1 at Module 001c01/Slot 0/Slice B: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0x1a
CPU 2 at Module 001c01/Slot 0/Slice C: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0x1a
CPU 3 at Module 001c01/Slot 0/Slice D: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0x1a
CPU 4 at Module 001c02/Slot 0/Slice A: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0xa
CPU 5 at Module 001c02/Slot 0/Slice B: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0xa
CPU 6 at Module 001c02/Slot 0/Slice C: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0xa
CPU 7 at Module 001c02/Slot 0/Slice D: 600 Mhz MIPS R14000 Processor Chip (enabled)
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0xa
Main memory size: 8192 Mbytes
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 4 Mbytes
Memory at Module 001c01/Slot 0: 4096 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 3 contains 1024 MB (Premium) DIMMS (enabled)
Memory at Module 001c02/Slot 0: 4096 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 3 contains 1024 MB (Premium) DIMMS (enabled)
Integral SCSI controller 8: Version Fibre Channel LS949X Port 0
Integral SCSI controller 9: Version Fibre Channel LS949X Port 1
Integral SCSI controller 10: Version QL12160, low voltage differential
Integral SCSI controller 11: Version QL12160, low voltage differential
Integral SCSI controller 0: Version QL12160, low voltage differential
  Disk drive: unit 1 on SCSI controller 0 (unit 1)
Integral SCSI controller 1: Version QL12160, low voltage differential
Integral SCSI controller 12: Version QL12160, low voltage differential
Integral SCSI controller 13: Version QL12160, low voltage differential
IOC3/IOC4 serial port: tty5
IOC3/IOC4 serial port: tty6
IOC3/IOC4 serial port: tty7
IOC3/IOC4 serial port: tty8
Gigabit Ethernet: eg1, module 001c01, pci_bus 2, pci_slot 2, firmware version 0.0.0
Gigabit Ethernet: eg2, module 001c02, pci_bus 2, pci_slot 1, firmware version 0.0.0
Integral Fast Ethernet: ef0, version 1, module 001c01, pci 4
Fast Ethernet: ef1, version 1, module 001c02, pci 4
  PCI Adapter ID (vendor 0x1000, device 0x0640) PCI slot 1
  PCI Adapter ID (vendor 0x1000, device 0x0640) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0009) PCI slot 2
  PCI Adapter ID (vendor 0x10a9, device 0x0009) PCI slot 1
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0003) PCI slot 4
  PCI Adapter ID (vendor 0x11c1, device 0x5802) PCI slot 5
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0003) PCI slot 4
  PCI Adapter ID (vendor 0x11c1, device 0x5802) PCI slot 5
IOC3/IOC4 external interrupts: 1
IOC3/IOC4 external interrupts: 2
HUB in Module 001c01/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c02/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
IP35prom in Module 001c01/Slot n0: Revision 6.124
IP35prom in Module 001c02/Slot n0: Revision 6.210
USB controller: type OHCI
USB controller: type OHCI
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/19/silicon-graphics-origin-300-numalinked-finally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best way to aggregate strings into a delineated string in C#?</title>
		<link>http://www.jarredcapellman.com/2012/04/17/best-way-to-aggregate-strings-into-a-delineated-string-in-c/</link>
		<comments>http://www.jarredcapellman.com/2012/04/17/best-way-to-aggregate-strings-into-a-delineated-string-in-c/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 23:00:57 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C# csv]]></category>
		<category><![CDATA[csv to string C#]]></category>
		<category><![CDATA[delinated strings in C#]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1076</guid>
		<description><![CDATA[Even in 2012, I find myself exporting large quantities of data for reports or other needs that need additional aggregation or manipulation in C# that doesn't make sense to do in SQL. You've probably done something like this in your code since your C or C++ days: And most likely doing some manipulation otherwise it [...]]]></description>
			<content:encoded><![CDATA[<p>Even in 2012, I find myself exporting large quantities of data for reports or other needs that need additional aggregation or manipulation in C# that doesn't make sense to do in SQL.</p>
<p>You've probably done something like this in your code since your C or C++ days:</p>
<pre class="brush: csharp; title: ; notranslate">
string tmpStr = String.Empty;

foreach (contact c in contacts) {
    tmpStr += c.FirstName + &quot; &quot; + c.LastName + &quot;,&quot;;
}

return tmpStr;
</pre>
<p>And most likely doing some manipulation otherwise it would probably make more sense to simply concatenate the string in your SQL Query itself.</p>
<p>After thinking about it some more, I considered the following code instead:</p>
<pre class="brush: csharp; title: ; notranslate">
return string.Join(&quot;,&quot;, contacts.Select(a =&gt; a.FirstName + &quot; &quot; + a.LastName));
</pre>
<p>Simple, clean and faster?</p>
<p>On 10,000 <code>Contact</code> Entity Objects (averaged against 3 test runs):<br />
Traditional Method - 1.4050804 seconds<br />
Newer Method - 0.0270016 seconds</p>
<p>About 50 times faster to do the newer method, what about with an even larger dataset of 100,000?<br />
Traditional Method - 151.0996424 seconds<br />
Newer Method - 0.09200503 seconds</p>
<p>Nearly 1700 times faster to do the newer method, but now what about a smaller set of 1000?<br />
Traditional Method - 0.0410024 seconds<br />
Newer Method - 0.0160009 seconds</p>
<p>About 2 times faster.</p>
<p>In visual terms:<br />
<div id="attachment_1081" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/Traditional.png" rel="lightbox[1076]" title="Traditional vs Newer Method Test Results"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/Traditional-300x157.png" alt="" title="Traditional vs Newer Method Test Results" width="300" height="157" class="size-medium wp-image-1081" /></a><p class="wp-caption-text">Traditional vs Newer Method Test Results</p></div></p>
<p>This is far from a conclusive, in-depth test.  But for larger data sets or in a high traffic/high demand (like a WCF Call that returns a delineated <code>String</code> for instance), <code>string.Join</code> should be used instead.  That being said though, the data should be formatted properly ahead of time and any possible error (null values etc) should be considered a precondition to using <code>string.Join</code>.</p>
<p>For me, it really got my mind thinking about other small blocks of code that I had been stagnantly using over the years that could speed up intensive tasks, especially with the size of a lot of the results I parse through at work. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/17/best-way-to-aggregate-strings-into-a-delineated-string-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another Silicon Graphics Origin 300, but this time with L1 Problems&#8230;</title>
		<link>http://www.jarredcapellman.com/2012/04/14/another-silicon-graphics-origin-300-but-this-time-with-l1-problems/</link>
		<comments>http://www.jarredcapellman.com/2012/04/14/another-silicon-graphics-origin-300-but-this-time-with-l1-problems/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 17:19:45 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[New Hardware/Software]]></category>
		<category><![CDATA[origin 300]]></category>
		<category><![CDATA[origin 300 brick type]]></category>
		<category><![CDATA[origin 300 l1]]></category>
		<category><![CDATA[origin 300 l1 error]]></category>
		<category><![CDATA[sgi]]></category>
		<category><![CDATA[sgi origin 300 unknown brick type]]></category>
		<category><![CDATA[unknown brick type]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1067</guid>
		<description><![CDATA[Picked up another Silicon Graphics Origin 300 (Dual 600/4gb ram), swapped in my Quad 500 board, replaced the fans and began my fun filled adventure into L1 Land. Off the bat I was presented with: Upon hooking up my USB->Null Modem cable I checked the L1 Log: 001?01-L1>log 04/14/12 10:54:46 L1 booting 1.44.0 04/14/12 10:54:49 [...]]]></description>
			<content:encoded><![CDATA[<p>Picked up another Silicon Graphics Origin 300 (Dual 600/4gb ram), swapped in my Quad 500 board, replaced the fans and began my fun filled adventure into L1 Land.</p>
<div id="attachment_1070" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000049.jpg" rel="lightbox[1067]" title="My 2nd Silicon Graphics Origin 300"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000049-300x225.jpg" alt="" title="My 2nd Silicon Graphics Origin 300" width="300" height="225" class="size-medium wp-image-1070" /></a><p class="wp-caption-text">My 2nd Silicon Graphics Origin 300</p></div>
<div id="attachment_1068" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000050.jpg" rel="lightbox[1067]" title="Original Silicon Graphics Origin 300 Fans out..."><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000050-225x300.jpg" alt="" title="Original Silicon Graphics Origin 300 Fans out..." width="225" height="300" class="size-medium wp-image-1068" /></a><p class="wp-caption-text">Original Silicon Graphics Origin 300 Fans out...</p></div>
<div id="attachment_1071" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000051.jpg" rel="lightbox[1067]" title="Quad R14k 500 Swap completed"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000051-225x300.jpg" alt="" title="Quad R14k 500 Swap completed" width="225" height="300" class="size-medium wp-image-1071" /></a><p class="wp-caption-text">Quad R14k 500 Swap completed</p></div>
<div id="attachment_1072" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000052.jpg" rel="lightbox[1067]" title="Silicon Graphics Origin 300 1GB DDR Stick"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000052-300x225.jpg" alt="" title="Silicon Graphics Origin 300 1GB DDR Stick" width="300" height="225" class="size-medium wp-image-1072" /></a><p class="wp-caption-text">Silicon Graphics Origin 300 1GB DDR Stick</p></div>
<p>Off the bat I was presented with:<br />
<div id="attachment_1069" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000053.jpg" rel="lightbox[1067]" title="Silicon Graphics Origin 300 L1 - Unknown Brick Type!"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000053-300x225.jpg" alt="" title="Silicon Graphics Origin 300 L1 - Unknown Brick Type!" width="300" height="225" class="size-medium wp-image-1069" /></a><p class="wp-caption-text">Silicon Graphics Origin 300 L1 - Unknown Brick Type!</p></div></p>
<p>Upon hooking up my USB->Null Modem cable I checked the L1 Log:<br />
<code><br />
001?01-L1>log<br />
04/14/12 10:54:46 L1 booting 1.44.0<br />
04/14/12 10:54:49 ** fixing invalid SSN value<br />
04/14/12 10:54:49 ** fixing BSN mismatch<br />
04/14/12 11:13:53 L1 booting 1.44.0<br />
</code></p>
<p>So, good it auto-fixed the invalid SSN and BSN mismatch.<br />
<code><br />
001?01-L1>brick<br />
rack: 001, slot: 01, partition: none, type: Unknown [2MB flash], serial:MRH006, source: NVRAM<br />
</code></p>
<p>Good again, it sees the brick, but doesn't know what it is.</p>
<p>Then tried:<br />
<code><br />
001?01-L1>brick type C<br />
brick type changed (nvram) (takes effect on next L1 reboot/power cycle)<br />
001?01-L1>reboot_l1<br />
</code></p>
<p>Upon rebooting the L1, still not avail.  Going to have to get creative with this problem...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/14/another-silicon-graphics-origin-300-but-this-time-with-l1-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silicon Graphics Origin 300 Gigabit and Dual 4gb Fibre Channel Additions</title>
		<link>http://www.jarredcapellman.com/2012/04/12/silicon-graphics-origin-300-gigabit-and-dual-4gb-fibre-channel-additions/</link>
		<comments>http://www.jarredcapellman.com/2012/04/12/silicon-graphics-origin-300-gigabit-and-dual-4gb-fibre-channel-additions/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 00:41:29 +0000</pubDate>
		<dc:creator>Jarred Capellman</dc:creator>
				<category><![CDATA[New Hardware/Software]]></category>
		<category><![CDATA[origin 300 4gb fibre channel]]></category>
		<category><![CDATA[sgi 4gb fibre channel]]></category>
		<category><![CDATA[sgi fibre channel]]></category>
		<category><![CDATA[sgi gigabit]]></category>
		<category><![CDATA[silicon graphics origin 300 gigabit]]></category>

		<guid isPermaLink="false">http://www.jarredcapellman.com/?p=1062</guid>
		<description><![CDATA[Kind of scratching my head as to why Silicon Graphics didn't include gigabit on their IO8 PCI-X card that comes with an Origin 300. I guess maybe back in 2000-2001, the demand for gigabit Ethernet wasn't enough? Personally, I had just upgraded to Fast Ethernet (100mbit) if only half duplex on a Hub. Scored an [...]]]></description>
			<content:encoded><![CDATA[<p>Kind of scratching my head as to why Silicon Graphics didn't include gigabit on their IO8 PCI-X card that comes with an Origin 300.  I guess maybe back in 2000-2001, the demand for gigabit Ethernet wasn't enough?  Personally, I had just upgraded to Fast Ethernet (100mbit) if only half duplex on a Hub.</p>
<p>Scored an official Silicon Graphics Gigabit card off eBay for next to nothing, installed it with no problems and upon rebooting IRIX recognized it and am now only using the gigabit connection to the rest of my network.</p>
<div id="attachment_1063" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000021.jpg" rel="lightbox[1062]" title="Silicon Graphics Gigabit PCI-X Card"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000021-300x225.jpg" alt="" title="Silicon Graphics Gigabit PCI-X Card" width="300" height="225" class="size-medium wp-image-1063" /></a><p class="wp-caption-text">Silicon Graphics Gigabit PCI-X Card</p></div>
<p>Next up was another great find on eBay for ~$30 I got a Dual Channel 4gb LSI Logic PCI-X card that has built in IRIX support.  Just waiting on a PCI Express 4gb card to put into my SAN.</p>
<div id="attachment_1064" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000029.jpg" rel="lightbox[1062]" title="LSI Dual Channel 4gb Fibre Channel"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000029-225x300.jpg" alt="" title="LSI Dual Channel 4gb Fibre Channel" width="225" height="300" class="size-medium wp-image-1064" /></a><p class="wp-caption-text">LSI Dual Channel 4gb Fibre Channel</p></div>
<div id="attachment_1065" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000030.jpg" rel="lightbox[1062]" title="SGI Gigabit and LSI Logic Dual Channel 4gb Fibre PCI-X cards installed"><img src="http://www.jarredcapellman.com/wp-content/uploads/2012/04/WP_000030-225x300.jpg" alt="" title="SGI Gigabit and LSI Logic Dual Channel 4gb Fibre PCI-X cards installed" width="225" height="300" class="size-medium wp-image-1065" /></a><p class="wp-caption-text">SGI Gigabit and LSI Logic Dual Channel 4gb Fibre PCI-X cards installed</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jarredcapellman.com/2012/04/12/silicon-graphics-origin-300-gigabit-and-dual-4gb-fibre-channel-additions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

