Freigeben über


Clustersichere Funktionen

Gilt für: Excel 2013 | Office 2013 | Visual Studio

In Excel 2013 kann Excel User-Defined Funktionsaufrufe (UDF) über eine dedizierte Clusterconnectorschnittstelle an einen Hochleistungscomputingcluster auslagern. Anbieter von Computeclustern stellen Clusterconnectors bereit. UDF-Autoren können ihre UDFs als clustersicher deklarieren. Wenn ein Clusterconnector vorhanden ist, sendet Excel aufruft diese UDFs zur Auslagerung an den Clusterconnector.

Wenn Excel während der Neuberechnung eine clustersichere UDF erkennt, übergibt es den Namen der derzeit ausgeführten XLL, den Namen der clustersicheren UDF und alle Parameter an den Clusterconnector. Der Connector führt den UDF-Aufruf remote aus und gibt die Ergebnisse an Excel zurück. Die nicht abhängige Berechnung wird fortgesetzt, und wenn der Clusterconnector die Ausführung der UDF abgeschlossen hat, übergibt er die Ergebnisse an Excel, und abhängige Berechnungen werden fortgesetzt. Der Mechanismus für dieses asynchrone Verhalten imitiert den mechanismus, der von asynchronen UDFs verwendet wird, mit der Ausnahme, dass der Clusterconnector die asynchronen Aspekte anstelle des UDF-Autors verwaltet. In der Regel implementiert ein Clusterconnector einen XLL-Shim, um XLLs zu laden und UDFs auf Computeclusterknoten auszuführen.

Die Mechanismen zum Deklarieren von UDFs als clustersicher ähneln denen des Deklarierens von UDFs als sicher für die Multithread-Neuberechnung. Da die UDF jedoch nicht unbedingt auf demselben Computer wie andere UDFs aus derselben Excel-Sitzung ausgeführt wird, müssen beim Schreiben clustersicherer UDFs unterschiedliche Überlegungen berücksichtigt werden.

Um eine UDF als clustersicher zu registrieren, müssen Sie die Rückruffunktion xlfRegister (Form 1) über die Excel12 - oder Excel12v-Schnittstelle aufrufen. Weitere Informationen zu diesen Schnittstellen finden Sie unter Excel4/Excel12 und Excel4v/Excel12v. Das Registrieren einer UDF als clustersicher über die Excel4 - oder Excel4v-Schnittstelle wird nicht unterstützt.

Wenn Sie eine Funktion als clustersicher registrieren, müssen Sie sicherstellen, dass sich die Funktion clustersicher verhält. Obwohl das genaue Verhalten des Clusterconnectors implementierungsspezifisch ist, sollten Sie Ihre UDF so entwerfen, dass sie auf einem verteilten Computersystem ausgeführt wird und die folgenden Merkmale aufweist:

  • Eine UDF sollte sich nicht auf einen Speicherzustand verlassen. Beispielsweise sollte eine UDF nicht auf einem vorhandenen In-Memory-Cache basieren.

  • Eine UDF sollte keine Excel-Rückrufe ausführen, die der Clusterconnectoranbieter nicht unterstützt.

Zusätzlich zum clustersicheren Verhalten gibt es die folgenden technischen Einschränkungen für clustersichere UDFs:

  1. Keine XLOPER-Argumente (Typen 'P', 'R').

  2. Keine XLOPER12 Argumente, die Bereichsverweise unterstützen (Typ 'U').

  3. Eine äquivalente Makroblattfunktion ('#' und '&' kann nicht kombiniert werden).

Bei UDFs mit kürzeren Ausführungszeiten kann der Mehraufwand für die Auslagerung größer sein als die Zeit, die die UDF für die Ausführung benötigt, wodurch viele der Vorteile der Verwendung dieser Infrastruktur negiert werden.

Hinweis

Sie können eine clustersichere UDF nicht als asynchrone UDF deklarieren.

Eine UDF kann bestimmen, ob sie mithilfe eines Clusterconnectors ausgeführt wird, indem die Rückruffunktion xlRunningOnCluster aufgerufen wird.