Available in LabVIEW NXG, where the compilation of VIs proceeds in parallel.
The LabVIEW compiler currently appears to use one core of a multi-core processor. It would be nice if it fully utilized multiple cores to speed building of large projects.
My understanding (based on one of AQ's posts, if memory serves) is that this is a mostly linear process which cannot be parallelized very efficiently. Are you suggesting that it can be made faster with a reasonable amount of R&D effort?
I have a narrow vantage point here, but I'll throw in an opinion:
Right now, a Mass Compile for me takes about 10 minutes. Over half that time (~6 min) is WASTED compiling the FPGA VI's, when it's only going to spit out that it was unable to successfully compile those VI's.
SOOOOO.... I would give a BIIIG Kudos to whoever picks that low hanging fruit prior to tweaking out a couple percent gain by parallelizing what can be parallelized. If mass compiles could be reduced to 4 minutes rather than 10 just by properly skipping the FPGA VI's, I would be happy.
Assuming that problem is fixed and I'm running 4 minute Mass Compiles, I don't care if it's 4 minutes or 1 minute with parallelization.... I Mass Compile once or twice a week, so my net gain is 3-6 minutes per week (read, not worth R&D's investment for my gain).
It is true that MassCompile and AppBuilder are each larger processes that involve more than just compile (including load, save, and various AppBuilder stages like DisconnectTypeDefs), and there may be independent optimization opportunities there through parallelization, smarter analysis, or other means. But faster "multi-core LabVIEW compiles" would indeed "speed building of large projects", since compile is a major part of building apps.
In general, you could parallelize a compiler in a few ways. (1) Data Parallelism: Break up the call-tree and compile different branches in separate threads; if there are no dependencies between two VIs, they could be compiled in parallel. (2) Pipeline Parallelism: Push multiple dependent VIs through different stages of the compile process at the same time; even if there is a dependency between two VIs, you may still be able to do some compile work on the caller before you finish compiling the callee. (3) Task Parallelism: If parts of the compiler process are truly independent tasks, they could be run in separate threads; even while compiling a single VI, there may be some work that can be done in parallel with the critical path.
Completed or Declined? It was Declined in like idea https://forums.ni.com/t5/LabVIEW-Idea-Exchange/application-builder/idc-p/3685173#M37402 by Darren per AristosQueue who said "While it is true that the build process gets some acceleration from making the compile process parallel, most of the build process is very serial, as I said before, and our review for NXG didn't change that..."
This idea is completed. The other one is declined.
This one is the very specific "make the compiles parallel". The other one is a broader "make app builder parallel". Compile is a single step within building an app, and there are many steps. So app building benefits from this change, but we are not changing the parallelism of app building overall. Make sense?
Available in LabVIEW NXG, where the compilation of VIs proceeds in parallel.