Download presentation
Presentation is loading. Please wait.
Published byMarie-Rose Dumas Modified over 6 years ago
1
LabVIEW Performance Issues David Thomson Droplet Measurement Technologies May 20, 2010
Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
2
SP2 4.0 Data acquisition program for the Droplet Measurement Technologies Single Particle Soot Photometer Updated recently from older program LV 7.1 to LV 8.6.1 Traditional DAQ to DAQmx Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
3
SP2 4.0 Main control program Housekeeping program
Opens other top-level modules Displays data User interaction, control set-points Monitors Alarms Housekeeping program Reads A/D channels Logs A/D channels and instrument state Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
4
SP2 4.0 – Data Acq. Module Separate top-level module
Continuously acquires data at 5MS/s, 4 ch. Scans data for randomly occurring events (e.g. particles) Saves data to file Under high particle loading, the scanning/saving cannot keep up with the continuous data rate Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
5
SP2 4.0 Data Acq. Module Two loops
Main “Scan” loop scans acquired data for events, saves data Data Acq loop continuously acquires “buffers” of data and makes them available to the main loop Data Acq loop is in a sub-vi with a higher priority Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
6
SP2 4.0 Data Acq. Loop Registers a Daq “software” event which then triggers acquisition when the hardware buffer is full Typical buffer is 1,000,000 points, 2 bytes/point, 4 channels = 8 MB Need an efficient data transfer mechanism to send data to Main scan loop Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
7
SP2 4.0 – Data Transfer Functional Global Global Queue Lossy Queue
Historically recommended Global Historically frowned upon, especially for large data sets Queue Recommended by Steve Solga Lossy Queue Only want most recent data anyway Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
8
SP2 4.0 – Data Transfer Results Ratios for time required by Data Loop to post data
Functional Global Global x1.9 Queue x 2.2 Lossy Queue (with reg x 2.1 queue in unused case) Lossy Queue x 8.2 (larger numbers are faster) Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
9
Data Transfer – Conclusions
Something is wrong with the Functional Global Globals aren't THAT bad Queues are pretty good for large data sets Lossy Queues are GREAT! IF you don't include a regular Enqueue anywhere on the block diagram! Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
10
Data Transfer – Main Conclusion
Question all your assumptions Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
11
SP2 4.0 – Additional Performance Point
Don't bundle large data sets into a multi- purpose cluster in a state machine Bundling and unbundling incur large memory/performance hits Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
12
Another Performance Bug
Depending on how an array is indexed and the resulting array is put on a shift register, the subsequent steps of the VI slow down a factor of 10 See example and notes posted on ni.com search for “odd memory performance bug” Droplet Measurement Technologies, 2545 Central Avenue, Boulder, CO 80301, ph: , fax:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.