<?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>Industry Best Practice is another way of saying "Follow the Herd" &#187; Tech</title>
	<atom:link href="http://www.hlynes.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hlynes.com</link>
	<description></description>
	<lastBuildDate>Sun, 18 Sep 2011 20:51:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Westminster Skeptics: The Revolution Will Be Digitized</title>
		<link>http://www.hlynes.com/2011/09/05/westminster-skeptics-the-revolution-will-be-digitized/</link>
		<comments>http://www.hlynes.com/2011/09/05/westminster-skeptics-the-revolution-will-be-digitized/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 21:49:44 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=341</guid>
		<description><![CDATA[After being in London for nearly a year I&#8217;ve finally managed to make it to a Westminster Skeptics in the Pub meeting. I was rewarded with an entertaining and thought-provoking talk by crusading journalist Heather Brooke. Based on her new &#8230; <a href="http://www.hlynes.com/2011/09/05/westminster-skeptics-the-revolution-will-be-digitized/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After being in London for nearly a year I&#8217;ve finally managed to make it to a <a href="http://westminster.skepticsinthepub.org/Event.aspx/732/The-Revolution-will-be-Digitised">Westminster Skeptics in the Pub</a> meeting. I was rewarded with an entertaining and thought-provoking talk by crusading journalist <a href="http://heatherbrooke.org/">Heather Brooke</a>. Based on her new book it focused on journalism in the digital age with examples from the MPs expenses scandal and the on-going saga of WikiLeaks. The spirited Q&#038;A that followed brought up a whole load of issues.</p>
<p>The key things that jumped out at me (in no particular order):</p>
<p>If we believe as a society that journalism is important for holding the powers that be to account, how are we going to pay for it? I have to say that I occasionally feel guilty about not subscribing to a daily newspaper, but then I remember that I really don&#8217;t want to pay for sports reporters and alternative health correspondents. What&#8217;s worse is that I&#8217;m an absolute news junky, so how does a news organisation turn someone like me into a customer? I have no answers here.</p>
<p>Something that came up a few times was the idea of journalists as filterers and synthesisers of information. The way way this was being described made me think of Librarians. This isn&#8217;t an insult, as a former denizen of academia I have had occasional dealings with real librarians; like Dragons they are of fearsome aspect, capable of deep magic and to be treated with the utmost respect. My gut feeling is that the real difference between a Librarian/Curator and a Journalist is narrative. </p>
<p>The issue of releasing redacted vs complete source material was circled around a few times. The whole business of redacted material bothers me quite a lot. Back when I had peripheral involvement in some medical data projects the topic of anonymisation of patient data was discussed quite a lot. If you anonymise clinical data properly you are allowed to store it for research purposes on networks that don&#8217;t meet the same security standards as the clinical network. The reason I mention this is that some research has been done on how much anonymous data you need before you can start identifying individuals. As I recall it needs rather less data that most people suppose. This makes makes the appropriate redaction of source material a difficult process. I&#8217;ll have to see if I can track down the papers I dimly remember on this subjects.</p>
<p>Which sadly brings us to the final question of the evening. Reading a book in an hour standing up in Waterstones and not buying it is not an indication of your intellectual prowess it&#8217;s an indication that you are an arse. Also, if you are going to insult the speaker please try to articulate an actual question. Accusations of hypocrisy, and mentioning that Julian Assange tried to kiss the speaker do not a cogent argument make.</p>
<p>Right, it&#8217;s a school night. I must be off. Looking forward very much to the next Westminster Skeptics.</p>
<p>This post brought to you by beer.      </p>
<p>#edited for spelling and links</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2011/09/05/westminster-skeptics-the-revolution-will-be-digitized/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Willing to pay for sync?</title>
		<link>http://www.hlynes.com/2011/04/20/willing-to-pay-for-sync/</link>
		<comments>http://www.hlynes.com/2011/04/20/willing-to-pay-for-sync/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 20:14:16 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=331</guid>
		<description><![CDATA[Matt Assay had an interesting post up on the Register today about Amazon&#8217;s kindle store outselling Apple&#8217;s ibooks. His thesis is that this is driven by the fact that Amazon has a much larger range of titles and that kindle &#8230; <a href="http://www.hlynes.com/2011/04/20/willing-to-pay-for-sync/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Matt Assay had an <a href="http://www.theregister.co.uk/2011/04/19/ebook_versus_ibook/">interesting post</a> up on the Register today about Amazon&#8217;s kindle store outselling Apple&#8217;s ibooks. His thesis is that this is driven by the fact that Amazon has a much larger range of titles and that kindle will run and sync across lots of platforms.</p>
<blockquote><p>It&#8217;s sometimes said that people won&#8217;t pay for sync, and that they don&#8217;t value choice. Kindle&#8217;s ebook sales compared to Apple&#8217;s iBook sales suggests otherwise. Syncing across different devices matters. Choice matters. The proof is in the sales figures.</p></blockquote>
<p>Even given the weasel words and spin that are customarily embodied by corporate sales figures, I&#8217;m willing to believe that Amazon are selling a lot of more ebooks than apple. However I&#8217;m not entirely convinced that sync is the reason for that. Mr Assay&#8217;s assertion about the reasons for this difference in sales really amounts to a hypothesis. I am a happy Kindle user, and while I only represent a sample size of one, let&#8217;s see if my experience supports this hypothesis.</p>
<p>I finally jumped aboard the Kindle store when Amazon released the Kindle App for Android. I&#8217;d been waiting for the paperback release of The Fuller Memorandum by Charles Stross (I am a huge Stross fan). The reason I don&#8217;t buy hardbacks is because I just don&#8217;t have that much space to dedicate to one book in my tiny flat. Much as I&#8217;d like my own Library it&#8217;s not going to happen in this lifetime. So the availability of kindle on a device I already owned together with a kindle version of a book I really wanted to read sold me on the idea. At this point I figured the worst that could happen is I&#8217;d waste a few dollars if the reading experience wasn&#8217;t that great.   </p>
<p>Reading on the small screen of my HTC Hero was remarkably easy; I devoured the book in a couple of sittings. Over the next few months I bought more books and enjoyed the fact that I didn&#8217;t have to buy yet another bookcase. I finally gave in and bought a Kindle this year so that I could take more books on holiday with me than I normally do, since the battery on the Kindle would last all week whereas my phone would barely last a day.</p>
<p>I almost never read the same book on both devices. The sync functionality goes unused. So let&#8217;s see how Mr Assay&#8217;s hypothesis does against my experience.</p>
<p>1) Kindle ebooks can be read on a lot of different platforms.</p>
<p>Check. It was Kindle&#8217;s availability on Android that first got me hooked. At this point I wasn&#8217;t ready to invest in a hardware Kindle and I sure as hell wasn&#8217;t going to buy an iPad just to read books on. If I&#8217;d been an iphone user maybe the story would have been different.</p>
<p>2) Range of available titles.</p>
<p>Check. A specific book I really wanted was available, the fact that they had that title it was pushed me past my reluctance to spend money. </p>
<p>3) Synch between different devices.</p>
<p>Nope. I really don&#8217;t use it. Don&#8217;t get me wrong, I&#8217;m glad it&#8217;s there, but it played no part in my decision to buy or continue to buy Kindle ebooks.</p>
<p>There is also another aspect of the Kindle store that wasn&#8217;t mentioned that I think is very important. Amazon believe in making it as easy as possible for you to give them money. UK credit cards have always worked in the amazon.com store, which is where I first bought Kindle ebooks from. When the UK store became supported in the Android Kindle app Amazon made it very easy to transfer your account from the US store to the UK store. This has never caused a problem and all the books I bought from the US Kindle store still work just fine. My Kindle has never warned me about the maximum number of Kindles I can connect to my Kindle account before I become de-authorised. </p>
<p>I always get that  feeling that Amazon is more interested in selling you stuff. Whereas Apple is interested in selling you things; the stuff is just there to entice you to buy the things that the stuff runs on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2011/04/20/willing-to-pay-for-sync/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stepping Through Large Database Tables in Python</title>
		<link>http://www.hlynes.com/2010/05/20/stepping-through-large-database-tables-in-python/</link>
		<comments>http://www.hlynes.com/2010/05/20/stepping-through-large-database-tables-in-python/#comments</comments>
		<pubDate>Thu, 20 May 2010 18:17:53 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=283</guid>
		<description><![CDATA[In order to report usage on our PBSPro compute cluster at work I wrote a simple set of python scripts to dump the accounting information into a MySQL database. This has been working fine for the last year churning out &#8230; <a href="http://www.hlynes.com/2010/05/20/stepping-through-large-database-tables-in-python/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In order to report usage on our PBSPro compute cluster at work I wrote a simple set of python scripts to dump the accounting information into a MySQL database. This has been working fine for the last year churning out reports every month.<br />
This week I had cause to generate some statics aggregated across the whole three years of the data in the database. I&#8217;m using a mixture of Elixir and SQLalchemy to talk to the database. Normally I would do something like this:</p>
<pre class="brush: python">
mybigtablequery = MyBigTable.query()

for job in mybigtablequery:
    if job.attribute = &quot;thing&quot;:
        dosomething()
</pre>
<p>Which worked fine when the database was quite small. I was horrified to see that as this loop went on my python process used more and more memory because the database connection object never throws away a row once it has been loaded. Fortunately I found an <a href="http://stackoverflow.com/questions/1145905/scanning-huge-tables-with-sqlalchemy-using-the-orm/1217947#1217947">answer</a> on stackoverflow.<br />
So I ended up doing the following:</p>
<pre class="brush: python">
def batch_query(query,batch=10000):
    offset = 0
    while True:
        for elem in query.limit(batch).offset(offset):
            r = True
            yield elem
        offset += batch
        if not r:
            break
        r = False

mybigtablequery = MyBigTable.query()

for job in batch_query(mybigtablequery,50000):
    if job.attribute = &quot;thing&quot;:
        dosomething()
</pre>
<p>&#8220;batch&#8221; is just an integer defining how many rows will be fetched by each query. The larger this is the more memory the python interpreter will use but the more efficiently the code will run.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2010/05/20/stepping-through-large-database-tables-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flexlm License Servers and Firewalls</title>
		<link>http://www.hlynes.com/2010/01/21/flexlm-license-servers-and-firewalls/</link>
		<comments>http://www.hlynes.com/2010/01/21/flexlm-license-servers-and-firewalls/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 20:12:43 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=278</guid>
		<description><![CDATA[If you are lucky enough to run your flexlm servers on a tightly controlled corporate network then you probably just turn the firewall off on those servers and get on with your life. Everyone else goes through a certain amount &#8230; <a href="http://www.hlynes.com/2010/01/21/flexlm-license-servers-and-firewalls/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you are lucky enough to run your flexlm servers on a tightly controlled corporate network then you probably just turn the firewall off on those servers and get on with your life. Everyone else goes through a certain amount of hair-pulling before they work out how to make flexlm play nicely with firewalls. So I&#8217;m writing this post to document the process as much for me as anyone else.</p>
<p>So let us say that you have bought five copies of Bob&#8217;s Magical Pony Viewer an awesome graphical client that you can run to show you ponies. In order for Bob to be sure that you only run five copies he has used flexlm to secure his software. You have received a network license for BobSoft that looks like:<br />
<code><br />
SERVER license1 0000eeeeeeee 2020<br />
VENDOR bobs_lm<br />
FEATURE PonyL bobs_lm 1.0 06-jan-2011 5 \<br />
SIGN="EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE \<br />
EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE"<br />
</code><br />
So you think, great we can set that up with only port 2020 open on the license server and everything will excellent. Ponies for five concurrent users, hurray!</p>
<p>Except of course when you try that Pony Viewer adamantly claims that it can&#8217;t contact the server. Even though you can netcat/telnet to port 2020 on that server and the flexlm logs tell you that the server is running just fine.</p>
<p>It&#8217;s helpful at this point to have a copy of lmutil around to debug the problem. I don&#8217;t know where to get lmutil from as it came bundled with the license server software from one of our vendors. But it&#8217;s very useful when trying to work out what is going on.</p>
<p>So lets try some things.<br />
<code><br />
#>lmutil lmstat -c 2020@license1<br />
lmutil - Copyright (c) 1989-2004 by Macrovision Corporation. All rights reserved.<br />
Flexible License Manager status on Thu 1/21/2010 19:56</p>
<p>Error getting status: Server node is down or not responding (-96,7)<br />
</code></p>
<p>This is the point at which one normally starts with the hair-tearing. The thing to realise about a flexlm server is that it&#8217;s actually two daemons working together. The lmgrd which is running on port 2020 and the vendor daemon (in this case bob_lm) which will start up on a RANDOM port. What is even better is that the vendor daemon will choose a different random port every time you restart the license server.</p>
<p>While discussing this with some fellow sysadmins it turns out that there is another option you can add to flexlm license files which ends this misery. You can tell the vendor daemon to start on a specific port. Like so:<br />
<code><br />
SERVER license1 0000eeeeeeee 2020<br />
VENDOR bobs_lm port=2021<br />
FEATURE PonyL bobs_lm 1.0 06-jan-2011 5 \<br />
SIGN="EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE \<br />
EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE"<br />
</code></p>
<p>And now when we try lmutil<br />
<code><br />
#>lmutil lmstat -c 2020@license1<br />
Flexible License Manager status on Thu 1/21/2010 20:06</p>
<p>License server status: 2020@license1<br />
    License file(s) on license1: /opt/BobSoft/license.dat:</p>
<p> license1: license server UP (MASTER) v11.6</p>
<p>Vendor daemon status (on license1):</p>
<p>       bob_lm: UP v11.6<br />
</code></p>
<p>Hurray Ponies!</p>
<p>One last thing to note make sure the hostname you specify in the license file matches the hostname of the license server and also the hostname you use when connecting to the server. This is because flexlm sends the hostname asked for as part of the license request and if the two don&#8217;t match you won&#8217;t get any ponies.</p>
<p>In short flexlm is a dreadful license server it&#8217;s just that all the others are even worse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2010/01/21/flexlm-license-servers-and-firewalls/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SC09 &#8211; Interesting Tech &#8211; Filesystems/Storage</title>
		<link>http://www.hlynes.com/2009/11/26/sc09-interesting-tech-filesystemsstorage/</link>
		<comments>http://www.hlynes.com/2009/11/26/sc09-interesting-tech-filesystemsstorage/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 00:30:53 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=275</guid>
		<description><![CDATA[All the usual suspects were visible in Portland this year. Including Panasas, Data Direct, Isilon, Lustre and IBM/GPFS. But we&#8217;ve all seen those all before. Two storage related technologies caught my eye at SC09 because I&#8217;d never seen them before. &#8230; <a href="http://www.hlynes.com/2009/11/26/sc09-interesting-tech-filesystemsstorage/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>All the usual suspects were visible in Portland this year. Including Panasas, Data Direct, Isilon, Lustre and  IBM/GPFS. But we&#8217;ve all seen those all before. Two storage related technologies caught my eye at SC09 because I&#8217;d never seen them before.</p>
<p>I caught a technical session from a Korean company called Pspace. They developed a parallel filesystem called <a href="http://www.infinistor.co.kr/eng/index.html">Infinistor</a> for a couple of big Telco/ISPs in Korea. It&#8217;s a pretty straight-forward parallel filesystem with metadata and object data handled by separate servers. Object servers are always at least N+1 so that you can lose a whole object server without losing access to your data.</p>
<p>The neat things about infinistor are that it keeps track of how often data is accessed and it understands the concept that some storage is faster than others. So you could have some smaller servers based on SSD and Infinistor will replicate frequently accessed content to the fast disks. It can even handle multiple speeds of storage within one object server.</p>
<p>As you might expect from a project born in ISP-land it has a lot of support for replication across multiple sites. Since it&#8217;s always good to serve your client data from a node close to them on the network. Infinistor can replicate synchronously or asynchronously. With the latter prioritised for frequently accessed content.</p>
<p>File access is POSIX filesystem (It will do NFS or CIFS) or a REST API.</p>
<p>As ever with big conferences not everything you learn comes from the sessions or the Exhibition hall. I got chatting to an engineer from Pittsburgh Supercomputing Centre about the parallel filesystem they wrote called ZEST. The best thing about this filesystem is that you can&#8217;t read from it.</p>
<p>So I should back up for a second here and describe the problem ZEST is trying to solve since most of you are probably thinking &#8220;what use is a filesystem you can&#8217;t read from&#8221;. Here in HPC land we have all these big machines with thousands of very fast cores and big, fast interconnects. All this cost money. Unfortunately the more nodes you are running across the more likely you are to hit a problem (e.g dividing the current day in Mayan Long Count by the least significant digit in the firmware revision of your firmware cause your HCA to turn into a pumpkin or one of the million other failure modes that a wearyingly familiar to HPC ops people around the world). When this happens you don&#8217;t want to lose all the time you&#8217;ve spent up until the fault happened. And Lo unto the world did come Checkpointing.</p>
<p>Which is basically to say a lot of big codes will periodically dump their running state to disk so that in the event of a problem they can pick up from the last checkpoint. Now obviously this can be Terabytes of data and it takes a while to write it to disk. While you are doing that all those shiny, shiny CPUs are sitting idle. This makes the Intel salesman happy, but make your funding agencies cry.</p>
<p>So the approach in ZEST is to remove all the complexity involved in making a filesystem that you can read from in order to allow clients to write as fast as possible. There are a number of design decisions here that are interesting. ZEST storage servers don&#8217;t use RAID but assign write queues to each individual disk. All the checksumming and parity calculations are done on the client ( because these are over-endowed HPC nodes we are talking about here). By stripping away all this complexity ZEST aims to give each write client the the full bandwidth of the disk it&#8217;s writing to. Because most codes will be doing checkpointing from multiple nodes at once this is going to add up to significant aggregate bandwidth.</p>
<p>As an offline process the files that have been dumped to disk are re-aggreagated and copied onto a Lustre filesystem from where they can be read. So I kind of lied when I said it was read only. More technical detail can be found in the <a href="http://www.pdsi-scidac.org/events/PDSW08/resources/papers/Nowoczynski_Zest_paper_PDSW08.pdf">ZEST paper</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2009/11/26/sc09-interesting-tech-filesystemsstorage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SC09 &#8211; Interesting Tech &#8211; Shared Memory</title>
		<link>http://www.hlynes.com/2009/11/19/sc09-interesting-tech-shared-memory/</link>
		<comments>http://www.hlynes.com/2009/11/19/sc09-interesting-tech-shared-memory/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 19:16:43 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=269</guid>
		<description><![CDATA[We are beginning to approach the end of the conference formally known as SuperComputing, so I thought it was about time that I started to write up some of the copious volumes of notes that have begun to clutter up &#8230; <a href="http://www.hlynes.com/2009/11/19/sc09-interesting-tech-shared-memory/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We are beginning to approach the end of the conference formally known as <a href="http://sc09.supercomputing.org/">SuperComputing</a>, so I thought it was about time that I started to write up some of the copious volumes of notes that have begun to clutter up the hard-drive of my netbook.</p>
<p>One of the problems we had when we performed our last procurement was that real shared-memory systems couldn&#8217;t be fitted into the budget so we had to make do with a set of 16-core commoditty boxes. We have some codes that could do with scaling-out a little bit further than that. </p>
<p>Which brings me nicely to <a href="http://www.3leafsystems.com/">3Leaf</a> who are building technology to hook multiple commodity boxes together so that the OS (a normal Linux build plus some proprietary kernel modules) sees them as one machine. All hardware on the individual nodes should be visible to the OS just like it would on a single machine. So you can do weird things like software RAID across all the single SATA disks in a bunch of nodes. 3Leaf caution that it&#8217;s possible that there is some funky hardware out there that wouldn&#8217;t interact well with their setup but they haven&#8217;t met it yet. The interconnect is InfiniBand DDR. While it&#8217;s not stated up-front by 3Leaf conversations with them indicate that the ASIC is implementing some kind of vitualisation layer which makes it sound sort of like ScaleMP in hardware. </p>
<p>A stack of 3Leaf nodes is essentially a set of AMD boxes with the 3Leaf ASIC sitting in an extra AMD CPU socket. The on-board IB is then used to carry communications traffic between the separate nodes. The manager node (a separate lower spec box) controls the booting and partitioning of the nodes such that a stack can be brought up as one big box or several smaller units. </p>
<p>My favourite thing about the 3Leaf solution is that you can add extra IB cards which will behave normally for the OS. This means you interface the stack to things like Lustre or NFS/RDMA over IB which many HPC facilities will already have in operation.<br />
While currently AMD only 3Leaf claim they will have a product ready for the release of the next version of Intel&#8217;s <a href="http://en.wikipedia.org/wiki/Intel_QuickPath_Interconnect">QPI</a>.</p>
<p>And in case you think this might be vapourware apparently Florida State have just bought one.</p>
<p>On a more traditional note SGI announced the availability their new <a href="http://www.sgi.com/products/servers/altix/uv/">UV</a> shared-memory machine. Essentially an ALTIX 4700 with uprated numalink and x86_64 chips rather than Itanium. The SGI folks swear that there is no proprietary code necessary to make these machines work and that all the kernel support is in mainline. If so that is a very positive step for SGI to take. Hardware MPI acceleration is supported by the SGI MPI hardware stack. It wasn&#8217;t clear to me whether SGI are expecting other MPIs to be able to take advantage of this capability. Depending on the price-point UV might be a very interesting machine.</p>
<p>Speaking of all things NUMA I had an interesting chat to the chaps at <a href="http://www.numascale.com/">Numacale</a>. It turns out they are a spin-off from Dolphin. They are making an interconnect card on <a href="http://en.wikipedia.org/wiki/HyperTransport#Add-on_card_connector_.28HTX_and_HTX3.29">HTX</a> that will do ccNUMA on commodity AMD kit. The ccNUMA engine is a direct descendant of the one in the Dolphin SCI system (I should note that we still have a Dolphin cluster in operation back home). Like SCI this interconnect is wired together in a loop/torus/3d torus topology without a switch. </p>
<p>Numascale have evaluation kit built on FPGAs at the moment and expect tot tape-out the real ASICs early next year. Like 3Leaf they claim to be working on version for the next version of Intel&#8217;s QPI. </p>
<p>And now we move from shared-memory to memory-sharing. Portland&#8217;s own <a href="http://www.rnanetworks.com/">RNA Networks</a> have a software technology for sharing memory over IB. You can take chunks of memory on several nodes and hook them together as a block device to use as fast cache. If you stack mount this over another networked-filesystem it acts as an extra layer of caching. So access will go to the local page cache then over IB to the RNA cache and finally over the network the original filesystem. I can see a number of use cases where this could be used to add parallel scaling to a single network filesystem. Although at roughly $1000 per node plus IB I&#8217;m not sure it works out cheaper than some of the cheaper ethernet based clustered storage systems.</p>
<p>You can also use this memory-based block device to run a local paralell filesystem if you want although I can&#8217;t quite see the use case.</p>
<p>One thing I forgot to ask was whether the cache can be used a straight physical RAM for those really naive codes that just run a whole bunch of data into memory and could do with access to extra space.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2009/11/19/sc09-interesting-tech-shared-memory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing with Hugin Panorama Stitcher</title>
		<link>http://www.hlynes.com/2009/07/12/playing-with-hugin-panorama-stitcher/</link>
		<comments>http://www.hlynes.com/2009/07/12/playing-with-hugin-panorama-stitcher/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 11:53:08 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[photos]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=255</guid>
		<description><![CDATA[I finally got around to playing with stitching some photos together using the Hugin stitching tool. Hugin is very powerful but I would have found it entirely incomprehensible if it wasn&#8217;t for an excellent tutorial from lifehacker. I&#8217;m quite pleased &#8230; <a href="http://www.hlynes.com/2009/07/12/playing-with-hugin-panorama-stitcher/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/21192656@N00/3712853454/" title="Three Cliffs Bay Panorama by huw-l, on Flickr"><img src="http://farm3.static.flickr.com/2494/3712853454_973ae6a9b0_m.jpg" width="240" height="95" alt="Three Cliffs Bay Panorama" /></a></p>
<p>I finally got around to playing with stitching some photos together using the <a href="http://hugin.sourceforge.net/">Hugin</a> stitching tool. Hugin is very powerful but I would have found it entirely incomprehensible if it wasn&#8217;t for an excellent <a href="http://lifehacker.com/378490/stitch-photos-into-panoramas-with-free-software">tutorial from lifehacker</a>.</p>
<p>I&#8217;m quite pleased with how this initial test came out so it&#8217;d definitely a technique I&#8217;ll use again in the future. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2009/07/12/playing-with-hugin-panorama-stitcher/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Europython &#8211; Days 3 to 5 &#8211; Roundup</title>
		<link>http://www.hlynes.com/2009/07/05/europython-days-3-to-5-roundup/</link>
		<comments>http://www.hlynes.com/2009/07/05/europython-days-3-to-5-roundup/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 16:02:14 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=250</guid>
		<description><![CDATA[As Europython got more hectic and my 3G connection got more erratic, my daily blogging ceased. So this roundup is mostly the result of notes I wrote on the train journey through the picturesque Welsh Borders back home to Cardiff. &#8230; <a href="http://www.hlynes.com/2009/07/05/europython-days-3-to-5-roundup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As Europython got more hectic and my 3G connection got more erratic, my daily blogging ceased. So this roundup is mostly the result of notes I wrote on the train journey through the picturesque Welsh Borders back home to Cardiff. These are the talks that made an impact on me.</p>
<p><strong>GIL isn&#8217;t Evil</strong> Russell Winder, who is every inch the sterotype of a former theoretical physicist, showed some simple benchmarks of threads vs Parallel Python vs Multiprocessing which showed that you could get good parallel speed-up in python by using the latter two approaches. We have a number of people who use Numpy and Scipy on the cluster and it would be interesting to see if we could get some quick speedups for them using these approaches.</p>
<p><strong>Twisted, AMQP and Thrift</strong> A quick introduction to <a href="http://jira.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol">AMQP</a> and the fact that lots of big financial companies are ripping out Tibco/IBM MQ to make way for AMQP. <a href="http://fluidinfo.com/">These guys</a> wrote twisted interfaces to AMQP and Thrift so that you can make Thrift RPC calls and everything magically goes over AMQP. It was interesting but without taking a serious look through some example code I&#8217;m not sure that it will be useful for any of my particular projects.</p>
<p><strong><a href="http://sourceforge.net/apps/mediawiki/pipper/index.php?title=Main_Page">PIPPER</a></strong> A python system where you add comments very much like OpenMP pragmas allowing you to parallelise For loops. It does this by serialising the function and the data that go to it and sending it over MPI to a c-based engine that runs the function and returns the data over MPI. This is nice because it lets you take advantage of the MPI and Interconnect on a proper compute cluster. However it can&#8217;t handle the full language set of python and you can&#8217;t use c extensions. Which means Numpy and Scipy are out of the window. Which is a shame because most of the codes that you could trivially parallelise with this system use Numpy.</p>
<p><strong>Python and CouchDB</strong> An opinionated Mozilla hacker talking about how awesome CouchDB is. I understood it a bit more by the end of the session and kind of wondered what it would be like to dump log files straight into it. The talk in the corridors was the <a href="http://www.mongodb.org/display/DOCS/Home">MongoDB</a> looked a bit more production oriented. However I managed to miss that talk so will have to look it up later.</p>
<p>Keynote by Bruce Eckel. He started by pimping the <a href="http://www.unconference.net/">unconference</a> idea, which looked good to me. And got me thinking about whether there might be room for the approach at work. The language archaeology part was entertaining but I can&#8217;t remember a single thing from it.</p>
<p><strong><a href="http://pypi.python.org/pypi/ctypes/">Ctypes</a></strong> This was a really useful talk. Greg Holliing did a good job of going through some of the pitfalls of ctypes such as 32/64 bit int mis-match with the underlying c API. So you should always cast to one of the ctypes types to make it explicit what you are passing through. This was probably the talk that is most likely to make an impact on my production code over the next twelve months.</p>
<p><strong><a href="http://openerp.com/">OpenERP</a></strong> In hindsight I should have also gone to the <a href="http://www.openobject.com/">OpenObject</a> talk which explained the underlying data model. The best thing about this was that each module can stand alone. i.e you can install the inventory module or the CRM module without all the others. OpenERP speaks a Web Services API so it would be very easy to develop against it. There is a chance I may be able to solve some of the organisational challenges at work by throwing this tech at them. </p>
<p><strong>Python for System Admin</strong> A good talk somewhat hampered by John Pinner&#8217;s need to support Python2.2 so some of the code example looked a bit strange. John is of the opinion that argparse is better than optparse (which I habitually use). One of the other attendees pointed me to a pycon2009 talk on argparse which apparently explains the difference.</p>
<p><strong>Software Apprenticeship</strong> An interesting approach to training programmers that made a lot of sense to me. In Britain we have an awful tendency to belittle vocational training in comparison to academic education when for a great many professions we could do with more of the former and less of the latter. Lots to think about and Christian Theune provided a wealth of advice based on his practical experience of helping to train apprentices. </p>
<p>This was my first EuroPython and I found it educational and entertaining. I was exposed to lots of interesting technology, some of which may improve my daily work. More important than that was the opportunity to talk to other Python developers about their experiences of using Python to get real work done. EP is in Birmingham again next year so I have no excuse not to attend. Many thanks to all the hard-working people who helped to organise this conference and the wonderful delegates who made it so much fun to attend.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2009/07/05/europython-days-3-to-5-roundup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Europython &#8211; Day 2 &#8211; Tutorials</title>
		<link>http://www.hlynes.com/2009/06/29/europython-day-2-tutorials/</link>
		<comments>http://www.hlynes.com/2009/06/29/europython-day-2-tutorials/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 21:34:22 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=248</guid>
		<description><![CDATA[Today&#8217;s notable achievements were that I managed to stay on power and network for most of the day. Mostly due to the fact that I lucked out to get a seat next to a power bar in the lecture theatre &#8230; <a href="http://www.hlynes.com/2009/06/29/europython-day-2-tutorials/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s notable achievements were that I managed to stay on power and network for most of the day. Mostly due to the fact that I lucked out to get a seat next to a power bar in the lecture theatre holding Luke Leighton&#8217;s <a href="http://code.google.com/p/pyjamas/">Pyjamas</a> tutorial. I was interested in Pyjamas for a web project I may have to get up and running quite quickly over the summer. Although there were some rocky patches due to SVN mismatches I mostly managed to get a handle on how Pyjamas works. As a note to future tutors: if you need your tutees to download the trunk from SVN it&#8217;s probably best to specify the revision that works. This avoids everyone turning up with a version of your code that won&#8217;t run the examples. Also, I still don&#8217;t understand decorators.</p>
<p>Today&#8217;s buffet lunch was nice. Props to the conference organisers.</p>
<p>The day was nicely rounded off by dinner at a fine indian restaurant and a pint of very nice beer in the Wellington. Looking forward to the start of the conference proper.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2009/06/29/europython-day-2-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Europython &#8211; Day 1 &#8211; Tutorials</title>
		<link>http://www.hlynes.com/2009/06/28/europython-day-1-tutorials/</link>
		<comments>http://www.hlynes.com/2009/06/28/europython-day-1-tutorials/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 18:56:26 +0000</pubDate>
		<dc:creator>Huw Lynes</dc:creator>
				<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.hlynes.com/?p=243</guid>
		<description><![CDATA[I have to admit to a certain amount of trepidation when I signed up for EuroPython 2009. As primarily a sysadmin rather than a developer I was worried that I might not have the requisite knowledge to get the benefit &#8230; <a href="http://www.hlynes.com/2009/06/28/europython-day-1-tutorials/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have to admit to a certain amount of trepidation when I signed up for <a href="http://www.europython.eu/">EuroPython 2009</a>. As primarily a sysadmin rather than a developer I was worried that I might not have the requisite knowledge to get the benefit of a  week-long developer conference. After today&#8217;s experience I&#8217;m beginning to relax about that.</p>
<p>Today and tomorrow are the tutorial sessions before the conference proper starts. Having never been to a Python conference before I wasn&#8217;t sure what form the tutorials would take. From the outcome of the day I would have to say &#8220;much less programming than you might expect&#8221;.</p>
<p>The day started off with Michael Spark&#8217;s giving an introduction to <a href="http://www.kamaelia.org/Home">Kamaelia</a> the simple concurrency system designed by BBC Research. We started off by building a brain-dead simple version of Kamaelia to outline the principles by which it operates. This took us on to writing a bulletin-board system by chaining together simple Kamaelia components. This was, needless to say, pretty intense for a Sunday morning.</p>
<p>Having expected to be doing a lot of coding I dutifully spent Friday evening makeing sure that I had the suggested software installed and working on my netbook. As it turned out I only wrote about 20 lines of code during the whole tutorial. I was ever so slighlty miffed by this. This is the first time this tutorial has been given and in my opinion would benefit from being all-day with time for coding exercises between explanations.</p>
<p>Despite these minor problems I felt that the tutorial left me with enough of a grasp of Kamaelia&#8217;s basics that I could go away and write something simple in it without too much trouble. One other good point of the this session was the handout printed from lulu.com which was really nice. So nice in fact that I think we should spring for these next time we run a training course at work.</p>
<p>After lunch I was in Jonathan Fine&#8217;s <a href="http://www.europython.eu/talks/talk_abstracts/index.html#talk95">JavaScript for Python Programmers</a> tutorial. Which was in a room that was too small for the audience and much, much too hot. It also appeared to have a grand total of two power outlets. Fine started off with a horrifying list of the ways basic constructs in JS behave in ways that Pythonistas will find completely illogical. After the break he delved into the nitty-gritty of OO and Inheritance. As the tutorial progressed and Fine got further from his slides the session transformed into something more like a seminar rather that a tutorial. Overall I found this session enjoyable and informative, although my brain was beginning to melt by the end of the day.</p>
<p>I suspect that Wifi and power are what most people will grumble about, but knowing how hard it is to sort these out for events at my home institution I won&#8217;t carp too much.</p>
<p>Now for some time with the Django tutorial in preparations for tomorrow&#8217;s Pyjamas session.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hlynes.com/2009/06/28/europython-day-1-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

