Excel 2010 introduced support for offloading UDF computations to a compute cluster. The Excel blog talks about it http://blogs.msdn.com/b/excel/archive/2010/02/12/offloading-udf-s-to-a-windows-hpc-cluster.aspx, and there are some nice pictures on this TechNet article: http://technet.microsoft.com/en-us/library/ff877825(WS.10).aspx.
Excel-DNA now supports marking functions as cluster-safe, and I have updated the loader to allow add-ins to work under the
XllContainer on the HPC nodes. There are some issues to be aware of:
- The add-in does not create its own
AppDomainwhen running on the compute node. One consequence is that no custom
.xll.configfile is used; configuration entries need to be set in the
- There are some limitations on the size of array data that can be passed to and from UDF calls - this limit is probably configurable in the WCF service.
- Only the 32-bit host is currently supported.
To test this you will need an Windows HPC Server 2008 R2 cluster with the HPC Services for Excel installed. On the clients you need Excel 2010 with the HPC cluster connector installed. The latest check-in for Excel-DNA with this support is on GitHub: https://github.com/Excel-DNA/ExcelDna.
In the Microsoft HPC SDK there is a sample called ClusterUDF.xll with a few test functions. I have recreated these in C# in the samples file Distribution\Samples\ClusterSample.dna Basically functions just need to be marked as
IsClusterSafe=true to be pushed to the cluster for computation. For example
public static int DnaCountPrimesC(int nFrom, int nTo)
As usual, any feedback on this feature - questions or reports on whether you use it - will be most appreciated.