LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FGV vs Global Variable vs DVR

Solved!
Go to solution

@mcduff wrote:

EDIT: Just tried running in parallel, much larger memory saving, and faster for the IPE structure.


Doesn't the IPE prevent parallell access?

/Y

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 11 of 15
(1,415 Views)

@Yamaeda wrote:

@mcduff wrote:

EDIT: Just tried running in parallel, much larger memory saving, and faster for the IPE structure.


Doesn't the IPE prevent parallell access?


In some newer version (2017?), the parallel read access was added to the IPE Structure.  It will block writes, but multiple places can do the parallel read together.  But that might be adding to the memory usage.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 12 of 15
(1,397 Views)

@crossrulz wrote:

@Yamaeda wrote:

@mcduff wrote:

EDIT: Just tried running in parallel, much larger memory saving, and faster for the IPE structure.


Doesn't the IPE prevent parallell access?


In some newer version (2017?), the parallel read access was added to the IPE Structure.  It will block writes, but multiple places can do the parallel read together.  But that might be adding to the memory usage.


EDIT: In the captions I wrote DVR, should be In-Place instead

 

I am going to give the answer I often see here; it is one that I hate, but not sure how else to answer.

 

"The compiler is smart enough to allow parallel access and knows the data is not being modified."

 

Parallel read is only for DVRs I believe. Anyway this is NOT an @altenbach benchmark, only tested  in LV2018, 64bit. See screenshots below and LV2017 code attached.

 

mcduff

Look at Memory & execution time (DVR NO parallel)Look at Memory & execution time (DVR NO parallel)Look at Memory & execution time (DVR Parallel)Look at Memory & execution time (DVR Parallel)Look at Memory & execution time (Primitives, no parallel)Look at Memory & execution time (Primitives, no parallel)Look at Memory & execution time (Primitive, parallel)Look at Memory & execution time (Primitive, parallel)

Message 13 of 15
(1,383 Views)

@mcduff wrote:

Anyway this is NOT an @altenbach benchmark...


Nor does it use a DVR.  You need to use New Data Value Reference in order to create a DVR.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 14 of 15
(1,377 Views)

@crossrulz wrote:

@mcduff wrote:

Anyway this is NOT an @altenbach benchmark...


Nor does it use a DVR.  You need to use New Data Value Reference in order to create a DVR.


I mistakenly wrote DVR instead of in-place, I blame you 😉 since I had your last post on my mind.

 

mcduff

0 Kudos
Message 15 of 15
(1,375 Views)