<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.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>Accelerating Things</title><link>http://blogs.msdn.com/b/accelerating_things/</link><description>Insights gained from developing and using Microsoft&amp;#39;s High Performance Computing Server.</description><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.14036 (Build: 5.6.583.14036)</generator><item><title>Dryad Beta Now Available</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2011/05/03/dryad-beta-now-available.aspx</link><pubDate>Wed, 04 May 2011 03:03:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10160709</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10160709</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2011/05/03/dryad-beta-now-available.aspx#comments</comments><description>&lt;p&gt;Dryad, the distributed data computation framework originally developed by MSR, has now been integrated with HPC Server. You can now use the LINQ programming model in C# to develop applications that scale out across a cluster and handle large amounts of distributed data.&lt;/p&gt;
&lt;p&gt;Beta bits, documentation, and samples are now available on the &lt;a href="https://connect.microsoft.com/HPC/Downloads/DownloadDetails.aspx?DownloadID=35836" title="Connect Site"&gt;Connect site&lt;/a&gt;.&lt;/p&gt;
&lt;div class="mcePaste" id="_mcePaste" style="position: absolute; width: 1px; height: 1px; overflow: hidden; top: 0px; left: -10000px;"&gt;﻿&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10160709" width="1" height="1"&gt;</description></item><item><title>AppFabric Caching and HPC</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2011/02/11/appfabric-caching-and-hpc.aspx</link><pubDate>Fri, 11 Feb 2011 18:52:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10128210</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10128210</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2011/02/11/appfabric-caching-and-hpc.aspx#comments</comments><description>&lt;p&gt;I recently published a &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1c7f5c27-a31b-485a-a2af-431a92d16b07" title="white paper"&gt;white paper&lt;/a&gt; about how to integrate &lt;a href="http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx" title="Windows Server AppFabric"&gt;Windows Server AppFabric Caching&lt;/a&gt;&amp;nbsp;with &lt;a href="http://www.microsoft.com/hpc" title="Windows HPC Server 2008 R2"&gt;Windows HPC Server 2008 R2&lt;/a&gt;&amp;nbsp;to provide an in-memory cache capable of supporting the data demands of many distributed applications. The&amp;nbsp; paper walks through the setup and configuration of an AppFabric Caching subsystem, the development of an application leveraging HPC's Service Oriented Architecture (SOA) development model, and the performance measurements motivating&amp;nbsp;the use of&amp;nbsp;AppFabric Caching. In addition,&amp;nbsp;a &lt;a href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/sample code package&amp;amp;nbsp;" title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9bfa085b-7a0d-49bc-8d4a-cfc11c63fef9"&gt;sample code package&lt;/a&gt;&amp;nbsp;provides a reference solution which can be extended by developers. &lt;/p&gt;
&lt;p&gt;You can download both the white paper and sample code via the above links or get the whole package&amp;nbsp;by downloading the "CommonDataCaching.Sample.zip" from the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9bfa085b-7a0d-49bc-8d4a-cfc11c63fef9" title="Windows HPC SDK page"&gt;Windows HPC SDK page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10128210" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Caching/">Caching</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/SOA/">SOA</category></item><item><title>HPC Services for Excel Video</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/10/01/hpc-services-for-excel-video.aspx</link><pubDate>Fri, 01 Oct 2010 23:19:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10070544</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10070544</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/10/01/hpc-services-for-excel-video.aspx#comments</comments><description>&lt;p&gt;We've put together a really slick video which goes through what the HPC Services for Excel does and why it's useful. All in less than 5 minutes! The production values are great and it introduces the feature in a way that's interesting and easy to follow.&lt;/p&gt;
&lt;p&gt;If you're even casually interested in how Excel can work with an HPC cluster, this video is worth watching. Find it from the &lt;a href="http://www.microsoft.com/hpc/en/us/product/windows-hpc-server-2008.aspx" title="HPC site"&gt;HPC site&lt;/a&gt;&amp;nbsp;or access the &lt;a href="http://mediadl.microsoft.com/mediadl/www/h/hpc/wmv/hpc.wmv" title="video link"&gt;video link&lt;/a&gt; directly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10070544" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Excel/">Excel</category></item><item><title>HPC Launches on Wall Street</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/09/20/hpc-launches-on-wall-street.aspx</link><pubDate>Mon, 20 Sep 2010 17:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10065155</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10065155</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/09/20/hpc-launches-on-wall-street.aspx#comments</comments><description>&lt;p&gt;Several of&amp;nbsp;my HPC colleagues&amp;nbsp;are in NYC this week for the official launch of Windows HPC Server 2008 R2, which includes the new HPC Services for Excel among other great new features. Check out the latest and greatest from HPC and Microsoft's new Technical Computing initiative &lt;a href="http://blogs.technet.com/b/windowshpc/archive/2010/09/20/microsoft-technical-computing-launch-event.aspx" title="here"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10065155" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category></item><item><title>Instant Search is Easy</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/09/17/instant-search-is-easy.aspx</link><pubDate>Fri, 17 Sep 2010 17:15:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10064098</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10064098</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/09/17/instant-search-is-easy.aspx#comments</comments><description>&lt;p&gt;Apparently some people thought Google's new "Instant Search" feature, where searches are performed as you type, was pretty slick. Then they wrote their own using the public &lt;a href="http://www.bing.com" title="Bing"&gt;Bing&lt;/a&gt;&amp;nbsp;APIs. &lt;/p&gt;
&lt;p&gt;You can play with it at &lt;a href="http://www.binginstant.com" title="binginstant.com"&gt;binginstant.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It's always funny&amp;nbsp;when features touted as revolutionary&amp;nbsp;turn out to be really simple to throw together.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10064098" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Bing/">Bing</category></item><item><title>Loading Excel Add-Ins at Runtime</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/09/16/loading-excel-add-ins-at-runtime.aspx</link><pubDate>Thu, 16 Sep 2010 21:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10063559</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10063559</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/09/16/loading-excel-add-ins-at-runtime.aspx#comments</comments><description>&lt;p&gt;When automating Excel, the Excel.exe process should be started using the '/automation' switch. This is done automatically when creating a new Microsoft.Interop.Excel.Application object, however if you want to keep track of the Excel processes created you may have to create the Excel process and then get a reference to the application associated with that process. In this case, the /automation switch must be applied manually.&lt;/p&gt;
&lt;p&gt;Starting Excel with the /automation switch tells Excel, among other things, not to load any of the files in the XLStart directory or open any Excel Add-Ins. COM add-ins installed for all users are still loaded.&lt;/p&gt;
&lt;p&gt;This streamlines the launching of Excel and makes sure that no unnecessary code is running during automation. There are important cases where you may want to have a specific Excel Add-In like an .XLL or .XLAM loaded however. For example, you may have some library functions you want to leverage defined as UDFs in an XLL or VBA functions in an XLAM.&lt;/p&gt;
&lt;p&gt;The following options are available if you want to do this.&lt;/p&gt;
&lt;p&gt;1.) &lt;strong&gt;Application.RegisterXLL&lt;br /&gt;&lt;/strong&gt;a. This is a method which can be called from VBA which loads an XLL at a specific location and registers the functions and commands contained in the XLL. &lt;br /&gt;2.)&lt;strong&gt; AddIns.Add&lt;br /&gt;&lt;/strong&gt;a. This is a method which can be called from VBA which loads any type of add-in (XLL, XLA or XLAM). After loading the add-in, perform step 3 to open it.&lt;br /&gt;3.) &lt;strong&gt;AddIn.Installed = true&lt;br /&gt;&lt;/strong&gt;a. Once you have a reference to a loaded add-in, set AddIn.Installed = true to cause the add-in to be opened.&lt;br /&gt;b. Note that add-ins that are known when Excel is started with the /automation switch will already be marked as "Installed", but they are not opened. In this case, Set Installed = false before setting Installed = true&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Workbook_Open()
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; success &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; myAddIn &lt;span class="kwrd"&gt;As&lt;/span&gt; AddIn
    
    &lt;span class="rem"&gt;' Load XLL&lt;/span&gt;
    success = Application.RegisterXLL(&lt;span class="str"&gt;"c:\myaddins\myxll.xll"&lt;/span&gt;)
    
    &lt;span class="rem"&gt;' Load and install new XLAM&lt;/span&gt;
    &lt;span class="kwrd"&gt;Set&lt;/span&gt; myAddIn = Application.AddIns.Add(&lt;span class="str"&gt;"c:\myaddins\myxlam.xlam"&lt;/span&gt;)
    myAddIn.Installed = &lt;span class="kwrd"&gt;True&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Load known XLAM&lt;/span&gt;
    &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; myAddIn &lt;span class="kwrd"&gt;In&lt;/span&gt; AddIns
        &lt;span class="kwrd"&gt;If&lt;/span&gt; myAddIn.Name = &lt;span class="str"&gt;"myknownaddin.xlam"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            myAddIn.Installed = &lt;span class="kwrd"&gt;False&lt;/span&gt;
            myAddIn.Installed = &lt;span class="kwrd"&gt;True&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;Next&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;
&lt;h3&gt;HPC Services for Excel &lt;/h3&gt;
&lt;p&gt;&amp;nbsp;The above strategies are effective for using add-ins on cluster compute nodes and workstation nodes with the HPC Services for Excel in Windows HPC Server 2008 R2.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10063559" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Excel/">Excel</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/XLL/">XLL</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/XLAM/">XLAM</category></item><item><title>Excel on HPC Resources</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/30/excel-on-hpc-resources.aspx</link><pubDate>Tue, 31 Aug 2010 01:40:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10056073</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10056073</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/30/excel-on-hpc-resources.aspx#comments</comments><description>&lt;p&gt;We have a new one-stop shop for all the HPC Services for Excel documentation and training. The &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/windows-hpc-and-microsoft-excel-survival-guide.aspx" title="Windows HPC and Microsoft Excel Survival Guide "&gt;Windows HPC and Microsoft Excel Survival Guide&lt;/a&gt; has everything from high-level overview and training to how-to guides and code samples. Check it out!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10056073" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Excel/">Excel</category></item><item><title>Workbook Offloading Versioning Plan</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/30/workbook-offloading-versioning-plan.aspx</link><pubDate>Tue, 31 Aug 2010 01:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10056072</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10056072</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/30/workbook-offloading-versioning-plan.aspx#comments</comments><description>&lt;p&gt;&lt;br /&gt;In Microsoft HPC Server 2008 R2, we offer HPC Services for Excel 2010. As part of this feature, we provide a framework for running Excel workbooks on a cluster through the &lt;em&gt;ExcelClient &lt;/em&gt;component. As this is a developer framework which we expect to support in future versions of HPC Server, we have developed a comprehensive versioning plan to ensure that your development investment is sustained across future versions of our product.&lt;/p&gt;
&lt;p&gt;To adhere to the versioning guidelines we expect to follow in the future, the only thing we require is for VBA developers to implement the &lt;em&gt;HPC_GetVersion&lt;/em&gt; macro in their workbooks as described in the existing documentation &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/windows-hpc-and-microsoft-excel-survival-guide.aspx" title="here"&gt;here&lt;/a&gt;. Since this release represents the first version of the HPC Services for Excel, "1.0" must be returned by the &lt;em&gt;HPC_GetVersion&lt;/em&gt; function. With this information, the &lt;em&gt;ExcelClient&lt;/em&gt; component will know that the workbook has implemented version 1.0 of the macro framework specification which supports the partition/execute/merge pattern for distributed computation of the Excel workbook, and thereby allow future versions of the&lt;em&gt; ExcelClient&lt;/em&gt; component to provide expected behavior even if features are added or changed.&lt;/p&gt;
&lt;h3&gt;&lt;br /&gt;Future Versioning Plans&lt;/h3&gt;
&lt;p&gt;In future releases, one or more of the following features may undergo revisions: &lt;/p&gt;
&lt;h4&gt;.NET Interfaces&lt;/h4&gt;
&lt;p&gt;The .NET interfaces will all follow strict versioning guidlines and adhere to Microsoft guidelines for obselescence of any public members.&lt;/p&gt;
&lt;h4&gt;&lt;br /&gt;COM Interface&lt;/h4&gt;
&lt;p&gt;The COM interface, &lt;em&gt;IExcelClient&lt;/em&gt;, will always be strictly versioned so that code written targeting the current interface will never be broken. For each revision of this interface, &lt;em&gt;IExcelClient&lt;/em&gt; will be assigned a new GUID and an &lt;em&gt;IExcelClientVx&lt;/em&gt; will be created with the previously assigned GUID where x is the previous version. So in the next revision of this interface, we will provide both an &lt;em&gt;IExcelClient&lt;/em&gt; and &lt;em&gt;IExcelClientV1&lt;/em&gt; interface. &lt;/p&gt;
&lt;p&gt;Developers are encouraged only to use the &lt;em&gt;IExcelClient&lt;/em&gt; interface, as Excel's VBA environment uses name-based type resolution and this will better allow workbooks written targetting the next version of the interface to work on computers which only have the current version installed. The &lt;em&gt;IExcelClientV1&lt;/em&gt; interface will be included to allow other COM clients which cache GUIDs to be compiled with the current binaries and continue to work on future versions without recompilation.&lt;/p&gt;
&lt;p&gt;If VBA developers would like to design their workbooks such that they make use of new APIs only provided in future versions of the &lt;em&gt;IExcelClient&lt;/em&gt; interface but also would like to work when used on a client with the current version of the product, they must check the &lt;em&gt;IExcelClient&lt;/em&gt;.&lt;em&gt;Version&lt;/em&gt; property at runtime and only call APIs provided in version X when version X or higher is returned. This will allow developers to explicitly fall back into a compatibility mode where only APIs provided in the current release, 1.0, are used, or produce a useful message to the user stating the requirements to run the workbook.&lt;/p&gt;
&lt;p&gt;If a feature is added to the &lt;em&gt;IExcelClient&lt;/em&gt; that is exposes a feature that is not available in the current release of the HPC Server product and a cluster running the current version is targeted, the user will receive an error at runtime which explains any incompatibility.&lt;/p&gt;
&lt;h4&gt;&lt;br /&gt;Macro Specification&lt;/h4&gt;
&lt;p&gt;Separately from the &lt;em&gt;IExcelClient&lt;/em&gt; interface, the macro specification may change. In this case, a new version of the macro specification will be published. Workbooks that wish to use the new framework will have to return the specified version in &lt;em&gt;HPC_GetVersion&lt;/em&gt; ("2.0" rather than "1.0" for example). Workbooks that wish to support multiple macro specifications will be able to return a list of versions (either as a string[] or variant[]). If such a workbook is run on a computer with the current release installed, the "1.0" macros will be used, while a computer with the latest release installed will use the latest macro specification.&lt;/p&gt;
&lt;p&gt;If the workbook does not implement version "1.0" of the macro specification and is used on either a client or a cluster with the current release installed, the user will receive a runtime error stating that the workbook is not supported.&lt;/p&gt;
&lt;h4&gt;&lt;br /&gt;SOA Service&lt;/h4&gt;
&lt;p&gt;The current version of the &lt;em&gt;ExcelService&lt;/em&gt; exposes a service contract which will follow strict versioning guidelines so client code written targetting the current service will work on future versions of this service. If additional functionality is added to this contract, it will only be used by future versions of the &lt;em&gt;ExcelClient&lt;/em&gt; component. In the case that some added functionality in a future version of &lt;em&gt;ExcelClient&lt;/em&gt; requires features not available in the current release of the &lt;em&gt;ExcelService&lt;/em&gt;, a runtime error will be generated explaining any incompatibility.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10056072" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Excel/">Excel</category></item><item><title>Why can't I open two workbooks with the same name??</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/30/why-can-t-i-open-two-workbooks-with-the-same-name.aspx</link><pubDate>Tue, 31 Aug 2010 00:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10056066</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10056066</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/30/why-can-t-i-open-two-workbooks-with-the-same-name.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-37-39/8688.duplicate.PNG" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;This is a pop-up that's sparked multi-minute-long rants&amp;nbsp;which always result in a profanity-laden diatribe against seemingly arbitrary rules in general and Microsoft in particular. When I joined the company, it was with a mandate to figure out why this is the case and fix it. I'm happy to report that I've determined the answer to the first part and&amp;nbsp;very good reasons&amp;nbsp;why neither I nor anyone else is going to do the second.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It all has to do with naming qualification and ambiguity resolution. Let's say you have two workbooks, BookA.xlsm and BookB.xlsm. If BookA wants to reference a cell in BookA, it can simply set one cell equal to another using the familiar =[cellref] syntax as shown below:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-37-39/3581.cellref.PNG" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;What if you want to reference a cell in BookB? Well that's easy, just qualify it with the name of the workbook and worksheet where Excel should go to find the cell in question as shown below:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-37-39/6011.cellrefwb.PNG" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;This is a great feature of Excel which has enabled people to build up tremendously complicated systems of workbooks with simple&amp;nbsp;cross-references, multi-workbook calculation chains, and encapsulated functional areas. You can even&amp;nbsp;follow standard&amp;nbsp;software development practices like Model-View-Controller patterns by having a&amp;nbsp;Model workbook encapsulating the business logic and data, a View workbook encapsulating the&amp;nbsp;UI and results display, and a Controller workbook&amp;nbsp;managing the interactions.&amp;nbsp;As you jump into VBA programming, ties between workbooks&amp;nbsp;will only get more complicated and qualification more necessary. &lt;/p&gt;
&lt;p&gt;But&amp;nbsp;wait!! What happens if there are two workbooks named BookB.xlsm open in the same Excel process? Which workbook is meant by BookB.xlsm? The answer is that you can't know. The duplicated use of the same name has made this case strictly ambiguous.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What can be done about that? You have two options 1.) Redesign the qualification scheme such that it is completely unique, or 2.) Disallow multiple workbooks with the same name to be opened by a single Excel process. Obviously the later option was chosen by the Excel team way back in the early days of Excel. &lt;/p&gt;
&lt;p&gt;This is why multiple workbooks with the same name cannot be opened by Excel within a single process.&lt;/p&gt;
&lt;p&gt;If that sounds unfortunate, consider option 1. To come up with a qualification scheme that's unique, you'd need to detach the workbook name from the qualifier. Let's say you choose a GUID-based system where each GUID is associated with a particular workbook file and that you know about all the workbooks you'll need and all their GUIDs. Now you write a big complicated workbook system with tons of GUIDs all over the place. What happens if someone makes some changes to an existing workbook and saves a copy of it. Either these two&amp;nbsp;copies now have different GUIDs or the same GUID, both of which would introduce problems down the line.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If they have different GUIDs, then the newly saved workbook cannot be used with any old code that accesses it's entries based on the GUID. This would essentially destroy the idea of backups, as you'd be changing the workbook when you saved a copy.&lt;/li&gt;
&lt;li&gt;If they have the same GUID and they contain different logic or data, then how can the workbook developer choose between these two workbooks? Well, you'd need a qualification scheme... Yikes!&amp;nbsp;You can see where this cycle would go. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&amp;nbsp;The Workaround&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;The only reason that multiple workbooks &lt;em&gt;can&lt;/em&gt; reference each other is that Excel supports a Multi-Document Interface (MDI) with multiple workbooks managed by a single process and UI. So the natural cure to the resulting&amp;nbsp;reference ambiguity is to disallow it by opening each workbook in a separate instance of Excel. This can easily be done by opening Excel from the commandline or start menu and then opening workbooks from within that interface. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;That's all on this topic. Hopefully this at least helps you to feel informed the next time you forget and try to open a second workbook with the same name and get that lovely warning.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10056066" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Excel/">Excel</category></item><item><title>Testing Access to Excel Workbook </title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/12/testing-access-to-excel-workbook.aspx</link><pubDate>Thu, 12 Aug 2010 19:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10049527</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10049527</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/08/12/testing-access-to-excel-workbook.aspx#comments</comments><description>&lt;p&gt;One of the common problems people may run into while offloading a workbook across a cluster is making sure that all the compute nodes can see the workbook. When the workbook is simply inaccessible (not deployed or shared), this is very clear from client error messages. However, if only a subset of the compute nodes cannot see the workbook, then&amp;nbsp;determining which nodes don't have a copy can be more difficult. You end up having to do a bit of trial and error or write a script that tests if the workbook can be accessed from each node. Even this&amp;nbsp;isn't foolproof in the&amp;nbsp;case of corrupt workbooks which&amp;nbsp;exist where they're supposed to but still cannot be opened.&lt;/p&gt;
&lt;p&gt;To address this issue, I've put together a&amp;nbsp;powershell script which can be run&amp;nbsp;from any cluster client computer (cluster nodes included) that uses the HPC Services for Excel binaries to open the workbook from each cluster node. To modify this for use with you're workbook, simply replace &lt;strong&gt;[WorkbookPath] &lt;/strong&gt;with the path where you expect to find the workbook (eg \\mycomputer\share\myworkbook.xlsm or c:\temp\myclusterworkbook.xlsm, etc).&lt;/p&gt;
&lt;pre&gt;    &lt;span style=" color: #35687D;"&gt;$script&lt;/span&gt; = {  
                &lt;span style=" color: #35687D;"&gt;$workbookPath&lt;/span&gt; = &lt;span style=" color: Maroon;"&gt;"[WorkbookPath]"&lt;/span&gt; 
                &lt;span style=" color: #35687D;"&gt;$asm&lt;/span&gt; = [Reflection.Assembly]::Load(&lt;span style=" color: Maroon;"&gt;"Microsoft.Hpc.Excel,Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;);  
                &lt;span style=" color: #35687D;"&gt;$driver&lt;/span&gt; = &lt;span style=" color: #2B91AF;"&gt;new-object&lt;/span&gt; Microsoft.Hpc.Excel.ExcelDriver;  
                try 
                { 
                    &lt;span style=" color: #35687D;"&gt;$driver&lt;/span&gt;.OpenWorkbook(&lt;span style=" color: #35687D;"&gt;$workbookPath&lt;/span&gt;);  
                } 
                catch 
                { 
                    &lt;span style=" color: #35687D;"&gt;$msg&lt;/span&gt; = &lt;span style=" color: Maroon;"&gt;"Unable to open workbook: "&lt;/span&gt; 
                    &lt;span style=" color: #35687D;"&gt;$msg&lt;/span&gt; += &lt;span style=" color: #35687D;"&gt;$workbookPath&lt;/span&gt; 
                    &lt;span style=" color: Blue;"&gt;return&lt;/span&gt; &lt;span style=" color: #35687D;"&gt;$msg&lt;/span&gt;         
                } 
                finally 
                { 
                    &lt;span style=" color: #35687D;"&gt;$driver&lt;/span&gt;.Dispose() 
                }}       
                 
    &lt;span style=" color: #35687D;"&gt;$encodedscript&lt;/span&gt; = [System.Convert]::ToBase64String([System.Text.Encoding]::UNICODE.GetBytes(&lt;span style=" color: #35687D;"&gt;$script&lt;/span&gt;)) 
     
    clusrun powershell -EncodedCommand &lt;span style=" color: #35687D;"&gt;$encodedscript&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;This script builds a series of powershell commands and then encodes it such that it can be invoked from CMD. This gets around the inability to invoke complex powershell commands from CMD and difficulty remotely running powershell scripts without lowering security settings. The one downside to this approach is that you have to explicitly write out the workbook path rather than passing it as an argument. This is due to the encoding process which encodes exactly the script you give it without evaluating any contained code. Regardless, the above script works nicely and will give you a rundown of your cluster nodes and whether or not they can open the workbook specified. An example output is below:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-37-39/1541.powershellresults.png" border="0" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10049527" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Excel/">Excel</category></item><item><title>Excel Workbook Offloading Beta Transition Guide</title><link>http://blogs.msdn.com/b/accelerating_things/archive/2010/07/06/excel-workbook-offloading-beta-transition-guide.aspx</link><pubDate>Wed, 07 Jul 2010 01:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10035182</guid><dc:creator>[MSFT] Jeremy Espenshade</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/accelerating_things/rsscomments.aspx?WeblogPostID=10035182</wfw:commentRss><comments>http://blogs.msdn.com/b/accelerating_things/archive/2010/07/06/excel-workbook-offloading-beta-transition-guide.aspx#comments</comments><description>&lt;h1&gt;Excel Workbook Offloading Beta Transition Guide&lt;/h1&gt;
&lt;p&gt;The Beta 2 release of &lt;a href="http://www.microsoft.com/hpc/en/us/default.aspx"&gt;Windows HPC 2008 R2&lt;/a&gt; that was made available this past spring included the first public release of a feature allowing developers to take a computationally intensive workbook, add some VBA code, and run it on a cluster entirely within the workbook. By implementing a set of pre-defined VBA functions to parallelize and coordinate computation, existing business logic can used across a set of workbooks running in parallel on a cluster. &lt;/p&gt;
&lt;p&gt;This post is for those developers and partners that have already started using HPC Beta 2 to offload workbook computation or received training on the API as it was defined in the Beta release. Based on customer and partner feedback, we made a number of breaking changes for the release candidate (RC) to ensure that the first official release met the needs of our customers in an intuitive and robust manner. This guide will walk through those changes, why they were made, and how to update your existing Beta workbooks to use the new APIs. For those of you who are unfamiliar with this feature, I highly suggest reading the HPC Services for Excel white papers (links available &lt;a href="http://technet.microsoft.com/en-us/library/ff627850(WS.10).aspx"&gt;here&lt;/a&gt; ) and encourage you to think about what workbooks you use that may benefit from parallelization (see also &lt;a href="http://technet.microsoft.com/en-us/library/ee815854(WS.10).aspx#BKMK_Excel"&gt;Developer resources for Excel&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;This article addresses the following changes from Beta 2 to RC:&lt;/p&gt;
&lt;p&gt;Macro Specification &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For workbook offloading, the workbook must now include a new macro called HPC_GetVersion().&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ExcelClient COM API&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ExcelClientV1 and IExcelClientV1 have changed to ExcelClient and IExcelClient, respectively.&lt;/li&gt;
&lt;li&gt;To select a resource type, use SessionUnitType instead of ResourceUnitType.&lt;/li&gt;
&lt;li&gt;The workbook path is now a parameter for the ExcelClient.OpenSession method instead of for the ExcelClient.Initialize method.&lt;/li&gt;
&lt;li&gt;The ExcelClient.OpenSession method includes new parameters to specify the workbook path, the service name, and a job template.&lt;/li&gt;
&lt;li&gt;The ExcelClient.DeployWorkbook method was removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Macro Specification&lt;/h2&gt;
&lt;p&gt;As part of the Beta 2 release, we provided a specification for macros that must be implemented to allow a workbook computation to be divided into pieces (HPC_Partition), calculated in parallel (HPC_Execute), and aggregated and displayed to the user (HPC_Merge). In addition to these and the other optional macros defined in Beta 2 (HPC_Initialize, HPC_Finalize, and HPC_ExecutionError), a final macro, HPC_GetVersion is now required. It is expected to be implemented as follows.&lt;/p&gt;
&lt;p&gt;Function HPC_GetVersion() As String &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; HPC_GetVersion = "1.0" &lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;This macro is necessary for future versioning support in the eventuality that we change the macro specification to support additional features in future releases. By implementing HPC_GetVersion now, you will be ensuring that your workbook will run correctly across future releases of HPC Services for Excel. This is a required function and ExcelClient.Initialize will throw if it is not implemented or returns an incompatible version ("1.0" is the only compatible version for this release).&lt;/p&gt;
&lt;h2&gt;ExcelClient COM API&lt;/h2&gt;
&lt;h3&gt;Type Names&lt;/h3&gt;
&lt;p&gt;To initiate calculation and request cluster resources, a COM-visible library is available called Microsoft_HPC_Excel. In the Beta 2 release, we exposed two types: ExcelClientV1 and IExcelClientV1, the class and interface respectively. In the RC, the names of these types have changed to ExcelClient and IExcelClient, dropping the V1 suffix. As our future versioning plans solidified we realized that this naming scheme will better enable us to seamlessly support forward/backward compatibility among workbooks written targeting multiple versions of the HPC Services for Excel libraries. &lt;/p&gt;
&lt;h3&gt;SessionUnitType Enumeration&lt;/h3&gt;
&lt;p&gt;In Beta2, developers were instructed to use the ResourceUnitType enumeration to select the type of resource (core, node, or socket) requested in ExcelClient.OpenSession. This type was defined in Microsoft.Hpc.Scheduler.Properties. In an effort to increase the modularity and independence of our components, we now expose a separate enumeration over COM called SessionUnitType in Microsoft.Hpc.Excel. This enum contains the same possible selections of core, socket, or node allocation.&lt;/p&gt;
&lt;h3&gt;ExcelClient.Initialize Method&lt;/h3&gt;
&lt;p&gt;In Beta 2, the ExcelClient.Initialize method signature was defined as follows.&lt;/p&gt;
&lt;p&gt;ExcelClient.Initialize (Microsoft.Office.Interop.Excel.Application app, string remoteWorkbookPath)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;app - Currently running Excel application&lt;/li&gt;
&lt;li&gt;remoteWorkbookPath - path where the compute nodes in the cluster can find the workbook&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first thing we realized was that specifying the remoteWorkbookPath in ExcelClient.Initialize was unintuitive. Initialize may only be called once per ExcelClient instance, so changing the workbook path between calculations was not possible without disposing and recreating an ExcelClient instance. In addition, this path is not required if calculating locally and it doesn't make sense to require a parameter that is never used. To remedy both of these issues, remoteWorkbookPath is now a parameter to the ExcelClient.OpenSession method.&lt;/p&gt;
&lt;p&gt;The remaining parameter to ExcelClient.Initialize, the Excel application, was also changed. It is possible to have multiple workbooks open within a single Excel instance, but when offloading workbook computations, all of the interaction is with the workbook, so it is less ambiguous to pass a reference to the workbook that implements the partition/execute/merge macro specification rather than the application which has that workbook (and potentially other workbooks) open.&lt;/p&gt;
&lt;p&gt;With those changes, ExcelClient.Initialize now has the signature:&lt;/p&gt;
&lt;p&gt;ExcelClient.Initialize (Microsoft.Office.Interop.Excel.Workbook workbook)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;workbook - Excel workbook that contains the functions that implement the macro specification&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ExcelClient.OpenSession Method&lt;/h3&gt;
&lt;p&gt;In Beta 2, the ExcelClient.OpenSession method signature was defined as follows.&lt;/p&gt;
&lt;p&gt;ExcelClient.OpenSession(string headNode, int minResources, int maxResources, ResourceUnitType resourceType)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;headNode - name of the head node of the cluster to use&lt;/li&gt;
&lt;li&gt;minResources - minimum number of resources required&lt;/li&gt;
&lt;li&gt;maxResources - maximum number of resources required&lt;/li&gt;
&lt;li&gt;resourceType - type of resource requested. Defined by Microsoft_Hpc_Scheduler_Properties.ResourceUnitType. Core, Socket, or Node types available.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As discussed in the ExcelClient.Initialize Method section above, the remoteWorkbookPath parameter specifying where cluster compute nodes can find the workbook is now included in the parameter list for ExcelClient.OpenSession. ResourceUnitType was replaced by SessionUnitType as discussed above as well. Several additional parameters were also added while making a number of parameters optional.&lt;/p&gt;
&lt;p&gt;The additional parameters added are a job template and a service name. The job template parameter allows a cluster administrator to create a template that defines things like job priority and node groups. This is particularly helpful for Excel workbook offloading because many clusters may only have Excel installed on a subset of compute nodes, and creating an Excel-specific job template could allow jobs to be run only on those nodes that have Excel installed. &lt;/p&gt;
&lt;p&gt;The default service name is Microsoft.Hpc.Excel.ExcelService and a configuration file called Microsoft.Hpc.Excel.ExcelService_1.0.config is installed to the service registration directory. Unfortunately, this implies that the same configuration can be used for all Excel workbook offloading jobs. In some cases (extremely long running HPC_Execute macros, for example), it may be important to provide different configurations for different workbooks. This can be accomplished by creating a separate configuration file with a distinct name, say LongRunningExcel.config, and passing the service name, in this case "LongRunningExcel", to ExcelClient.OpenSession.&lt;/p&gt;
&lt;p&gt;Finally, with the exception of the headNode parameter which selects a cluster and the remoteWorkbookPath parameter which specifies where compute nodes can find the workbook, all parameters were made optional and product-wide defaults will be used for each unspecified parameter. &lt;/p&gt;
&lt;p&gt;After these changes, the method signature is as follows.&lt;/p&gt;
&lt;p&gt;ExcelClient.OpenSession(string headNode, string remoteWorkbookPath, [int minResources], [int maxResources], [SessionUnitType resourceType], [string jobTemplate], [string serviceName])&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;headNode - name of the head node of the cluster to use&lt;/li&gt;
&lt;li&gt;remoteWorkbookPath - path where the compute nodes in the cluster can find the workbook&lt;/li&gt;
&lt;li&gt;minResources - optional parameter specifying the minimum number of resources required&lt;/li&gt;
&lt;li&gt;maxResources - optional parameter specifying the maximum number of resources required&lt;/li&gt;
&lt;li&gt;resourceType - optional parameter specifying the type of resource requested. Defined by Microsoft_Hpc_Excel.SessionUnitType. Core, Socket, or Node types available.&lt;/li&gt;
&lt;li&gt;jobTemplate - optional parameter specifying a job template to use&lt;/li&gt;
&lt;li&gt;serviceName - optional parameter specifying a service name to use&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;ExcelClient.DeployWorkbook Method&lt;/h3&gt;
&lt;p&gt;In an effort to clarify what functionality we provide make use of existing functionality where already provided, we have removed the DeployWorkbook method. This method essentially saved a copy of the workbook in a specified directory, which is functionality provided by the ThisWorkbook.SaveCopyAs method provided in Excel's API.&lt;/p&gt;
&lt;h3&gt;Example Transition&lt;/h3&gt;
&lt;p&gt;Beta 2 API usage &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img border="0" src="http://blogs.msdn.com/resized-image.ashx/__size/800x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-37-39/5531.excel_5F00_before.png" /&gt;&lt;/p&gt;
&lt;p&gt;Final API usage after transition &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img border="0" src="http://blogs.msdn.com/resized-image.ashx/__size/800x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-37-39/2477.excel_5F00_after.png" /&gt;&lt;/p&gt;
&lt;h2&gt;Additional Changes to Notice&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Similar changes were made in the ExcelClient .NET API, and using this guide should make .NET code transition easy as well. &lt;/li&gt;
&lt;li&gt;ExcelClient .NET API now uses an event property rather than a parameter in OpenSession to specify a delegate for handling errors returned by the cluster.&lt;/li&gt;
&lt;li&gt;Event Viewer Tracing has moved from [Applications and Services Logs]\[Microsoft HPC Excel Pack] to [Applications and Services Logs]\[Microsoft]\[HPC]\[Excel] where it is organized into the traditional admin/operational/debug events. Significant expansion in tracing is also apparent and local tracing of has been added to help diagnose client problems.&lt;/li&gt;
&lt;li&gt;Performance and robustness improvements.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10035182" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/HPC/">HPC</category><category domain="http://blogs.msdn.com/b/accelerating_things/archive/tags/Excel/">Excel</category></item></channel></rss>