Multithreading: Unterschied zwischen den Versionen

Aus Asprova Hilfe
Wechseln zu: Navigation, Suche
K (GK verschob die Seite Multpile Threads nach Multithreading)
 
(Eine dazwischenliegende Version desselben Benutzers wird 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 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 von Kalender- und Shichttabellen nach der Bearbeitung dessen||Entwickelt Ressourcenarbeitszeit||Version 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||Version 7.3.1||Auf Version 8 beschränkte Funktionen.
+
|Plan bewerten||Bewertung||
 
|-
 
|-
||  ||3.||Zuweisung/Verknüpfung von Auftragsbefehlen||Zuweisung||Version 10||Nur für 64bit. auf Version 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||Version 10||Nur für 64bit. auf Version 10 beschränkte Funktionen.
+
|Fertigungsaufträge zuweisen||Zuweisung
 
|-
 
|-
||  ||5.||Zuweisung von zeitbeschrönkte Vorgangsbefehle||Zuweisung||Version 10||Nur für 64bit. auf Version 10 beschränkte Funktionen.
+
|Zeitbeschränkte Vorgänge zuweisen||Zuweisung
 
|-
 
|-
||  ||6.||Zuweisung von ergebnisbeschränkten Vorgangsbefehlen||Zuweisung||Version 10||Nur für 64bit. auf Version 10 beschränkte Funktionen.
+
|Ergebnisbeschränkte Vorgänge  zuweisen||Zuweisung
 
|-
 
|-
||  ||7.||Befehl zur Auslastungsnivellierung||Zuweisung||Version 10||Nur für 64bit. auf Version 10 beschränkte Funktionen.
+
|Zeitliche Nivellierung||Zuweisung
 
|-
 
|-
||   ||8.||Befehl zur Auftragsteilung||Teilung von Aufträgen||Version 10||Nur für 64bit. auf Version 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 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 Prozesse 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 einem PC mit Zwölfkernprozessor mit Hyper-Threading-Technologie gezeigt. Darin wird mit 4,000,000 Vorgängen, 50 Prozessen, 100 Artikel und drei alternativen Ressourcen für jeden Prozess gerechnet:
 
 
 
[[Image:multithread01.jpg]]
 
 
 
 
 
<nowiki>*</nowiki> Bei Prozessen 3 - 7 ist die Leistung zwischen der Verwendung von einem Thread und der Verwendung von zwei Threads fast gleich. Erst wenn drei Threads genutzt werden, verbessert sich die Leistung merkbar. (Die absolute Berechnungszeit unterscheidet sich bei jeweils einem- und bei zwei Threads. Grund dafür ist, dass die Berechnungszeit von Prozess 8 zwischen einem Thread und zwei Threads unterschiedlich ausfällt.
 
 
 
 
 
<nowiki>*</nowiki> In den folgenden Fällen wird der Single-Thread-Modus automatisch für Prozesse 3 - 7 eingestellt.
 
 
 
:: Der folgende Plug-In-Schlüssel wird verwendet (nach Version 10.0.1.22):
 
 
 
:: KeyHookBeforeAssign<br />KeyHookAfterAssign<br />KeyHookInCodeFunction<br />EIIFilterCalcDuration<br />EIIFilterCalcCombinationSetupDuration<br />EIIFilterCalcEvaluation<br />EIIFilterCalcOperationTimeLimit<br />EIIFilterCalcNextOperationTimeLimit
 
 
 
:: Zur Nutzung der Eigenschaft "Planunterbrechungsbedingung" ist eine Formel (in den Planungsparametereinstellungen) hinterlegt.
 
 
 
:: Die Eigenschaft "Nicht zugewiesene, verknüpfte Vorgänge ignorieren" ist (in den Planungsparametereinstellungen) auf "Ja" eingestellt.
 
 
 
:: Die Eigenschaft "Bestandsbeschränkung aktivieren" ist (in den Planungsparametereinstellungen) nicht auf "Nein" eingestellt.
 
 
 
  
: Im folgenden Fall wird Prozess 8 automatisch auf den Single-Thread-Modus gestellt:
+
[[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