Multithreading: Unterschied zwischen den Versionen

Aus Asprova Hilfe
Wechseln zu: Navigation, Suche
(Imported from text file)
 
 
(5 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 mit parallel mit mehreren CPU berechnet werden, dies nennt sich "multiple core Hyper-Threading Technology".  In Asprova lautet die Bezeichnung Multiple Thread. Die Planung kann so verbessert werden, indem auf Maschinen mit mehreren CPU zurückgegriffen wird (multiple core Hyper-Threading technology processor).
 
  
Multiple Thread wird bei Befehlen wir folgt genutzt.
+
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.||Asprova startet, Übertragung nach Bearbeitung von Kalendertabelle oder Schichttabelle.||Entwickelt Ressourcenarbeitszeit||Ver.7.3.1||Auf Ver.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> In den Prozessen Nr. 3-8 kann spezifiziert werden, wieviele Threads genutzt werden. Dazu gehen Sie auf [Werkzeug] - [NumThreads]. (Der spezifizierte 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> Für Prozesse Nr. 3-8 gilt "je mehr Threads, desto schneller die Performance" nicht, dies ist falsch.<br />Die Leistung ist abhängig von den Linien in den integrierten Stammdaten und der Auftragsmenge. Bitte spezifizieren Sie eine passende Anzahl an Threads, um eine bessere Leistungs zu erhalten.
+
* Bei zwei Threads ist die Leistung wahrscheinlich kaum besser als bei einem, so dass mindestens 3 Threads genutzt werden sollten.
 
 
 
 
Dies ist ein Performance-Ergebnis von beispielhaften Daten (4.000.000 Vorgänge, 50 Prozesse, 100 Artikel, 3 Ressourcenkandidaten für jeden Prozess) auf einer Berechnungsmaschine mit 12 Kernen und Hyper-Threading Technologie.
 
 
 
 
 
[[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