INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

VI ausführen nicht Multithreading fähig?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.09.2015, 15:11
Beitrag #1

xrzr Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Apr 2014

LabVIEW 2015
2014
DE


Deutschland
VI ausführen nicht Multithreading fähig?
Hallo,
ich verwende in meinem VI fünf 3-D Graphen auf verschiedenen Register Karten. Da mein PC ab den Punkt wo er "einmal" alle Graphen (15 XY-Graphen) und die 3-D Graphen zeichnen soll extrem langsam wird, habe ich mal im Task-Manager nachgeschaut und festgestellt, das vorwiegend nur 1-Kern beansprucht wird.

Eckdaten:
Intel Core i7 @2,80GHz; 16GB Ram, Windows7

Meine Frage:
Wenn ich eine exe erstelle bzw. später eine Installationsdatei, werden dann alle Kerne genutzt oder ist das jetzt nur wegen der Umwicklungsumgebung, bzw. benötigt die Umwicklungsumgebung extra Rechen Leistung?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.09.2015, 15:17
Beitrag #2

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: VI ausführen nicht Multithreading fähig?
(01.09.2015 15:11 )xrzr schrieb:  Meine Frage:
Wenn ich eine exe erstelle bzw. später eine Installationsdatei, werden dann alle Kerne genutzt oder ist das jetzt nur wegen der Umwicklungsumgebung, bzw. benötigt die Umwicklungsumgebung extra Rechen Leistung?
Hallo,

Es ist egal, ob du dein VI in der IDE oder später in der EXE ausführst. In neueren LV-Versionen gibt es die Möglichkeit, bestimmte Tasks bstimmten CPU-Kernen zuzuweisen (zeitgesteuerte Schleifen)

Außerdem musst du ein VI, das parallel mehrfach ausgeführt werden soll auf ablaufinvariant setzen. (STRG+I) --> Ausführung


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2015, 15:23
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: VI ausführen nicht Multithreading fähig?
LabVIEW ist schon seit Jahr(zehnten) multi-threading und auch multi-core fähig. Allerdings musst du es auch so programmieren, ansonsten gilt "THINK DATAFLOW". Und einen User-Interface-Thread gibt es nur einen!

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2015, 15:25 (Dieser Beitrag wurde zuletzt bearbeitet: 01.09.2015 15:25 von xrzr.)
Beitrag #4

xrzr Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Apr 2014

LabVIEW 2015
2014
DE


Deutschland
RE: VI ausführen nicht Multithreading fähig?
"Außerdem musst du ein VI, das parallel mehrfach ausgeführt werden soll auf ablaufinvariant setzen. (STRG+I) --> Ausführung"


Es handelt sich um ein VI mit verschiedenen Registerkarten wo die ganzen Graphen drin verteilt sind. Kannst du das mit dem Ablaufvariant mal genauer erklären? (Warum und Wie)

Danke.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2015, 15:34
Beitrag #5

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: VI ausführen nicht Multithreading fähig?
Wenn du in einem VI irgendwelche Berechnungen ausführst, und dieses VI 2 mal nebeneinander im übergeordneten VI platzierst, dann können diese beiden VIs (die ja eigentlich ein- und dasselbe VI sind) parallel ausgeführt werden, wenn es keine Datenabhängigkeit zwischen ihnen gibt. Dann muss aber dieses SubVI auf ablaufinvariant gesetzt werden, woraufhin LV den Code kopiert. Ansonsten kann LV dasselbe VI nur 2 mal nacheinander ausführen.

Wenn es aber darum geht, Graphen aufzueichnen, dann muss der eine UI Thread angesprochen werden, der die Graphen nur nacheinander aufzeichnen kann.
Dann hilft nur Datenreduktion - (prüfe Monitorpixel <-> Aufzeichnungspixel)


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.09.2015, 18:40
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI ausführen nicht Multithreading fähig?
Hallo xrzr,

Zitat:ich verwende in meinem VI fünf 3-D Graphen auf verschiedenen Register Karten. Da mein PC ab den Punkt wo er "einmal" alle Graphen (15 XY-Graphen) und die 3-D Graphen zeichnen soll extrem langsam wird
Ich frage mich, warum dein Programm alle 15 XY-Graphen und die 5 3D-Graphen gleichzeitig zeichnen soll, wenn diese sich doch auf 5 Registerkarten verteilen!?
Hälst du es wirklich für sinnvoll, Graphen zu zeichnen, die der User überhaupt nicht sehen kann?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Programmteil nur ausführen, solange SubVI nicht läuft delirio 2 3.888 17.01.2011 12:49
Letzter Beitrag: unicorn
  SubVI ausführen, wenn Eingänge noch nicht anliegen SteffenSI 12 8.209 11.02.2009 09:48
Letzter Beitrag: Achimedes

Gehe zu: