‎03-27-2008 07:56 PM
‎03-27-2008 09:20 PM
Check the recent discussion about running vision routines in parallel. It will probably help.
The main detail of the discussion is that you need to change the NI Vision routines to reentrant to maximize your parallel analysis. There are a couple of functions that could slow down when made reentrant, so be careful.
You also need to make sure your program is running several functions in parallel instead of serially to maximize the processing speed. There are several NI documents on optimizing programs for multiple processors.
Bruce
‎03-27-2008 10:06 PM
‎03-31-2008 01:30 PM
‎03-31-2008 09:11 PM
thank you Michelle
I don't understand thread?
teaching me exact thread?( similar for loop) If i made forloop into the forloop that is one thread or two thread
Another question
You said me L2 cache problem. image size? caculation? (floating point or etc...) What is exact mean?
Please! Show me the example vi?
And last question
Labview execution time and Labwindow cvi execution time which is too faster?
IF Labview into the Labwindow DLL(caculation time is too many point) is execution time up?
thank you regard
‎04-02-2008 09:03 AM
Hi neomin,
I apologize for the confusion. You can think of a thread is a chunk of code that can run independently from other pieces of code. A thread and a for loop are not inherently related. Threading is a way to make the execution of a program more efficient by breaking up the program into parts and running those parts at the same time. Generally speaking, the more threads you can process, while staying within the capabilities of your processor, the more efficient/faster the program can run. Threading is taken care of within the processor so it is hard to tell how the program will be broken up.
Another way to think of threading is if you were to have three while loops running simultaneously, each would be allotted its own thread as the while loops will run independently in your code.
L2 Cache is memory that is solely for the processor to use and is located on the processor. It is usually fairly small and is there as quick access memory for the process. Any data that is not located here, the processor must go to the RAM to use. This takes more time than if the processor was fetching data straight from cache. With saying this, there is no way to ensure that all of your program will stay in cache as Windows or whatever operating system you have may be using some of this memory also. But, if you keep your program within the size of your cache you are making it possible to keep the program in cache.
As for you last question, is LabVIEW or LabWindows/CVI faster. In rare cases, LabWindows/CVI may be slightly faster but for the most part you will not see a difference. You can try some benchmarking by writing simple code for each. Also, if you were to call a LabWindows/CVI DLL in LabVIEW I would think that you would be adding one more unnecessary step and adding to execution time. If you write LabWindows/CVI code you should run it in that environment unless you need to interface this with something in LabVIEW. Bringing LabWindows/CVI into LabVIEW will not speed up anything.
Does this make sense? Did I answer your questions?