Code generation for large arays

7 posts / 0 new
Last post
Offline
Last seen: 3 years 2 months ago
Joined: 10/13/2021
Posts: 4
Code generation for large arays

Quick getting started question,

 

I have to generate reader and writer for large complex type, array size in typedef is set to 100k elements. Generator function makes LabVIEW unresponsive, after 40 minutes it generated requested functions. PC showed 90% CUP load. Can some improvement be made to speed this up? Attached typedef used in our scenario. This data will be used in request reply patern where we rarely request measurement from scope and he returns few megabytes of data. 

 

AttachmentSize
Package icon LabVIEW typedef3.94 KB
Keywords:
Offline
Last seen: 3 years 2 months ago
Joined: 10/13/2021
Posts: 4

After some digging managed to find the problem  - Get Array Dimensions.vi

They are password protected so I can not see actual implemetation, but replacing this vi with attached code (extracted from OpenG)  solved the problem

 

Ismael Mendez's picture
Offline
Last seen: 9 months 3 weeks ago
Joined: 07/03/2017
Posts: 74

Hi Pawhan

We have reproduced the issue with the ctl you provided and reached the same conclusion as you. There is a bottleneck on Get Array Dimensions.vi. That VI does some extra checks that introduce some overhead if the array is too large. We have taken note of it and will fix it in further releases. Thanks for letting us known about this.

 

Regards

Ismael

Offline
Last seen: 3 years 2 months ago
Joined: 10/13/2021
Posts: 4

Follow up question,

I have managed to generate code with examples, but Example Reader and Example Rriter are not able to connect to each other on the same machine using default settings. In RT Admin Console I see lost samples and lost reason: LOST_BY_WRITER. What might be the reason of that? Attached generate code.

 

File Attachments: 
Ismael Mendez's picture
Offline
Last seen: 9 months 3 weeks ago
Joined: 07/03/2017
Posts: 74

Hi pawhan

That happens because your type is too large for the default QoS. You have to adapt your QoS for working with large DataTypes. Please have a look at this link https://community.rti.com/kb/what-do-i-need-send-large-data-successfully (Toolkit version 3.1.1 uses internally Connextdds 6.0.1)

 

Offline
Last seen: 3 years 2 months ago
Joined: 10/13/2021
Posts: 4

Hi Ismael,

Thanks, after QoS change all works fine. Btw, when do You plan to release LabVIEW toolkit that will support 6.1.0 ?

Ismael Mendez's picture
Offline
Last seen: 9 months 3 weeks ago
Joined: 07/03/2017
Posts: 74

Hi Pawhan

Most likely the next toolkit release will be based on 6.1.0. But there is no date for it yet.