This presentation was given on May 4th at the Nebraska LabVIEW Users Group. Within this presentation are slides and LabVIEW 2010 SP1 examples on:
- Implicit multithreading
(LabVIEW's default behavior of clumping subsets of VIs and providing them to the OS run queue in parallel)
- Explicit multithreading
(How you can split large arrays for parallel processing - sacrifice RAM for execution speed)
- Pipelining
(Perform sequences of operations step-by-step to make advantage of multiple cores - this is sometimes referred to as the washer/dryer/folding clothes example)
- Amdahl's Law
(Predicting the execution speed-up to justify the additional effort of optimizing your LabVIEW code - important for engineers when communicating to managers!)
- Multicore Challenges
(Thread starvation, deadlock, etc.)
- Debugging
(More is going on at the same time = a lot to debug via Functional Debugging or Highlight Execution, or use Execution Trace Toolkit and/or Performance Counters)
- Optimal Data Transfer on your PC
(Physical differences between a Processor and a Core, and how the physical layout impacts performance