<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://port25.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Port 25: The Open Source Community at Microsoft : HPC, Windows Server</title><link>http://port25.technet.com/archive/tags/HPC/Windows+Server/default.aspx</link><description>Tags: HPC, Windows Server</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 40109.1145)</generator><item><title>Virtualizing Free Linux Distributions in Windows Server 2008 R2</title><link>http://port25.technet.com/archive/2009/08/10/virtualizing-free-linux-distributions-in-windows-server-2008-r2.aspx</link><pubDate>Tue, 11 Aug 2009 00:00:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:27125</guid><dc:creator>Peter Galli</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=27125</wfw:commentRss><comments>http://port25.technet.com/archive/2009/08/10/virtualizing-free-linux-distributions-in-windows-server-2008-r2.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Jason Perlow, a columnist over at ZDNet, has written a comprehensive review on virtualizing free Linux distributions in Windows Server 2008 R2. &lt;/P&gt;
&lt;P&gt;In his &lt;A class="" href="http://blogs.zdnet.com/perlow/" target=_blank mce_href="http://blogs.zdnet.com/perlow/"&gt;Tech Broiler&lt;/A&gt; column, Perlow notes that the updated &lt;A class="" href="http://en.wikipedia.org/wiki/Hyper-V" target=_blank mce_href="http://en.wikipedia.org/wiki/Hyper-V"&gt;Hyper-V bare-metal hypervisor virtualization layer&lt;/A&gt; in Microsoft's upcoming &lt;A class="" href="http://www.microsoft.com/windowsserver2008/en/us/R2-Download.aspx" target=_blank mce_href="http://www.microsoft.com/windowsserver2008/en/us/R2-Download.aspx"&gt;Windows Server 2008 R2&lt;/A&gt;, which is due to be released August 14th to MSDN and Technet customers, now has support for SUSE Linux Enterprise Server 11 and Red Hat Enterprise Linux 5.3. &lt;/P&gt;
&lt;P&gt;"Additionally, Linux support and performance has greatly improved over the initial Hyper-V release. Microsoft also recently released its Hyper-V &lt;A class="" href="http://port25.technet.com/archive/2009/07/20/the-hyper-v-linux-integration-components.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/07/20/the-hyper-v-linux-integration-components.aspx"&gt;Linux Integration Components&lt;/A&gt; (Linux ICs) under the GPLv2 Open Source License," Perlow says.&lt;/P&gt;
&lt;P&gt;The Linux ICs for Hyper-V, which are in Release Candidate status, provide synthetic device drivers that enhance I/O and networking performance when Linux OSes are virtualized under Hyper-V. &lt;/P&gt;
&lt;P&gt;"The source code for the &lt;A class="" href="http://port25.technet.com/archive/2009/07/20/microsoft-contributes-linux-drivers-to-linux-community.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/07/20/microsoft-contributes-linux-drivers-to-linux-community.aspx"&gt;Linux IC's&lt;/A&gt; were accepted into the &lt;A class="" href="http://www.linuxdriverproject.org/twiki/bin/view" target=_blank mce_href="http://www.linuxdriverproject.org/twiki/bin/view"&gt;Linux Driver Project&lt;/A&gt; and should become part of the Linux Kernel within two subsequent releases and code merges - 2.6.32 is expected to be when they will be integrated, and all Linux distributions using that kernel code base going forward should be Hyper-V enabled out of the box. Yes, you heard that correctly, Microsoft is now an official Linux Kernel contributor," Perlow says.&lt;/P&gt;
&lt;P&gt;You can read the rest of Perlow's column &lt;A class="" href="http://blogs.zdnet.com/perlow/?p=10830" target=_blank mce_href="http://blogs.zdnet.com/perlow/?p=10830"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=27125" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Virtualization/default.aspx">Virtualization</category><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Linux/default.aspx">Linux</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/Server+Center/default.aspx">Server Center</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>Real Mission Critical</title><link>http://port25.technet.com/archive/2009/06/01/real-mission-critical.aspx</link><pubDate>Mon, 01 Jun 2009 16:15:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:26025</guid><dc:creator>Mark Stone</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=26025</wfw:commentRss><comments>http://port25.technet.com/archive/2009/06/01/real-mission-critical.aspx#comments</comments><description>&lt;p&gt;The 1.0 release of &lt;a href="http://winbioinftools.codeplex.com" mce_href="http://winbioinftools.codeplex.com"&gt;WinBioinfTools&lt;/a&gt; might seem like a modest event; as of this writing, the project has&lt;br&gt;44 downloads. High Performance Computing (HPC) is a small community, granted, and the number of HPC&lt;br&gt;applications for bioinformatics is a small subset of that. Let's not confuse popularity with importance,&lt;br&gt;however.&lt;br&gt;&lt;br&gt;We use the phrase "mission critical" very frequently and somewhat casually within software development. In&lt;br&gt;talking to a friend about the swine flu outbreak, I was reminded that the phrase has its origin in &lt;br&gt;military history: an aspect of a mission so critical that failure in that aspect would result in the&lt;br&gt;loss of life. In the developing world where medical infrastructure can be a fragile thing, information about&lt;br&gt;the origins or genetic makeup of a virus can be vital. It can be mission critical.&lt;br&gt;&lt;br&gt;Historically, the developing world has been dependent on developed western countries to do their research for them.&lt;br&gt;Open source is beginning to level that playing field, though. Using a cluster environment and software&lt;br&gt;projects like &lt;a href="http://toolcoconut.org" mce_href="http://toolcoconut.org"&gt;CoCoNUT&lt;/a&gt; for gene sequencing and comparison, even university research centers with modest x86 &lt;br&gt;server environments can play in the HPC space. This is important because the research priorities for a&lt;br&gt;university in a developing country may be very different from the research priorities of a major western&lt;br&gt;research university. At its best, this is exactly the kind of lowering of barriers to entry that open &lt;br&gt;source should facilitate.&lt;br&gt;&lt;br&gt;For all its value, CoCoNUT has two significant limitations. Its license is an academic license, not a fully&lt;br&gt;open source license. And it runs only on Linux/Unix systems. The latter is particularly important. Research&lt;br&gt;scientists are not IT professionals, and they should not have to care about the underlying platform on which&lt;br&gt;their software runs. The spirit of open source is to make software as widely available as possible, and there&lt;br&gt;is no way to meet that spirit without including Windows Server among the target platforms. Mission critical&lt;br&gt;demands no less.&lt;br&gt;&lt;br&gt;So WinBioinfTools makes important steps forward on both fronts. The team at Nile University has released a&lt;br&gt;GPL-licensed project that "contains a number of programs for Bioinformatics running over Windows Cluster running &lt;br&gt;Windows HPC server 2008. The current version includes the CoCoNUT system for pairwise genome comparison, &lt;br&gt;parallel global sequence alignment, and parallel BLAST."&lt;br&gt;&lt;br&gt;This is a great example of a local software community using open source to make their needs a priority, &lt;br&gt;and delivering a project that will benefit local software communities in other developing countries with&lt;br&gt;similar needs. WinBioinfTools puts us one step closer to making scientific computing software platform &lt;br&gt;neutral, and closer to making Windows Server a first class citizen in the open source world of HPC.&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=26025" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Codeplex/default.aspx">Codeplex</category><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>Brazilian Students Set Their Own Course</title><link>http://port25.technet.com/archive/2009/03/16/brazilian-students-set-their-own-course.aspx</link><pubDate>Mon, 16 Mar 2009 19:05:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:24460</guid><dc:creator>Mark Stone</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=24460</wfw:commentRss><comments>http://port25.technet.com/archive/2009/03/16/brazilian-students-set-their-own-course.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I’m going to tell a story that starts in Indiana, but really it’s about Brazil.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Once upon a time “scientific computing” was nearly synonymous with “Fortran”. Today, though, just about any high level language can be used to write High Performance Computing (HPC) applications. These days that language choice also includes C#.&lt;/P&gt;
&lt;P mce_keep="true"&gt;At &lt;A href="http://www.iu.edu/" mce_href="http://www.iu.edu/"&gt;&lt;FONT color=#0000ff&gt;Indiana University&lt;/FONT&gt;&lt;/A&gt;, the &lt;A href="http://www.osl.iu.edu/" mce_href="http://www.osl.iu.edu/"&gt;&lt;FONT color=#0000ff&gt;Open Systems Lab&lt;/FONT&gt;&lt;/A&gt; has pioneered work to implement Message Passing Interface (MPI) support for .Net, so that MPI applications can be written in C#. The project is &lt;A href="http://www.codeplex.com/mpinet" mce_href="http://www.codeplex.com/mpinet"&gt;&lt;FONT color=#0000ff&gt;MPI.Net&lt;/FONT&gt;&lt;/A&gt;, and you can find it on &lt;A href="http://www.codeplex.com/" mce_href="http://www.codeplex.com/"&gt;&lt;FONT color=#0000ff&gt;Codeplex&lt;/FONT&gt;&lt;/A&gt;. It is open source, about three years old, has reached a 1.0 release, and is compatible with two other important open source projects, &lt;A href="http://www.open-mpi.org/" mce_href="http://www.open-mpi.org/"&gt;&lt;FONT color=#0000ff&gt;OpenMPI&lt;/FONT&gt;&lt;/A&gt; and &lt;A href="http://www.mono-project.com/" mce_href="http://www.mono-project.com/"&gt;&lt;FONT color=#0000ff&gt;Mono&lt;/FONT&gt;&lt;/A&gt;. The principle developers behind the project are Andrew Lumsdaine at Indiana University and his former student, Douglas Gregor, who is now on the faculty of Rensselear Polytechnic Institute.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This is the kind of open source work that’s really exciting to see because of the way it expands choices for the developer and the end user. A C# developer should not be closed off from writing HPC applications if that’s what they want to do. And a research scientist should not have to think about whether their lab is running Linux or Windows Server. Both of these individuals are working enough layers above the operating system that somebody else’s operating system choice should not be a constraint.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So I was very excited to learn that students in Brazil at Federal University of Rio Grande do Sul were doing work on MPI, and excited to talk with them about their work. One of their projects is &lt;A class="" href="http://www.codeplex.com/mpihash" mce_href="http://www.codeplex.com/mpihash"&gt;MPI#&lt;/A&gt;, also open source and also hosted on &lt;A class="" href="http://www.codeplex.com/" mce_href="http://www.codeplex.com"&gt;Codeplex&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;MPI# builds on top of the work of MPI.Net, adding some functionality not yet present in MPI.Net. Specifically, quoting from the project description:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;The goals of this project would be to build upon MPI.NET in order to complement it with the features that are missing, mainly regarding collective communication. Either they could benefit from C# native support for such communication, either they could be programmed on top of the provided MPISend/MPIRecv encapsulations. C# and .NET features such as fault tolerance or dynamicity support would be studied, in other to turn the MPI# implementation robust in large, dynamic and heterogeneous platforms.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;Two of the students working on MPI# are Ismael Stangherlini and Fernando Afonso. They are graduate students in computer science, working on projects affiliated with the &lt;A class="" href="http://www.codeplex.com/NDOS" mce_href="http://www.codeplex.com/NDOS"&gt;Brazilian Interoperability and Open Source Software Development Nucleous&lt;/A&gt;. When I talked to them about their work on MPI# I was curious what their communication with Indiana University had been like. Their response: they had never been in contact with Indiana University; they simply downloaded the code for MPI.Net and started working on their own.&lt;/P&gt;
&lt;P mce_keep="true"&gt;That’s the magic of open source: that they can, in fact, just download the code on their own and start coding against it. They may make an important contribution to MPI.Net. Or their code may be entirely disregarded. Or they may move on to other projects and somebody else may or may not pick up where they left off. At this stage it’s too early to tell. But the fact that all of these scenarios are possible demonstrates why, as a methodology, open source is so nimble and adaptive. A top-down product development process, or a top-down standards development process can only execute on the innovations envisioned by the few at the top, and at the speed of the slowest decision-makers in the process. But a bottom-up open source process enables every innovation that anyone at the grass roots level can see.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=24460" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Codeplex/default.aspx">Codeplex</category><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/Mono/default.aspx">Mono</category><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Standards/default.aspx">Standards</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>Is High Performance Computing naturally Open Source (ie. for tinkerers)? </title><link>http://port25.technet.com/archive/2008/06/18/is-high-performance-computing-naturally-open-source-ie-for-tinkerers.aspx</link><pubDate>Wed, 18 Jun 2008 13:17:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:19607</guid><dc:creator>anandeep</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=19607</wfw:commentRss><comments>http://port25.technet.com/archive/2008/06/18/is-high-performance-computing-naturally-open-source-ie-for-tinkerers.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I have always been fascinated by clusters.&amp;nbsp; Some people envision working with desktops or workstations when they think of “working with computers”.&amp;nbsp; For me working with computers was always with a large collection of computers in a back room somewhere.&amp;nbsp; And how cool if you could make all those computers collaborate with each other working to solve cool things like genome mapping, movie special effects, simulations of car crashes or simulations of molecules being formed! &lt;/P&gt;
&lt;P mce_keep="true"&gt;So you can imagine I jumped at the chance to work with the Windows High Performance Computing team.&amp;nbsp; This is the same team that builds&amp;nbsp; Windows HPC Server 2008.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;I think most of the people working in the team are from the “large collection of computers in back room somewhere” school. Would be really different in the Mac software division I assume! &lt;/P&gt;
&lt;P mce_keep="true"&gt;I work with the Open Source Software Lab and we are all things “Open Source” to the rest of the company.&amp;nbsp; The HPC Server team wanted us to make sure that their product played nice with Linux infrastructure and vice-versa.&amp;nbsp; The usual suspects like AD, Samba, LDAP. CIFS etc were involved.&amp;nbsp; We had to make sure that these recurrent interoperability themes were addressed in the HPC environment.&amp;nbsp;&amp;nbsp; I also got a chance to dig into ROCKS, OSCAR, MPI stacks and job schedulers etc etc.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;This was a very rewarding experience not only for the technology exposure that I got but the pervasiveness of knowledge of Open Source within the team.&amp;nbsp; They were far ahead of the other product groups in this regard and&amp;nbsp; “got” the Open Source ethos. In fact, prior to my interactions with them they had released an open source MPI stack based on Argonne National Lab’s MPI implementation.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;The other reason was that a lot of their customers were relentlessly open source!&amp;nbsp; The conventional wisdom is that HPC applications and infrastructure require a lot of tinkering.&amp;nbsp; Of course, there are some applications like FEM and CFD and that are well understood, but the general feeling was that complete control and access to the underlying infrastructure is a must for getting the most performance out of a cluster.&amp;nbsp; And performance is the main thing in “High Performance Computing”.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;Linux is seen providing that access by HPC customers and there is a large base of Linux for HPC in academia, the national labs and other institutions that use large clusters for doing their thing. &lt;/P&gt;
&lt;P mce_keep="true"&gt;But is this really true?&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;I think that HPC has gone through a typical evolution – it starts with a few people who have a pressing need.&amp;nbsp; There is a cross disciplinary team formed that builds software to do their job and a community grows around it.&amp;nbsp; The community reaches critical mass and people start making building tools to make it more convenient.&amp;nbsp; ROCKS is an example of this.&amp;nbsp; Great skill, knowledge and ability is needed to get the job done.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;However, these skilled people now become overloaded.&amp;nbsp; The tools and the infrastructure that they created become so popular that everyone, including people who do not have background that was assumed before, wants to use it for their ends.&amp;nbsp; So the community responds and builds standardized, easy-to-use infrastructure pieces that start to fit seamlessly together.&amp;nbsp; Some control is lost, but ease-to-use is the primary focus.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The infrastructure for HPC has reached that stage (ROLLS with ROCKS). Windows HPC Server 2008 is built for this ease-of-use too.&lt;BR&gt;&amp;nbsp; &lt;BR&gt;However, the applications have not reached the stage of ease-of-use.&amp;nbsp; They have to be coded with a lot of domain knowledge and have to built from scratch to truly scale while running on clusters.&amp;nbsp; That means that the application writers demand more control of the underlying infrastructure and want more access to it than the users and maintainers want.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;I am going out on a limb and making a prediction here – soon end users will be able to specify instead of coding applications, be it genome comparison or physics simulation.&amp;nbsp; This is similar to accountants finding spreadsheets.&amp;nbsp; There will probably be a few different models for different types of applications but that stage will come pretty quickly.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;The infrastructure that runs these user-specified applications will be adaptive and will take these specifications and automatically tune them for high performance on the clusters.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;This is where the perception of needing control to the lowest levels will be moot.&amp;nbsp; The best adaptive infrastructure will be the one adopted. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Bold enough for you?&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=19607" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Anandeep/default.aspx">Anandeep</category><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/Server+Center/default.aspx">Server Center</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>Code Parallel or Die, Part 2</title><link>http://port25.technet.com/archive/2008/04/15/code-parallel-or-die-part-2.aspx</link><pubDate>Tue, 15 Apr 2008 19:40:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:16113</guid><dc:creator>Frank Chism</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=16113</wfw:commentRss><comments>http://port25.technet.com/archive/2008/04/15/code-parallel-or-die-part-2.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;STRONG&gt;It’s multicore time. Do you know where your parallelism is?&lt;BR&gt;&lt;/STRONG&gt;Do you know where your parallelism is? Well you better find it! This is because you must or your users will not see the doubling of performance that they have seen for the last seven or eight generations of microprocessors. Why? Well the chip makers ran out of physics, clocks just couldn’t go a lot faster every few months the way they used to and more cores, even if they double or triple the performance of the processor do not lead to a faster feeling system if all the applications are serial. So, is your application serial? It better not be.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;Two examples from my own life demonstrate the user and buyer frustration we are about to hit head on. First my sister, a long time Mac user, bought a new dual socket dual core Mac. On paper this system was easily three to five times “more powerful” then her previous system, a dual processor Mac. Her first complaint was, “It doesn’t feel faster. It certainly doesn’t feel ‘wicked fast’ compared to my five year old system.” I pointed out to her that what she had was more power, not more ‘faster’. I told her to try doing more than one thing at once. It took awhile for her to get the hang of this, but one day recently she called and started raving about how ‘powerful’ her new system was compared to her old one. What she had learned how to do was to get three or four long running tasks to run in the background while continuing to do her interactive day to day tasks &lt;EM&gt;without any noticeable degradation in interactive performance&lt;/EM&gt;!&lt;/P&gt;
&lt;P mce_keep="true"&gt;As a second example, for Christmas I built my wife a new dual core system because she was complaining about her system being too slow and crashing all the time. It was a thing of beauty with twice the CPU, twice the memory, and five times the capacity and twice the bandwidth of her old disks. The processor was two generations newer with a 20% faster clock and over four times the memory bandwidth. I was ready for a big hug and profuse thanks for my intelligence and craftsmanship. Boy was I in for a disappointment. What I got was, “It isn’t any faster.” I am a victim of the core war!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;The lights are on, but there’s no parallel home.&lt;/STRONG&gt;&lt;BR&gt;Well my personal tragedy was nothing compared to what will happen to any software developer or corporation that depends on their fortune or fame to flow from people using their product and liking the experience. That is, it will be tragic for those who do not start to think parallel for every step of every phase of every program that they write and design in parallel not try to graft it in afterwards. Just as with security, and network awareness, you don’t get good results trying to add in parallel later. You must start in parallel and continue in parallel and only go serial as a last drastic measure and then only for the shortest possible time. Sadly, even in my own backyard of High Performance Computing the number of programs that have tried to graft in parallel rather than design it in is appalling. What they end up with is often what I call the ‘Silence of the Lames’. That is, a lame parallel port that doesn’t scale or doesn’t speed up their program nearly as much as is possible.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Now you might say that this only works for scientific programs with massive amounts of data. Well, sorry Charlie, if your product is something as ‘serial’ as a document processing program like Microsoft Word, you had better be thinking how you can use those extra cores to improve the user experience. Why? Well as I said in the beginning: Code parallel or die! &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;For the want of a nail, the shoe was lost; for the want of a shoe the horse was lost; and for the want of a horse the rider was lost, being overtaken and slain by the enemy, all for the want of care about a horseshoe nail.&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt; - Benjamin Franklin&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;That’s all for now. I enjoyed writing this and hope to hear from some of you about what you think of my ‘Parallel Imperative’ and what you can personally do about it.&lt;BR&gt;So, never stop studying and I’ll blog at you later.&lt;/P&gt;
&lt;P mce_keep="true"&gt;- Frank&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=16113" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/Dev+Center/default.aspx">Dev Center</category><category domain="http://port25.technet.com/archive/tags/App/default.aspx">App</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Frank+Chism/default.aspx">Frank Chism</category></item><item><title>Code Parallel or Die</title><link>http://port25.technet.com/archive/2008/04/14/code-parallel-or-die.aspx</link><pubDate>Mon, 14 Apr 2008 17:22:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:16036</guid><dc:creator>Frank Chism</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=16036</wfw:commentRss><comments>http://port25.technet.com/archive/2008/04/14/code-parallel-or-die.aspx#comments</comments><description>&lt;P&gt;&lt;EM&gt;“What we have here is a failure to communicate.”&lt;/EM&gt; &lt;BR&gt;- Luke in “Cool Hand Luke”&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A fist full of cores in a server rich environment.&lt;/STRONG&gt; &lt;BR&gt;If you haven’t noticed that the world has changed, you had better wake up and smell the coffee. The era of killer apps written in serial code is ending. Like the norm in species extinction, the reason many ISVs will not survive this change is that the environment in which we develop code has changed rapidly and not all species can adapt to this new world. The change was preceded by a hint of ‘The Shape of Things to Come’ in the Beowulf and compute cluster revolution. This revolution created the first generation of commodity clusters based on microprocessor nodes connected by commodity networks. An evolutionary message from this generation is that if you are building a cluster you really ought to use server class nodes. You _can_ build a cluster from desktop parts, but the higher you scale your node count the more you want the convenience and reliability of server parts. I remember seeing a look of outrage on the face of an Intel marketing person when I commented that I thought their then brand new Itanium Tiger platform was a really nice part for building a cluster. He thought of the new platform as a High Performance Server, not as a ‘part’. Well get used to it. We don’t build computers out of discreet components like transistors any more (which is good for him because Intel makes really big Integrated Circuits, not transistors) and we have just moved up to the point where the level of integration is the server, not the processor. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;And Then There Were Cores&lt;/STRONG&gt; &lt;BR&gt;So into this environment where servers are parts and many high performance computing applications were written to a distributed memory communications aware parallel programming model, the microprocessor has changed in the most radical way I can remember. Our equilibrium has been punctuated (see: "Punctuated equilibria: an alternative to phyletic gradualism" (1972) pp 82-115 in "Models in paleobiology", edited by Schopf, TJM Freeman, Cooper &amp;amp; Co, San Francisco. Eldredge, N. &amp;amp; Gould, S.J.) and we can expect rapid change to a whole new kind of parallelism. The change I refer to is the introduction and near ubiquity of multiple core processors. For years software developers have been able to count on dramatic increases in CPU speed and processing power on a Moore’s Law schedule. But, Moore did not say that the processing speed and power of CPUs would double every eighteen months, he said that the number of gates on a single chip would double every eighteen months. So, all was good for a long time because that doubling of gates meant smaller _and_ faster gates and greater architectural complexity and thus ‘faster’ CPUs. So by about 2005, just about every good idea for a better computer processor architecture ever thought of was incorporated into the major microprocessors on the market. So, when 2006 rolled around the obvious thing to do was to use the next doubling of gates to double the number of ‘processors’ on a microprocessor. Dual core was here and the trend will continue for at least a couple of doublings. Who knows what strange beasties will emerge when we get to the point where ‘many core’ processors become ‘too many core’ processors. Until then, though we can be sure: &lt;EM&gt;Multicore killed the serial star....&lt;/EM&gt; &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;More on this tomorrow.&lt;/EM&gt; &lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=16036" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Dev+Center/default.aspx">Dev Center</category><category domain="http://port25.technet.com/archive/tags/Frank+Chism/default.aspx">Frank Chism</category></item><item><title>What Lies Beneath: Setting up underlying HPC tools</title><link>http://port25.technet.com/archive/2006/12/21/what-lies-beneath-setting-up-underlying-hpc-tools.aspx</link><pubDate>Thu, 21 Dec 2006 22:34:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:3387</guid><dc:creator>kishi</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=3387</wfw:commentRss><comments>http://port25.technet.com/archive/2006/12/21/what-lies-beneath-setting-up-underlying-hpc-tools.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;This blog continues what I started writing about w/ &lt;a href="http://port25.technet.com/archive/2006/12/01/thinking-about-hpc-infrastructure.aspx"&gt;Thinking About HPC Infrastructure&lt;/a&gt;&amp;nbsp;and what Frank wrote in about in &lt;a href="http://port25.technet.com/archive/2006/10/20/Overloading-_2700_Clusters_2700_.aspx"&gt;Overloading Clusters&lt;/a&gt;. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;After reading thru the previous blogs on HPC, someone might ask &amp;ldquo;What are some of the core components of HPC ?&amp;rdquo;. After all, once you&amp;rsquo;ve seen the outside of a Maserati or a Pantera DeTomaso, you&amp;rsquo;re not going to be satisfied just by ogling at it. Even after a test drive, the engineer in you will want to pop the hood and see what&amp;rsquo;s inside. Taking a similar approach let&amp;rsquo;s uncover some underlying HPC technologies by looking at any basic HPC setup. Once all the provisioning has been completed, the HPC system will be physically deployed with an OS and relevant drivers, utilities etc. Yet, before the actual HPC application can get installed across, there remains a critical step in the process, i.e. configuration of cluster and file system along with any tools and interfaces such as MPI (Message Passing Interface) etc. After peeling through the HPC application layer, its worthwhile to do a &amp;ldquo;deep-dive&amp;rdquo; into what really runs the HPC clusters. A broad category of these tools are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Cluster Management tools e.g. CSM&lt;/li&gt;&lt;li&gt;Job Scheduling tools e.g. SCALI, Maui&lt;/li&gt;&lt;li&gt;Resource Management tools e.g. Torque&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you&amp;rsquo;re trying to understand the &amp;ldquo;WHY&amp;rdquo; behind the existence of these tools and their importance, take a look at Cluster Management for example. Cluster configuration, installation and management can be difficult and requires intimate familiarity with the HPC hardware, OS, underlying architecture etc. Without specific tools that attend to and manage specific underlying HPC sub-components, HPC just won&amp;rsquo;t be what it is. So, it is worthwhile to understand the unique installation experience of the tools, such as the ones listed above to understand the complexity of HPC systems. Ready &amp;ndash; let&amp;rsquo;s dive in to the installation and function of these tools:&lt;/p&gt;&lt;p&gt;1. &lt;strong&gt;SCALI&lt;/strong&gt;: The &lt;a href="http://www.scali.com/"&gt;SCALI&lt;/a&gt; management and MPI software packages provide deployment, monitoring and job scheduling services for a cluster.&amp;nbsp; After you deploy this software, you will be able see all the compute nodes that may have been preconfigured or are configured on your system. Scali will enable you to monitor the systems and run jobs using the SCALI graphical interface.&amp;nbsp; In order to license the SCALI software, you must utilize the scainstall command to produce a &lt;em&gt;license request file.&lt;/em&gt;&amp;nbsp; This file can then be sent to SCALI to receive a permanent key. For those that need some hand-holding through this, luckily SCALI provides very comprehensive documentation on their website.&amp;nbsp; A large portion of the SCALI Manage User&amp;rsquo;s Guide is dedicated to pre-setup planning and configuration of the cluster and the network.&amp;nbsp; The documentation provides detailed recommendations about how you can set up their Ethernet-based network environment and out-of-band management network.&amp;nbsp; The documentation also provides a general overview about how to install and configure higher performance interconnects, including bonded Ethernet, Infiniband, Myrinet and SCI. The SCALI Manage interface provides simple tools to assist in configuring and testing DET, Infiniband, and Myrinet devices for use with the SCALI MPI implementation.&amp;nbsp; The SCALI MPI software supports multiple Infiniband stacks including Mellanox, Topspin, Voltaire and Infinicon.&lt;/p&gt;&lt;p&gt;2. &lt;strong&gt;HP-MPI&lt;/strong&gt;: &lt;a href="http://h21007.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/1,1701,1238,00.html"&gt;HP-MPI&lt;/a&gt; is Hewlett-Packard&amp;rsquo;s Linux-based implementation of the Message Passing Interface (MPI).&amp;nbsp; Many of the utilities distributed with HP-MPI are similar to other common MPI utilities such as MPICH - e.g. mpicc, mpirun, etc. In order to utilize the HP-MPI software, a license is required for each CPU core in the cluster.&amp;nbsp; To obtain a license file you are required to obtain the MAC address from each node (typically eth0) and input that information into a form at licensing.hp.com.&amp;nbsp; The resulting file can then be copied to the compute node. The HP-MPI software is non-functional until licensing files are generated for the nodes&lt;/p&gt;&lt;p&gt;3. &lt;strong&gt;CSM&lt;/strong&gt; (&lt;strong&gt;Cluster Systems Management&lt;/strong&gt;): The &lt;a href="http://www-03.ibm.com/servers/eserver/clusters/software/csm.html"&gt;CSM&lt;/a&gt; software suite is designed to automate the deployment and management of cluster nodes.&amp;nbsp; Nodes can be remotely installed with an operating system as well as the CSM software for later monitoring.&amp;nbsp; The CSM software supports RedHat and Novell on multiple platforms.&amp;nbsp; In order to obtain and install the CSM software one must register with IBM&amp;rsquo;s website and download the required RPMs. In order to configure CSM, it can remotely install the operating system and/or the CSM software on the compute nodes.&amp;nbsp; Much like Platform ROCKS, CSM makes use of PXE functionality and RedHat&amp;rsquo;s kickstart or the autoyast software to remotely install the operating system. The CSM software provides multiple methods for defining the nodes that should be deployed and managed:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;a. The first method involves creating a hostname mapping (hostmap) file, which is a colon-delimited file that defines a number of attributes of each node&lt;br /&gt;b. The second method also involves manually creating and editing a &amp;ldquo;node definition&amp;rdquo; (nodedef) file.&amp;nbsp; This is the method suggested by the documentation for use with small clusters&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Proper remote power and remote console capabilities greatly ease the administration and deployment of the compute nodes, however according to the &lt;em&gt;&lt;u&gt;CSM FAQ&lt;/u&gt;&lt;/em&gt; remote power management is not absolutely required. All the compute nodes must be rebooted (remotely or manually).&amp;nbsp; They are then PXE booted and installed with RHEL4 using the kickstart installation system.&lt;/p&gt;&lt;p&gt;4. &lt;strong&gt;Maui and Torque&lt;/strong&gt;: Both Torque and Maui are free software which must be compiled from the source distribution on the head node.&amp;nbsp; Maui is an open-source job scheduler for compute clusters.&amp;nbsp; It supports a number of task management features not found in other parallel batch processing software including policy-based scheduling and prioritization of tasks. Torque is an open-source resource manager for managing compute nodes and scheduled jobs.&amp;nbsp; It can integrate with Maui to provide additional features for scheduling and managing scheduled tasks.&amp;nbsp; Installation of Torque can be done using the guidance available in the &lt;a href="http://www.clusterresources.com/torquedocs20/1.1installation.shtml"&gt;&lt;em&gt;Torque 2.0 Admin Manual&lt;/em&gt;&lt;/a&gt;&lt;em&gt; .&lt;/em&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;5. &lt;strong&gt;Platform Rocks&lt;/strong&gt;: &lt;a href="http://www.platform.com/Products/Platform.OCS/"&gt;Platform Rocks&lt;/a&gt; is a cluster deployment software that facilitates the deployment of various software stacks (&amp;ldquo;rolls&amp;rdquo;) onto the compute nodes.&amp;nbsp; The software is capable of deploying the base operating system and utilities required for cluster administration, management and scheduling.&amp;nbsp; The software can also manage configuration and updates to ensure consistency throughout the cluster. &lt;em&gt;Platform Rocks&lt;/em&gt; is a suite of utilities that are packaged together as separate installable rolls.&amp;nbsp; One of the main goals of the software is to allow for easy installation and integration of third-party rolls and applications.&amp;nbsp; One unique aspect to the Platform Rocks installation approach is that the software installs an operating system on the head node, and also installs all the required rolls at the same time.&amp;nbsp; The software can also automatically set up the subsystem required to install an operating system and other packages on the compute nodes (such as management agents, etc). &lt;/p&gt;&lt;p&gt;That about does it for a quick &amp;ldquo;deep-dive&amp;rdquo;. Let me insert a gentle reminder that these are not the only cluster or resource management technologies out there in the HPC space but rather the ones most prevalent. If you have additional tools that you have worked with, we&amp;rsquo;d like to hear from you and thank you for tuning in to Port 25. &lt;strong&gt;HAPPY HOLIDAYS!&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=3387" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Kishi+Malhotra/default.aspx">Kishi Malhotra</category><category domain="http://port25.technet.com/archive/tags/Technical+Analysis/default.aspx">Technical Analysis</category><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Server+Center/default.aspx">Server Center</category></item></channel></rss>