06-05-2024 02:04 AM
Good morning, all,
I maintain and extend a LabVIEW (2020) app consisting of about 1,200 vis and ctls, compiled on PC and run on a cRIO. The app also uses a separate HMI, also written in LabVIEW, with another 200 or so vis and ctls.
The compilation time to build these two programs -- on a windows 10 machine that's getting a little long in the tooth -- adds up to 5 minutes or so, and can be considerably longer if I forget to clear the windows temp directories first.
We are considering replacing this machine. Is there significant benefit in compiling large LabVIEW programs on a computer with lots of cores? That is, is the build process for cRIO and/or PC executables multi-threaded?
Thanks,
-- Mark
Solved! Go to Solution.
06-05-2024 02:59 AM
@MarkBowles wrote:
Is there significant benefit in compiling large LabVIEW programs on a computer with lots of cores? That is, is the build process for cRIO and/or PC executables multi-threaded?
Not according to this:
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000001ECrrCAG&l=en-IL
I seem to vaguely recall some talk from NI about possibly changing this, but I don't remember details and I'm not even sure if it's real.
Some people have continuous integration setups so that the build happens on a dedicated machine, and then it at least let's you keep using LV while you're building. You can in principle also create a second copy of the LV exe and run that.
06-05-2024 03:07 AM
If you upgrade to LV2023+ you'll probably gain a lot of compilation time as it implemented a compile cache so not all VI's needs to compile each time.
06-05-2024 03:12 AM
There is an entry about his in the idea exchange :
https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Multi-Core-LabVIEW-Compiles-App-Builds/idi-p/4370553
Not many Kudos on it though
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
06-05-2024 05:38 AM
@MarkBowles wrote:
Good morning, all,
I maintain and extend a LabVIEW (2020) app consisting of about 1,200 vis and ctls, compiled on PC and run on a cRIO. The app also uses a separate HMI, also written in LabVIEW, with another 200 or so vis and ctls.
The compilation time to build these two programs -- on a windows 10 machine that's getting a little long in the tooth -- adds up to 5 minutes
I have a relatively heavyweight app (around 7500 VIs) that has been developed since 2007. A good point is that this app is splitted into PlugIns (around 70) with their own build specifications. The total build takes around 20 minutes. Another good point is that the build specification can be invoked programmatically, so in case a full rebuild (is very rarely needed), I just start several copies of LabVIEW. The first one will build PlugIns 1 to 10, the next one will build PlugIns 11 to 20, and so on. It takes just a few minutes, and it's ready. However, a full rebuild is rarely needed because if only one PlugIn changes, then only a small portion of the code needs to be rebuilt, not the whole app.
06-05-2024 07:08 AM
Nice Andrey! I haven't thought about that solution.
For others wondering, if you use the DOS command Subst to create new paths to LV you can start multiple instances.
e.g. subst g: "c:\program\national instruments\labview 2023", this way you can easily have 5 different paths to the same program
06-05-2024 07:17 AM
@Yamaeda wrote:
Nice Andrey! I haven't thought about that solution.
For others wondering, if you use the DOS command Subst to create new paths to LV you can start multiple instances.
e.g. subst g: "c:\program\national instruments\labview 2023", this way you can easily have 5 different paths to the same program
As far as I remember, the key
allowmultipleinstances = TRUE
is available, but I just simply copy LabVIEW.exe -> LV1.exe -> LV2.exe and so on, that works.