LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview Multicore support

Dear Sir,
 
I have a problem with Labview 8.5. When I use a vi for more than 4 cores (Suach as on my Dell Precision T7400
which have 8 cores in two quad CPUs), the vi core crshed.
I wonder does Labview support more than 4 cores?
 
Also, when I use two cores, I found the time increase almost 2 time in a VI code with two parallelism (on my 8 core computer); But for more than 3 parallelism, the speed does not improve (again on my 8 core computer); Does this means that labview only fully support a computer with 2 cores? For more than a computer with 2 cores, the speed is equal to that of two cores, sinec the limitation of labview?
 
Thanks.
 
Mark-Ren.
 
0 Kudos
Message 1 of 16
(5,525 Views)

Hi Mark-Ren,

You should be able to use more than 4 cores with LabVIEW. I'm not sure by what you mean with the VI core crash. Can you explain this a bit more? I'm including a few great articles about multicore that explains programming with multicore, speed with multicore and pipelining for multicore. Multicore speed will highly depend on the architecture of the application. I hope this helps!

Carla

National Instruments
Applications Engineer
Message 2 of 16
(5,483 Views)

Carla,

Thanks for your email.

May you email me a Labview VI code that runs on cores more than 4 cores ?

I will like to test it to make sure whether or not Labview supports for a computer with cores more than 4.

 

Again, I repeat my problems with Labview 8.5 version: 1)  For more tha 2 cores (CPUs), the Labview

code does not increase the speed and only runs the same fast as two cores (that is, Labview cannot take advantage

for a computer with more than two cores); 2) If you assign your code to 7 individual cores on a 8-core computer (such as

my Dell Precision T7400 computer that has 8 cores), the Labview code will crash.

 

I am waiting for you to email me your code that suppot more than 4 cores.

 

Thanks.

Mark-Ren.

-----------------------------

 

 

 

 

 

Hi Mark-Ren,

You should be able to use more than 4 cores with LabVIEW. I'm not sure by what you mean with the VI core crash. Can you explain this a bit more? I'm including a few great articles about multicore that explains programming with multicore, speed with multicore and pipelining for multicore. Multicore speed will highly depend on the architecture of the application. I hope this helps!

Carla

 

National Instruments
Applications Engineer
0 Kudos
Message 3 of 16
(5,474 Views)

Carla,

 

I have attached my Lavbiew code, in which I have used 7 cores.

May you please run this code on a computer that has 8 codes. This code will crash each time.

If you run this problem on a two-core computer, it will be OK since the rest part assigned to other cores do

nothing. So, please do run it on a 8-core computer.

 

Please let me know you result.

 

Also,  the execution speed of this code will not increase after you use more than two cores.

I beleive you know how to test this code. Let me know what is the problem.

finally  I have read all the documents including list on you previous, before I contacted NI.

I noted that all the available examples are based on two cores system and I have not sees any NI example

that uses 3 cores (Please email me if you/NI do have!).

Thanks and I am waiting to the answers.

 

Mark-Ren.

------------------

 

 

 

 

0 Kudos
Message 4 of 16
(5,449 Views)

Hi Mark-Ren,

I have a few follow-up questions for you. Which OS are you using? Are you running on Windows or RT? Can you post a screenshot of the error that you get or at least re-iterate what the error says? Hopefully, with this information, we will be able to figure out what is going on. Unfortunately, I don't have an 8 core computer to try it on myself so the more information that you can provide us with, the easier it will be to narrow down the problem. Thanks for the help!

 

Carla

National Instruments
Applications Engineer
0 Kudos
Message 5 of 16
(5,425 Views)
Hi Mark-Ren,

beside the 8-core problem of crashing (which I cannot confirm on a DualCore) your code seems pretty senseless:
How do you want to measure performance increase when you stick each timed sequence to a single core?

Both measurements (in each timed sequence) will give nearly the same result with pipelined version even being a bit slower due to simultanous memory access and "parallel" execution. You will only measure better performance when you allow more than one core to process each timed sequence!

(Overall performance will be better on 8-core as all timed sequences can run in parallel...)

The attached (stripped down) version of your vi gives a performance increase of ~30% on my DualCore, which changes to ~-8% when using a timed sequence put around that code...


Message Edited by GerdW on 04-15-2008 09:15 PM
Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 6 of 16
(5,420 Views)

Carla,

Thank again for your rapid reply.

My operation system is Windons Professional. Then my VI code crash:  the Labiew VI ends running suddenly and closed the Labview system. After this, if I need to run my VI code again, I need to re-start Labview system first and then re-load my VI-code. Sometime the Labview ask me to recove my VI code. This is all information regarding the crashing. To verify this, You definitely need a 8-core computer to run my VI code. I will be disappointed if NI have never tested this (or NI's others codes) on a 8-core computer since such computers are very common these days and you can get one from Bestbuy or somewhere.

Thanks again, please inform me your results if you can test my VI code on a 8-core computer.

Deqing.

-----------------

 

0 Kudos
Message 7 of 16
(5,400 Views)

Carla,

Thank again for your rapid reply.

My operation system is Windons Professional. When my VI code crash:  the Labiew VI ends running suddenly and closed the Labview system. After this, if I need to run my VI code again, I need to re-start Labview system first and then re-load my VI-code. Sometime the Labview ask me to recove my VI code. This is all information regarding the crashing. To verify this, You definitely need a 8-core computer to run my VI code. I will be disappointed if NI have never tested this (or NI's others codes) on a 8-core computer since such computers are very common these days and you can get one from Bestbuy or somewhere.

Thanks again, please inform me your results if you can test my VI code on a 8-core computer.

Deqing.

-----------------

 

0 Kudos
Message 8 of 16
(5,399 Views)
I have seen the LabVIEW runtime crash on a dual-core machine, but I was running LabVIEW 7.0.  I was assuming that whatever re-entrancy bugs existed would have been resolved in the newer versions.  In any case, there is a history of re-entrancy problems in LabVIEW and I'll be curious to know if they haven't been adequately resolved.
0 Kudos
Message 9 of 16
(5,390 Views)
Hi, GerdW,
 
The VI code you just emailed me can acheive 30% gain on my dual-core computer (the same result with yours), and it acheives
45% again on my 8-core Dell T7400 desktop computer. The gain is not so much compared with the 2-core computer, since your code
is not total parallesm.
 
In my VI codes (that is perfect parallelism), I have 8 parallel structures, and each structure is manually assigned to different core. To verify the gain for multi-cores, you can modify my VI code. Case 1: you only keep the sctructure 1 (you need to delete other structures), and then run the code. Now you have core 1 available,  I got 10 second of runing time on my computer (by look my watch). Case 2:  you keep 2 structures and run the code. Then you have two cores (cores 1 and 2) available. Then I got nearly 10 second of running time. The two cores is 2 times fast than the one core, since the code working load is twice (2 structure); Case 3: you keep 3 structures, and run the code again, the running time is 20 seconds; Case 4: you heep 4 structures and the running time is 30 seconds and so on. And then each time you add a structure, you add a 10-second running time, indicating that no any improvement for cases that have more than 2 cores.  Therefore, I conclude that Labview is only optimised for a computer that has the core number less than  3-core computer. To verify this, you need have a computer that has at least 4 cores.
 
Again, all the examples that I can find on NI website  are for 2 cores. I have not yet find an example from NI for 3 more different cores.  I have attached my code again.
 
Thanks.
 
Mark-ren
----------------
 
 
Hi Mark-Ren,

beside the 8-core problem of crashing (which I cannot confirm on a DualCore) your code seems pretty senseless:
How do you want to measure performance increase when you stick each timed sequence to a single core?

Both measurements (in each timed sequence) will give nearly the same result with pipelined version even being a bit slower due to simultanous memory access and "parallel" execution. You will only measure better performance when you allow more than one core to process each timed sequence!

(Overall performance will be better on 8-core as all timed sequences can run in parallel...)

The attached (stripped down) version of your vi gives a performance increase of ~30% on my DualCore, which changes to ~-8% when using a timed sequence put around that code...


Message Edited by GerdW on 04-15-2008 09:15 PM
 

Best regards,
GerdW

0 Kudos
Message 10 of 16
(5,388 Views)