LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Pb LabView n'utilise qu'1 coeur

Bonjour,

 

Mon problème est que je me suis rendu compte que LabView n'utilise qu'un coeur d'un dual Core alors qu mon PC comporte 2 duals Core.

Comment régler LabView pour qu'il se déploie sur tous les coeurs??

 

Merci d'avance.

 

Gael Anquetil

0 Kudos
Message 1 of 7
(2,723 Views)

Bonjour,

 

Merci d'avoir posté sur le forum National Instruments.

 

LabVIEW gère le multi-coeur et l'hyperthreading. Cela dépend de votre programme tout simplement : si votre programme n'est constitué que d'une seule boucle, l'exécution de celle-ci ne sera effective que sur un coeur, ou alors sera répartie grâce à l'hyperthreading. Si vous en avez plus (de boucles), alors le multi-coeur sera exploité afin de répartir la charge.

 

Je vous propose un document ici, qui répond à votre question, et un autre qui vous explique comment tirez parti de l'hythreading dans LabVIEW ici .

 

Cordialement,

Romain P.
National Instruments France

0 Kudos
Message 2 of 7
(2,707 Views)

Merci pour votre réponse!

 

Nous utilisons déjà plusieurs boucle While en parallèle... Le soucis que si nous lançons le VI sur mon portable nous observons que tous les coeurs travaillent par contre si nous le lançons sur le PC finale nous n'observons qu'un seul coeur travailler...

C'est pour cela que nous pensions à un réglage sur LabVIEW du nombre de coeur travaillant.

 

Merci d'avance pour votre aide.

0 Kudos
Message 3 of 7
(2,700 Views)

Il n'existe pas de réglage permettant de choisir le nombre de coeur à utiliser. LabVIEW gère le multi-coeur et l'hyperthreading suivant les ressources possibles et le programme exécuté : dans votre cas, les ressources diffèrent dans la mesure où les fréquences d'horloge sont surement différentes, et le nombre de coeurs virtuels/activation hyperthreading aussi.

En revanche, vous pouvez allouer directement le travail d'une boucle while cadencées à tel ou tel coeur, et aussi définir des priorités de boucles, tout en sachant que cela restera une préférence car c'est l'ordonnancement de votre système d'exploitation qui possède les droits exécutifs de ces paramètres.

 

Je vous propose ce document : ici. Ce dernier vous expliquera tout sur la corrélation entre LabVIEW et la gestion multicoeurs.

 

 

Bien cordialement,

 

 

Romain P.
National Instruments France

0 Kudos
Message 4 of 7
(2,694 Views)

Bonjour,


My issue is that I now realise that LabView only uses one dual-core processor out of my PC's two, which is why I have two dual-core processors.

How can I configure LabView such that it deploys to every heart?

Thanks in advance. Germain Anquetil

 

 

 

0 Kudos
Message 5 of 7
(1,015 Views)

Hi Bape,

 


@Bapehoodie wrote:

My issue is that I now realise that LabView only uses one dual-core processor out of my PC's two, which is why I have two dual-core processors.


That's a problem of your specific code, LabVIEW itself can utilize more CPU cores…

 


@Bapehoodie wrote:

How can I configure LabView such that it deploys to every heart?


Improve your code to run on more cores…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 6 of 7
(1,008 Views)

LabVIEW uses all cores it can, but it the code is too serialized (excessive sequence structures, etc.), there is no chance to even do so.

 

Modern CPUs are like Ferraris: They can go very fast in theory, but in the real world there are stop signs, other traffic, speed limits and all that. 30 years ago, CPUs had one core and less than 1% of the power and we were still able to write fast and responsive LabVIEW programs. My first years of LabVIEW programming was on a 100MHz Pentium 1)

 

You have not told us what your program is doing. If you want to see both CPU cores maxed out, all you need it place the following code on your diagram (NO! Please don't!!!!):

 

altenbach_0-1680278029396.png

 

As proof that properly written code can use all available CPU cores, have a look at my benchmarks. As you can see, even CPUs with 32 cores can use all of them, greatly speeding up the computations.

Maxing out all cores of a CPU is really only needed to solve hard problems. A typical program solves any sub-problem in nano- to microseconds after which the CPU is idle again, waiting for user input or other things to do as dataflow allows. If this is a laptop running on batteries, there are also power considerations.

 

You have not said what problem you are trying to solve. I am sure if you would give more details, we can point you in the right direction. Certain signal processing tasks on very large datasets can sometimes be sped up using the multicore toolkit. Don't get your hopes up with small problems because the overhead of splitting the problem onto several cores and reassembling the results can nullify the parallelization advantage. The clock frequency can be reduced as a function of core utilization to remain within the allowed thermal envelope while the clock frequency can be boosted if only one core is used.

 

Also note that a CPU with two cores is at the low end anyway and the max you can ever get is a factor of two. You should start looking into parallelization once you have 4 or more real cores.

0 Kudos
Message 7 of 7
(993 Views)