Advanced Service Configuration for HPC Services for Excel

Updated: February 2011

Applies To: Windows HPC Server 2008 R2

When you install the Enterprise Edition of HPC Pack 2008 R2 on your cluster, the configuration files for HPC Services for Excel are centrally deployed to the head node. The service configuration file is an XML file that is used to register the service on the cluster, configure service behavior, and customize how the broker interacts with the service. The default settings should accommodate most Excel jobs. In some cases, you might want to edit the settings. For the UDF offloading service, you can also edit the XLL container service configuration files to modify the expected location of XLL files.

This topic includes the following sections:

  • View or edit the service configuration files

  • Specify the location of the XLL files

  • Broker settings in the service configuration file

  • Configure different service behaviors for different UDFs or workbooks

View or edit the service configuration files

In HPC Cluster Manager, you can view and edit the service configuration files that are centrally deployed. The Services pane displays a list of services that have configuration files on the head node in the C:\Program Files\Microsoft HPC Pack 2008 R2\ServiceRegistration folder. HPC Services for Excel includes the following services that support Excel offloading jobs:

  • Microsoft.Hpc.Excel.ExcelSerivce: Loads and runs Excel 2010 workbooks that are deployed to the cluster

  • Microsoft.Hpc.Excel.XllContainer32: Loads and runs cluster-safe UDF from 32-bit XLL files that are deployed to the cluster

  • Microsoft.Hpc.Excel.XllContainer64: Loads and runs cluster-safe UDF from 64-bit XLL files that are deployed to the cluster

The following procedure describes how to edit a configuration file.

To view or edit a configuration file

  1. In HPC Cluster Manager, click Configuration, and then click Services.

  2. Right-click the name of a service, and then click Edit Configuration File.

  3. Make the desired changes, and then save.

Note
The configuration file opens in the default XML editor on your head node. Depending on what software is installed on your head node, the default XML editor can be a program such as Notepad, Visual Studio, or XML Notepad 2007 (which can be downloaded from the Microsoft Download Center.
Important
If you use the WCF Service Configuration Editor (SvcConfigEditor.exe) on a computer that has the Windows 7 operating system to edit the service configuration file, the extendedProtectionPolicy property is added to the file. This property is only supported on the Windows 7 operating system (Windows HPC Server 2008 R2). If your compute nodes have Windows Server 2008 installed, then you should remove this property from the service configuration file. Additionally, SvcConfigEditor.exe does not provide visibility into custom fields such as XLL path.

The following screenshot shows the HPC Excel services in the Services view:

Specify the location of the XLL files

UDF offloading is supported on the cluster side by the XLL container services (Microsoft.Hpc.Excel.XllContainer32 and Microsoft.Hpc.Excel.XllContainer64). The configuration files for these services determine where the services look for the XLL files. By default, the following locations are used:

  • 32-bit XLL files: %CCP_HOME%Bin\XLL32

  • 64-bit XLL files: %CCP_HOME%Bin\XLL64

The expected location of the XLL files is defined by the path variable setting in the configuration files for the XLL container services. The value for “XllPath” is added to the PATH environment variable for the process. The folders are tried in order until the specified XLL file is found.

If you want to organize your XLLs into multiple folders or deploy XLLs to a central file share, you can add more folder paths to the path variable. You can specify multiple folder paths that are separated by semicolons (;) in the value string. If the same XLL file appears in multiple folders, the copy of the XLL file that is in the first listed folder is used. You can define a list of users with access to each folder to help achieve the desired behavior.

The following XML code shows the default path variable setting in the Microsoft.Hpc.Excel.XllContainer32 service configuration file:

<appSettings>    <add key="XllPath" value="%CCP_HOME%Bin\XLL32" />  </appSettings>

Broker settings in the service configuration file

The service configuration file defines how the broker interacts with the service. For example, the broker settings define client and session timeout periods. In some cases, you might need to modify the default settings. For example, if you have long-running calculations, you might need to adjust the timeout settings.

The following XML code shows how the broker monitoring attributes are defined in the service configuration files for the HPC Excel services. The <monitor> element is in the <microsoft.Hpc.Broker> section.

      <monitor messageThrottleStartThreshold="12288"
             messageThrottleStopThreshold="11264"
             loadSamplingInterval="1000"
             allocationAdjustInterval="-1"
             clientIdleTimeout="300000"
             sessionIdleTimeout="300000"
             statusUpdateInterval="15000"/>

The following table describes the attributes of the <monitor> element:

Attribute Description Default for HPC Services for Excel

messageThrottleStartThreshold

messageThrottleStopThreshold

messageThrottleStartThreshold specifies the number of requests (for UDF offloading, this corresponds to cells, and for workbook offloading, this corresponds to partition calls) that the broker will accept before the broker stops listening and waits for space to become available in the broker queue (as requests are calculated).

messageThrottleStopThreshold Specifies the number of requests that will be in the queue to make the broker stop throttling. This number is lower than the start threshold because the broker must have adequate space in its queue before it starts listening again.

The amount of memory that the broker queue requires is (messageThrottleStartThreshold) times (sizeOfRequest). If you have throttling limits set too high and your messages are too big, then the broker node can run out of memory. For example, if you set the limit to 400,000, and you expect 64 KB messages, the broker would require 25.6 GB of memory to hold the request queue.

If the throttle settings are too low, nodes can be underutilized due to insufficient message throughput.

Throttle start: 12,288

Throttle stop: 11,264

loadSamplingInterval

The amount of time between load sampling passes. During a load sampling pass, the broker checks the request queue to update performance counters for a session, including the number of waiting requests.

You can increase this number to minimize management overhead. You might want to decrease this number if the service processes very short-running requests.

Unit: milliseconds

1,000 milliseconds

(1 second)

allocationAdjustInterval

The amount of time between allocation adjustment passes. During an adjustment pass, the broker updates job properties and evaluates the Target Resource Count for a session based on the load sampling metrics gathered within the adjust interval. The job scheduler uses the Target Resource Count property to help determine how many service hosts to allocate to the session.

When set to -1, resource adjustment is disabled.

Resource adjustment is disabled for the Excel service by default because an idle session can shrink to its minimum resources, and it can take time for the resource to grow when the session becomes active again. You can modify this property if allocated resources are not being used sufficiently.

Unit: milliseconds

-1

(resource adjustment disabled)

clientIdleTimeout

After a client application connects to a session, if the client does not have any activity and there are no pending requests for the client within the specified amount of time, the broker closes the connection to the client, but it does not close the session.

Unit: milliseconds

300,000 milliseconds

(5 minutes)

sessionIdleTimeout

When all the clients for the session are idle (timed out), if no more client applications are connected within this timeout period, the broker closes the session.

You can extend this period if Excel users want to keep a workbook open and send several batches of requests within the same session. This avoids the start-up time of creating a new session and receiving new resources.

With an HTTP binding, sessionIdleTimeout does not start counting until after clientIdleTimout triggers.

Unit: milliseconds

300,000 milliseconds

(5 minutes)

statusUpdateInterval

The timer interval for the broker to publish service statistics to the job.

Unit: milliseconds

15,000 milliseconds

(15 seconds)

Configure different service behaviors for different UDFs or workbooks

If your cluster supports many Excel jobs, you might need to define different service behaviors for different UDFs or workbooks. For example, most UDF jobs work with the default settings for the XLL container services. However, several UDFs run much longer than the others. You do not want to adjust the timeout setting for all UDF offloading jobs, so you decide to create a separate configuration file to support the long-running UDFs.

Important
The client-side features of HPC Services for Excel integrate with the built-in services. The service configuration file must be named servicename.config, where the servicename is the same as the name that is passed into the SessionStartInfo constructor. If you create a custom configuration file, the client applications must use the new name to start the session. For UDF offloading, the Excel user can specify a custom service in the advanced properties for the workbook. For more information, see Specify a custom service for UDF offloading. For workbook offloading, the workbook developer must specify the custom service directly or provide an interface for the user to specify a custom service.

The following procedure describes how to create a custom service configuration file:

To create a new service configuration file

  1. On the head node, navigate to the ServiceRegistration folder (by default, this is located at C:\Program Files\Microsoft HPC Pack 2008 R2\ServiceRegistration).

  2. Make a copy of the appropriate service and rename it.

  3. Edit the new configuration file settings as appropriate. The new service registration should be modeled after the original, and at the very least, it should use the same service assembly.

  4. Inform the XLL file or workbook users of the new service name.

Additional resources