LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

parallel execution "not working" OR freeze "preferred execution system" core 2 duo multithreading

I have a progress bar during a long instrument self-calibration that works on a Pentium microprocessor, IF I set the preferred execution system different than the GPIB calibration command. However, nothing I try will allow the progress bar to work in parallel on a Core 2 Duo system. Any ideas?

 

Both LabVIEW 8.6 and 2009

 

 

Download All
0 Kudos
Message 1 of 5
(2,393 Views)

What are the execution settings you have set up for the VIs? Is the only change with the code the version change and the processor change?

 

Rob S
Applications Engineer
National Instruments
0 Kudos
Message 2 of 5
(2,310 Views)

Thank you for your interest. I intend to reply soon with specifics.

 

From memory, the original execution settings were top-down default, until getting to the progress bar SubVI, which when changed to Other1, fixed the frozen bar on a Pentium, but not on a Core2Duo. Since the original code, I've tried varius settings, including increasing the priority of the status bar, and setting the GPIB command to Instrument I/O.

 

I believe the issue exists between processor types, not between LabVIEW versions (i.e. no difference between versions, only uP types). No other changes in code.

 

Regards,

Corey Walker

Spectralink

0 Kudos
Message 3 of 5
(2,286 Views)

The solution:

 

I tried all combinations of VI Properties Execution Catagory that made sense, including making the progress bar SubVI's priority time critical. One interesting behavior was that while the progress bar SubVI's Execution was set to Other1/2, its for loop appeared to progress during the instrument calibration, but the front panel progress bar did not change visually. That is to say that when the instrument calibration completed, the progress bar jumped to the completed state (full bar). That did not happen when the progress bar SubVI's Execution was set to User Interface.

 

Digging deeper, I found that the GPIB command to calibrate the instrument was actually a Call Library Function Node. Changing the node's thread function configuration to "run in any thread", from "run in UI thread", solved the problem. The calibration and the progress bar now run in parallel.

0 Kudos
Message 4 of 5
(2,239 Views)

Very interesting observation, thank you for sharing the solution so the community can benefit from your expertise!

Rob S
Applications Engineer
National Instruments
0 Kudos
Message 5 of 5
(2,208 Views)