LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Runing Labview on four Intel xeon processor

Solved!
Go to solution

Hi !

I tray to run my code on a Dell poweredge server with four intel xeon processor in it.

My code is actualy running on a single processor (18 cores, 36 threads) and I can't figure out how to use the full avalible power.


The machine is running Windows server 2012 R2.

 

Do anny one have an idea ?

Thank you.
0 Kudos
Message 1 of 22
(4,268 Views)

Post your code, you'll get plenty of answers.

 

Most likely your code is entirely sequential and the LV compiler recognizes there'd be benefit in assigning different parts to different cores.  Try putting down 3 independent parallel while loops that do nothing but iterate fast and update an indicator from their iteration terminal 'i' so you can see that they're running.  I'll bet you see 3 cores getting used because the compiler recognizes the benefit of splitting up parallel work to separate cores.

 

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 2 of 22
(4,250 Views)

Hi Kevn,

Thank you for your answer.

I diden't put my code because here is more than 50 VI on it ^_^, it is a simulation of a process for my research and I try to run as many simulation as I can.

The code is using a for loop with paralelisation actived.

My machine have four processor with 36 threads each so 144 threads in total.

I have 36 simulation in parallel but no more...

 

 

0 Kudos
Message 3 of 22
(4,230 Views)

Ok, I think I misunderstood your problem.  It now appears that you *are* seeing the parallelization benefit from 18 cores of 1 CPU, but are *not* seeing any benefit from the 3 additional CPUs.

 

At this point, I'll have to bow out due to lack of experience and in-depth knowledge.

 

Anyone else?   

 

(Also noticed a typo in my first reply, 1st sentence of 2nd paragraph should have said "no benefit".  Though again, I was mistakenly replying to a wrong understanding of the problem.)

 

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 4 of 22
(4,197 Views)

We can't verify that you have everything set up to work the way you would like it to without at least seeing a stripped-out version of your code - e.g., all the loops in place with a minimum of stuff - except leave the code inside the parallelized FOR loops intact, so we can examine whether or not the compiler thinks it is actually appropriate to handle the code inside in a parallel fashion.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 5 of 22
(4,193 Views)

These are hyperthreaded cores, so the max speedup will be around 4x18. 

 

We really need to see a simplified version of the code. Is the vast majority of the loop code reentrant? Do you have a critical section? Do the parallel instances share resources?

 

How did you configure the parallel for loop?

0 Kudos
Message 6 of 22
(4,183 Views)

I really would love if you could do a quick benchmark using my program. (requires LabVIEW 2015 runtime engine). This way we can tell how much speedup you can potentially get using highly optimized code.

 

As you can see from my benchmark table, I get a >16x speedup on my dual 8 core xeon and another user with a quad Xeon (48) got a >43x speedup (even thought hyperthreading was disabled in the bios in this case).

 

altenbach_2-1578511377833.png

 

Now somebody needs to buy me a one of these. 😄

 

altenbach_0-1578510875741.jpeg

Message 7 of 22
(4,174 Views)

I have run the benchmark (but using Labview 2018 runtime engine).

resultat are the same as what I get with my programme : only 1 physical processor is runing... I can see it in resources monitor.

I get best score : 73,78 Hz (serialized) 1204.23 Hz (parallelized) so 16,23x


I wonder if the problem come from windows server 2012 R2 licence ? Even if it should be ok.

 

Any one have an idea ?

0 Kudos
Message 8 of 22
(4,086 Views)

Another isue is the fact that parallele "for loop" are limited to 64 instances in Labview.

I have try to creat very simple code in four loops with each one of them set for 36 parallele iteration (I also tryed with 18 ideration) but result are the same, only one processor worked.

I have been able to get two processor running at full power simultaneously by running my programme on two Windows session. But it's not relible and dosen't work for more than two processors.

0 Kudos
Message 9 of 22
(4,082 Views)

@tdcpopiou wrote:

Another isue is the fact that parallele "for loop" are limited to 64 instances in Labview.


You can raise the limit to 256 after you change an entry in the ini.

 

ParallelLoop.MaxNumLoopInstances=256

 

(details)

Message 10 of 22
(4,024 Views)