XCoop,
When you unbundle an array from the cluster, the array is copied and you risk a relatively slow memory allocation operation. At minimum, I'd advise unbundling the arrays outside the loop and passing them in as separate parameters. Here are a couple other thoughts:
1. It sounds like your cluster remains constant throughout the 1016x1000 subvi calls, right? Couldn't you put the two loops
inside the subvi? Then you'd only have overhead from one function call, not a million. Plus you could unbundle everything inside the subvi but outside the loops for further efficiency.
2. Consider setting up the subvi as a subroutine (VI Properties-->Execution). This reduces overhead, but beware -- it is also less friendly about yielding the CPU.
As for very general advice: Arrays in clusters get copied when unbundled. Calls to subvi's have overhead. Squeezing out an extra 10% performance isn't always worth the resulting time, effort, and the long-term hassle of code inelegance. But when you
really need that last 10%, be sure to listen to
altenbach.
-Kevin P.
ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.