Feeds:
Posts
Comments

The project I have been working on for close to a year has been announced today – Open Government Data Initiative (OGDI). The road was long and winding but satisfying. The outcome of the project is a set of software components, soon provided as free, open source on CodePlex, helping government organizations to publish data on the Web and provide interactive and programmatic access to it using broadly adopted open protocols and formats from practically any technology and platform under the sun. The other cool thing about OGDI is that it is a cloud application. It stores data in and runs on Windows Azure. Please take a look at the site and let us know what you think.

Windows PowerShell is a command line shell for Windows that relies upon and deeply integrates with the .NET Framework. PowerShell includes a scripting language, development framework, and a re-hostable runtime. It takes best ideas from popular command shells that came before it and improves upon them. PowerShell is built around an idea of object pipelines, which is the source of its power and flexibility. It is one of those elegantly designed systems that make you quietly giggle with delight. I will even go as far as to say that it is as good a reason as any to learn .NET programming. Even if you are never going to touch PowerShell, learning about PowerShell will make you a better developer. I highly recommend to start with this video, presented by Jeffrey Snover, the architect of PowerShell, at JAOO 2008. Do not delay, grab your favorite drink, find a quite place, and give yourself this treat.

A few weeks ago I presented on the subject. My slides and sample code can be downloaded here. The following pre-requisites must be installed in order to build and run sample code:

Yesterday I co-presented at the Washington D.C. area HPCPAL Jumpstart event. The purpose of the event was to provide IT professionals and developers with an overview of the upcoming release of Microsoft’s high performance computing (HPC) platform, Windows HPC Server 2008. I presented the developer portion of the event and Ed Leary, the other presenter, delivered two sessions aimed at the IT professionals and focused on cluster deployment and management. My presentation highlighted the following three topics:

  • Jobs, job templates, job scheduler, scheduling policies, manual job submission, and programmatic job submission and monitoring.
  • Windows Communication Foundation (WCF) Broker – completely new programming model and runtime system for building applications that leverage computational clusters interactively for offloading embarrassingly parallel computations. As you might have already guessed, this feature is using WCF for application to cluster interactions.
  • Microsoft’s implementation of the Message Passing Interface (MPI) standard, MPI tracing support and MPI.NET. Microsoft MPI implementation, known as MS-MPI, is based on the MPICH2 implementation from the Argonne National Laboratory. MPI.NET is an extremely elegant and efficient wrapper over the MS-MPI developed at the Indiana University. MPI.NET puts the full power of MPI, up until now accessible only to a relatively small group of Fortran/C/C++developers, in the hands of .NET developer.

My slides and code samples, as well as Ed’s slides, can be downloaded from here. The following pre-requisites must be installed in order to compile the code samples:

You will need to build a Windows HPC Server 2008 Beta 2 cluster to be able to run the samples. You can find all the necessary software downloads and instructions here.

Free performance lunch is over. During the past few decades we witnessed continuous growth of single core processor performance powered, for the most part, by increases in processor clock speed and improvements in instruction level parallelism. All applications benefited from this trend and, even unchanged, ran faster with each passing year. Unfortunately, it appears that these two engines ran out of steam, at least for the time being. Moving forward and for the foreseeable future transistor budgets will increasingly be spent on increasing the number of processor cores per chip, leading to the appearance of multi-core chips at first (4 to 8 core chips are a reality today) and many-core chips in the future (tens to potentially hundreds of cores per ship). To take advantage of this new hardware reality the whole software stack – operating systems, programming frameworks, programming languages, tools, and applications will have to adjust. From now on, to ride the performance wave again, developers will have to specifically tailor their applications for scale out on multi/many-core processor architectures. That is challenging task today, given the state of tools and abstractions provided by platform and tool vendors. Recognizing this shift and existing technology gap, Microsoft has been conducting research and development activities in the area of parallel development for a number of years now. Yesterday, Microsoft announced the June CTP release of the Parallel Extensions to .NET. Parallel Extensions for .NET is a library aimed at significantly reducing the complexity of parallel application development, using .NET Framework. It is a compact and simple install – just a single DLL and a documentation file. It is purely additive to the .NET Framework 3.5 and doesn’t affect existing applications at all. So, please download it, try it out, and provide feedback. Since this is a CTP there is still plenty of opportunity left to shape the final product.

Additional information:

Released! Parallel Extensions to the .NET Framework June 2008 CTP

What’s New in the June 2008 CTP of Parallel Extensions

Known Issues in the June 2008 CTP of Parallel Extensions

On Achieving Perfection –or– Why We Love Your Feedback (and Why You Can Love Giving It)

Parallel Computing Development Center on MSDN