Multithreading: Unterschied zwischen den Versionen

Aus Asprova Hilfe
Wechseln zu: Navigation, Suche
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:Multpile Threads}}
+
{{DISPLAYTITLE:Multithreading}}
 
<div align="right">Hilfe Nummer: 8990601</div>
 
<div align="right">Hilfe Nummer: 8990601</div>
 
 
<hr>
 
<hr>
Einige Befehle können parallel auf mehreren CPU-Kernen berechnet werden (Multiple Core Hyper-Threading - In Asprova wird dies "Multiple Thread" genannt.). Mithilfe dieser Technologie wird die Planungsgeschwindigkeit erhöht.
 
  
"Multiple Thread" kann bei der Ausführung der folgenden Befehle genutzt werden:
+
Einige Befehle können parallel auf mehreren CPU-Kernen berechnet werden, dies wird Multithreading genannt. Mit dieser Technologie kann die Planungsgeschwindigkeit unter Umständen erhöht werden.
  
 
+
{| class="wikitable"
{|
+
|+ Befehle die Multithreading unterstützen
 
|-
 
|-
|  ||Nr.||Befehl oder Laufzeitmessung||Inhalt||Version||Bemerkung|| 
+
!Befehl oder Asprova-Aktion!!Aktion!!Bemerkung
 
|-
 
|-
||  ||1.||beim Start von Asprova und bei Übertragung der Kalender- und Shichttabellen nach dessen Bearbeitung||Entwickelt Ressourcenarbeitszeit||Ver.7.3.1||auf Version 8 beschränkte Funktionen
+
|Start von Asprova, Broadcast nach Änderung der Kalender- oder Schichttabelle||Ressourcenarbeitszeiten erstellen||
 
|-
 
|-
||  ||2.||Bewertet Planungsbefehl||Bewertung||Ver.7.3.1||Auf Ver.8 beschränkte Funktionen.
+
|Plan bewerten||Bewertung||
 
|-
 
|-
||  ||3.||Zuweisung/Verknüpfung von Auftragsbefehlen||Zuweisung||Ver.10||Nur für 64bit. auf Ver.10 beschränkte Funktionen.
+
|Aufträge zuweisen/verknüpfen||Zuweisung||rowspan="5"|
 +
In den folgenden Fällen wird Multithreading automatisch deaktiviert:
 +
* Einer der folgenden Plug-in-Hooks wird verwendet:
 +
** KeyHookBeforeAssign
 +
** KeyHookAfterAssign
 +
** KeyHookInCodeFunction
 +
** EIIFilterCalcDuration
 +
** EIIFilterCalcCombinationSetupDuration
 +
** EIIFilterCalcEvaluation
 +
** EIIFilterCalcOperationTimeLimit
 +
** EIIFilterCalcNextOperationTimeLimit
 +
* Im Planungsparameter ist die [Planunterbrechungsbedingung] gesetzt.
 +
* Im Planungsparameter ist [Nicht zugewiesene, verknüpfte Vorgänge ignorieren] auf "Ja" gesetzt.
 +
* Im Planungsparameter ist [Bestandsbeschränkung aktivieren] ''nicht'' auf "Nein" gesetzt.
 
|-
 
|-
||  ||4.||Zuweisung von Fertigungsauftragsbefehlen||Zuweisung||Ver.10||Nur für 64bit. auf Ver.10 beschränkte Funktionen.
+
|Fertigungsaufträge zuweisen||Zuweisung
 
|-
 
|-
||  ||5.||Zuweisung von zeitbeschrönkte Vorgangsbefehle||Zuweisung||Ver.10||Nur für 64bit. auf Ver.10 beschränkte Funktionen.
+
|Zeitbeschränkte Vorgänge zuweisen||Zuweisung
 
|-
 
|-
||  ||6.||Zuweisung von ergebnisbeschränkten Vorgangsbefehlen||Zuweisung||Ver.10||Nur für 64bit. auf Ver.10 beschränkte Funktionen.
+
|Ergebnisbeschränkte Vorgänge  zuweisen||Zuweisung
 
|-
 
|-
||  ||7.||Befehl zur Auslastungsnivellierung||Zuweisung||Ver.10||Nur für 64bit. auf Ver.10 beschränkte Funktionen.
+
|Zeitliche Nivellierung||Zuweisung
 
|-
 
|-
||   ||8.||Befehl zur Auftragsteilung||Teilung von Aufträgen||Ver.10||Nur für 64bit. auf Ver.10 beschränkte Funktionen.
+
|Vorgangserstellung und Stücklistenauflösung||Vorgangserstellung und Stücklistenauflösung||Multithreading wird automatisch deaktiviert, wenn einer der folgenden Plug-in-Hooks verwendet wird:
 +
* KeyHookInCodeFunction
 
|-
 
|-
 
|}
 
|}
  
<nowiki>*</nowiki> Für Prozesse von Nummer 3 - 8 kann hinterlegt werden, wie viele Threads genutzt werden sollen. Klicken Sie dazu in der Menüleiste unter [Werkzeug] auf [NumThreads]. (Der hinterlegte Wert für die Anzahl an Threads kann durch Windowsaccount gespeichert werden.)
+
* Die maximale Anzahl gleichzeitig zu nutzender Threads kann im [[Dialog Multithreading]] definiert werden. Der Wert wird im Windows-Benutzerkonto gespeichert.
 
+
* Die Schlussfolgerung "Mehr Threads ergeben mehr Leistung" trifft '''nicht''' ohne weiteres zu. Die Leistung hängt unter anderem von der Anzahl der Einträge in den Integrierten Stammdaten und der Anzahl der Aufträge ab. Die passende maximale Anzahl an Threads sollte für jedes Projekt einzeln definiert werden.
<nowiki>*</nowiki> Dabei gilt für die Prozesse von Nummer 3 - 8 nicht, "je mehr Threads, desto schneller die Performance". Tatsächlich hängt die Leistung von den integrierten Stammdaten und der Anzahl an Aufträgen ab. Für optimale Leistung muss eine passende Anzahl an Threads hinterlegt werden.
+
* Bei zwei Threads ist die Leistung wahrscheinlich kaum besser als bei einem, so dass mindestens 3 Threads genutzt werden sollten.
 
 
 
 
Nachfolgen wird ein Performance-Ergebnis von beispielhaften Daten auf einem PC mit einem Prozesse mit 12 Kernen und Hyper-Threading Technologie gezeigt. Darin werden 4,000,000 Vorgänge, 50 Prozesse, 100 Artikel und drei Ressourcenkandidaten für jeden Prozess berechnet:
 
 
 
[[Image:multithread01.jpg]]
 
 
 
 
 
<nowiki>*</nowiki> Bei den Prozessen Nr. 3-7 ist die Performance nahezu die selbe bei der Verwendung von einem oder zwei Threads. Um eine bessere Performance zu erhalten, wird die Anzahl der Threads mit mindestens 3 eingestellt. (Die absolute Zeit von einem und zwei Threads ist verschieden. Dies ist darauf zurückzuführen, da die Zeit des Prozesses Nr.8 bein einem und zwei Threads unterschiedlich ausfällt)
 
 
 
 
 
<nowiki>*</nowiki> Im folgenden Fall sind Prozesse Nr. 3-7 automatisch zu "single thread mode" geändert.
 
 
 
:: Der folgende Plug-In-Schlüsse wird verwendet (Nach Ver.10.0.1.22)
 
 
 
:: KeyHookBeforeAssign<br />KeyHookAfterAssign<br />KeyHookInCodeFunction<br />EIIFilterCalcDuration<br />EIIFilterCalcCombinationSetupDuration<br />EIIFilterCalcEvaluation<br />EIIFilterCalcOperationTimeLimit<br />EIIFilterCalcNextOperationTimeLimit
 
 
 
:: Die Eigenschaft "Planunterbrechungsbedingung" ist in den Planungsparametereinstellungen spezifiziert.
 
 
 
:: Die Eigenschaft "Nicht zugewiesene, verknüpfte Vorgänge ignorieren" wurde mit "Ja" in den Planungsparametereinstellungen spezifiziert.
 
 
 
:: Die Eigenschaft "Bestandsbeschränkung aktivieren" ist nicht mit "Nein" in den Planungsparametereinstellungen spezifiziert.
 
 
 
 
 
<nowiki>*</nowiki>
 
  
: Im folgenden Fall ist Prozess Nr.8 automatisch auf "single thread mode" eingestellt.
+
[[Image:multithread01.jpg|right]]
 +
Im Nebenstehenden Diagramm sehen Sie die Leistung eines Computers mit zwölf Prozessorkernen und Hyper-Threading-Technologie für unterscheidliche Thread-Anzahlen. Es wurden 4.000.000 Vorgängen über 50 Prozessen, 100 Artikel und drei alternativen Ressourcen je Prozess zugewiesen.
  
:: KeyHookInCodeFunction
+
== Hinweis ==
 +
Das Planungsergebnis bei Nutzung mehrere Threads entspricht grundsätzlich dem bei nur einem Thread. Bei bestimmten Einstellungen, die das Bewertungsergebnis von Ressourcenauslastungen verwenden (etwa die Auslastung der Ressource des nächsten Prozessvorgangs), das sich von der eigenen Auslastung unterscheidet, kann es zu Unterschieden im Zuweisungsergebnis kommen.
  
 
<hr>
 
<hr>
 
<div align="right">Hilfe Nummer: 8990601</div>
 
<div align="right">Hilfe Nummer: 8990601</div>

Aktuelle Version vom 11. Dezember 2018, 22:00 Uhr

Hilfe Nummer: 8990601

Einige Befehle können parallel auf mehreren CPU-Kernen berechnet werden, dies wird Multithreading genannt. Mit dieser Technologie kann die Planungsgeschwindigkeit unter Umständen erhöht werden.

Befehle die Multithreading unterstützen
Befehl oder Asprova-Aktion Aktion Bemerkung
Start von Asprova, Broadcast nach Änderung der Kalender- oder Schichttabelle Ressourcenarbeitszeiten erstellen
Plan bewerten Bewertung
Aufträge zuweisen/verknüpfen Zuweisung

In den folgenden Fällen wird Multithreading automatisch deaktiviert:

  • Einer der folgenden Plug-in-Hooks wird verwendet:
    • KeyHookBeforeAssign
    • KeyHookAfterAssign
    • KeyHookInCodeFunction
    • EIIFilterCalcDuration
    • EIIFilterCalcCombinationSetupDuration
    • EIIFilterCalcEvaluation
    • EIIFilterCalcOperationTimeLimit
    • EIIFilterCalcNextOperationTimeLimit
  • Im Planungsparameter ist die [Planunterbrechungsbedingung] gesetzt.
  • Im Planungsparameter ist [Nicht zugewiesene, verknüpfte Vorgänge ignorieren] auf "Ja" gesetzt.
  • Im Planungsparameter ist [Bestandsbeschränkung aktivieren] nicht auf "Nein" gesetzt.
Fertigungsaufträge zuweisen Zuweisung
Zeitbeschränkte Vorgänge zuweisen Zuweisung
Ergebnisbeschränkte Vorgänge zuweisen Zuweisung
Zeitliche Nivellierung Zuweisung
Vorgangserstellung und Stücklistenauflösung Vorgangserstellung und Stücklistenauflösung Multithreading wird automatisch deaktiviert, wenn einer der folgenden Plug-in-Hooks verwendet wird:
  • KeyHookInCodeFunction
  • Die maximale Anzahl gleichzeitig zu nutzender Threads kann im Dialog Multithreading definiert werden. Der Wert wird im Windows-Benutzerkonto gespeichert.
  • Die Schlussfolgerung "Mehr Threads ergeben mehr Leistung" trifft nicht ohne weiteres zu. Die Leistung hängt unter anderem von der Anzahl der Einträge in den Integrierten Stammdaten und der Anzahl der Aufträge ab. Die passende maximale Anzahl an Threads sollte für jedes Projekt einzeln definiert werden.
  • Bei zwei Threads ist die Leistung wahrscheinlich kaum besser als bei einem, so dass mindestens 3 Threads genutzt werden sollten.
Multithread01.jpg

Im Nebenstehenden Diagramm sehen Sie die Leistung eines Computers mit zwölf Prozessorkernen und Hyper-Threading-Technologie für unterscheidliche Thread-Anzahlen. Es wurden 4.000.000 Vorgängen über 50 Prozessen, 100 Artikel und drei alternativen Ressourcen je Prozess zugewiesen.

Hinweis

Das Planungsergebnis bei Nutzung mehrere Threads entspricht grundsätzlich dem bei nur einem Thread. Bei bestimmten Einstellungen, die das Bewertungsergebnis von Ressourcenauslastungen verwenden (etwa die Auslastung der Ressource des nächsten Prozessvorgangs), das sich von der eigenen Auslastung unterscheidet, kann es zu Unterschieden im Zuweisungsergebnis kommen.


Hilfe Nummer: 8990601