Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Multithread-Berechnung in Excel

Forumthread: Multithread-Berechnung in Excel

Multithread-Berechnung in Excel
25.07.2022 09:52:46
Herbert_Grom
Hallo,
mir ist bisher nur bekannt, dass man in den Optionen die Multithread-Berechnung einstellen (s. Bild) und/oder sie im Code mit dieser Zeile aktivieren kann:

Application.MultiThreadedCalculation.ThreadMode = xlThreadModeAutomatic

Userbild
Wisst ihr da evtl. mehr? Vielen Dank im Voraus.
Servus
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Multithread-Berechnung in Excel
25.07.2022 12:35:50
Herbert_Grom
Hallo Chris,
vielen Dank für deine Info. Das von MS hatte ich auch schon gefunden, hilft mir aber nicht wirklich weiter, da ich es auch nicht richtig verstehe, bzw. nicht komplett abgearbeitet habe.
Hintergrund ist, dass ein Kunde von mir sein Prozessorkerne aktivieren möchte. Ich habe ihm erklärt, dass er das in den Optionen einstellen kann. Doch er sagt, das hätten sie schon gemacht, aber ohne Wirkung. Vor längerer Zeit habe ich mal gelesen, dass Excel sowieso nur 2 Prozessorkerne verarbeiten kann. Weißt du evtl. ob das noch so ist?
Servus
Anzeige
AW: Multithread-Berechnung in Excel
25.07.2022 13:30:08
ChrisL
Hi Herbert
Viel kann ich selber zum Thema nicht beitragen. Wollte nur mal aus Neugier fragen, was die eigentliche Frage ist :)
Trotzdem hier ein m.E. vielversprechender Beitrag:
https://answers.microsoft.com/en-us/msoffice/forum/all/how-to-utilize-multiple-cores-in-excel-2016/76fef7bb-750d-42f7-95ca-91d2694479c1
Einmal die Aussage, dass Excel (2016 aber gilt wahrscheinlich auch für neue Versionen) unabhängig von den Optionseinstellungen fast immer nur 1 Prozessor/-kern verwendet, weil der Ablauf sowieso nur mittels "single thread" abgearbeitet wird.
Im Weiteren gibt es im Beitrag Links, welche zeigen, wie man mehrere "Threads" erzeugen könnte, um damit die Nutzung mehrerer Prozessoren/-kerne anzuregen. Für "normale" Anwendungen scheint mir dies aber eher weniger sinnvoll, denn nach kurzem Überfliegen verstehe ich, dass mehrere Excel-Instanzen erzeugt werden (um unterschiedliche Aufgaben abzuarbeiten). Aus meiner Sicht hat das Thema nur in ganz bestimmten Situationen eine echte Relevanz, wobei mir folgender Absatz aufgefallen ist.
MTR hat insbesondere eine enorme Auswirkung auf die Neuberechnungszeit für Arbeitsmappen, die benutzerdefinierte Funktionen (User-Defined Functions, UDFs) aufrufen, die wiederum selbst externe Prozesse aufrufen, um das gewünschte Ergebnis abzurufen. Denken Sie insbesondere an eine UDF, die einen Remoteserver aufruft, der viele Anforderungen gleichzeitig verarbeiten kann, und eine Arbeitsmappe, die viele Aufrufe an diese Funktion enthält. Wenn eine Singlethread-Neuberechnung der Arbeitsmappe erfolgt, muss jeder Aufruf an die UDF, und damit an den Remoteserver, abgeschlossen werden, bevor der nächste erfolgen kann. Damit wird die Fähigkeit des Servers aufgehoben, viele Aufrufe auf einmal zu verarbeiten. Bei einer Multithread-Neuberechnung der Arbeitsmappe kann Excel mehrere Aufrufe gleichzeitig oder in schneller Folge durchführen.
Für weitere Anregungen bitte die Frage wieder als offen markieren.
cu
Chris
Anzeige
AW: Multithread-Berechnung in Excel
25.07.2022 16:32:51
Herbert_Grom
Hallo Chris,
vielen Dank für deine Recherche. Aber da blicke ich nicht durch. Ich werde mal Hans fragen, ob er da eine Idee hat.
Servus
;
Anzeige

Infobox / Tutorial

Multithread-Berechnung in Excel


Schritt-für-Schritt-Anleitung

  1. Excel-Optionen öffnen: Gehe zu Datei > Optionen.

  2. Erweiterte Einstellungen auswählen: Wähle im Menü Erweitert die Kategorie Formeln.

  3. Multithread-Berechnung aktivieren: Setze ein Häkchen bei Multithread-Berechnung und wähle die Anzahl der Threads, die Du verwenden möchtest (z.B. 4 oder 8 Threads).

  4. VBA aktivieren: Wenn Du mit VBA arbeiten möchtest, aktiviere das Multithreading mit folgendem Code:

    Application.MultiThreadedCalculation.ThreadMode = xlThreadModeAutomatic
  5. Speichern und schließen: Speichere die Änderungen und schließe das Fenster. Überprüfe, ob die Einstellungen wirksam sind, indem Du eine Berechnung durchführst.


Häufige Fehler und Lösungen

  • Excel berechnet nur langsam mit 8 Threads: Wenn Du die Multithread-Berechnung aktiviert hast, aber die Leistung nicht spürbar besser ist, könnte es an der Art der Berechnungen liegen. Einige Formeln oder Funktionen unterstützen Multithreading nicht gut.

  • Prozessorkerne aktivieren: Wenn Du die Option zur Nutzung mehrerer Prozessorkerne aktiviert hast, aber keine Verbesserung bemerkst, überprüfe, ob Deine Excel-Version tatsächlich Multithreading unterstützt. Dies gilt insbesondere für Excel 2016 und neuere Versionen.


Alternative Methoden

  • VBA Multithreading: Wenn Du komplexe Berechnungen hast, die Multithreading benötigen, kannst Du VBA verwenden, um mehrere Instanzen von Excel zu erstellen. Dies kann die Effizienz erhöhen, ist jedoch komplexer in der Implementierung.

  • Externe Tools: Es gibt auch externe Tools und Add-Ins, die die Multithread-Berechnung in Excel optimieren können. Diese sollten jedoch mit Vorsicht verwendet werden, um die Integrität der Daten zu gewährleisten.


Praktische Beispiele

  • Berechnungen mit UDFs: Wenn Du benutzerdefinierte Funktionen (User-Defined Functions, UDFs) verwendest, kannst Du die Multithreading-Funktion nutzen, um die Berechnungszeit erheblich zu verkürzen. Dies ist besonders nützlich, wenn die UDFs externe Daten abrufen.

  • Beispielcode für VBA:

    Function BerechneWert(x As Double) As Double
      ' Eine einfache Berechnung, die als UDF dient
      BerechneWert = x ^ 2 + x * 5
    End Function

    Diese Funktion kann in einer Multithread-Berechnung verwendet werden, um die Effizienz zu steigern.


Tipps für Profis

  • Excel Developer aktivieren: Um VBA-Optionen und Multithreading zu nutzen, solltest Du den Developer-Tab aktivieren. Gehe dazu zu Datei > Optionen > Menüband anpassen und aktiviere Entwicklertools.

  • Überwachung der Prozesse: Verwende den Task-Manager, um die Auslastung der Prozessorkerne während der Berechnung zu überwachen. Achte darauf, dass Excel tatsächlich die eingestellten Threads nutzt.

  • Optimierung von Excel-Dateien: Reduziere die Anzahl der Berechnungen und vermeide volatile Funktionen, um die Leistung zu steigern.


FAQ: Häufige Fragen

1. Ist Excel multithreaded?
Ja, Excel unterstützt Multithreading, insbesondere bei der Berechnung von Formeln und UDFs. Die Nutzung der Threads hängt jedoch von der Art der Berechnungen ab.

2. Wie viele Threads kann Excel verwenden?
Excel kann abhängig von der Version und den Einstellungen bis zu 12 Threads verwenden. Die effektive Nutzung hängt jedoch von der Komplexität der Berechnungen und der Excel-Version ab.

3. Warum läuft die Berechnung mit 8 Threads langsam?
Manchmal kann es an der Art der Daten oder Formeln liegen, die Du verwendest. Nicht alle Berechnungen profitieren von Multithreading, und einige können sogar langsamer werden, wenn sie auf mehrere Threads verteilt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige