Łukasz Posted January 19, 2022 Report Share Posted January 19, 2022 (edited) Hello, I have noticed the difference in performance for the same application built on Windows and Linux (Ubuntu). Small differences could be understood but it looks like my app runs much slower on Ubuntu, so I tried to find any information what is that difference. I have checked the process created by the application in system performance and that's the first surprise: on widows I have 44 threads, on Linux 12 only. So it leads to question - is the parallel execution works on Linux ? I have tied to search the web to find any information related to how the application builder works but with no success. I would be grateful for any link or document describing that topic. edit: 44 thraeds on windows couled be expected when we have PC with 2 cores (2*20 + 4) according to https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000PARmSAO&l=pl-PL On Linux, running the LabVIEW 20XX\vi.lib\Utility\sysinfo.llb\threadconfig.vi. will show us that: so the normal prioriti is used only (checked on Ubuntu and OPENsuse). Edited January 19, 2022 by Łukasz Quote Link to comment
X___ Posted January 19, 2022 Report Share Posted January 19, 2022 I am afraid I have nothing to contribute to that question, but this post calls for that question from me: is there a possibility, in addition to setting the number of threads, to specify how many cores are used? Parallelism is great, but when using it indiscriminately, this can hog a PC. Having an option to programmatically (*) limit the numbers of cores that LabVIEW can claim would be nice, assuming that this is not something that is under the exclusive OS control. (*) the tool pointed out in the OP seems to require a restart of LabVIEW, which calls for the related question: how does this work in a standalone executable? Quote Link to comment
ensegre Posted January 19, 2022 Report Share Posted January 19, 2022 1 hour ago, X___ said: (*) the tool pointed out in the OP seems to require a restart of LabVIEW, which calls for the related question: how does this work in a standalone executable? via ini keys, perhaps? https://labviewwiki.org/wiki/LabVIEW_configuration_file/Execution_System#ESys.StdNParallel Quote Link to comment
X___ Posted January 19, 2022 Report Share Posted January 19, 2022 18 minutes ago, ensegre said: via ini keys, perhaps? https://labviewwiki.org/wiki/LabVIEW_configuration_file/Execution_System#ESys.StdNParallel OK. But even with that (very dated) page: https://labview.brianrenken.com/INI/undoc.htm, I am having trouble figuring it out. In fact, assuming that info is still valid, it would appear that you could define Esys.Instrument.Normal = 8 and so on, to get some arbitrary and insane number of threads. It still doesn't give any control on which core is used (probably because there isn't any way to do that). Quote Link to comment
Łukasz Posted January 20, 2022 Author Report Share Posted January 20, 2022 Thank you for your responses. If we made any configuration using Thread Configuration.VI then labview.ini will be changed i.e.: ESys.Normal=1 ESys.StdNParallel=-1 I haven't tried to copy those settings to the app.ini file yet. I think I need to figure out if the luck of other Execution Priority (fewer threads) could have an impact on performance. I have tried to reduce the number of threads for windows - to copy the configuration which was shown for Linux - but with that configuration, LabVIEW freezes at luncher. Quote Link to comment
Petr Mazůrek Posted August 24, 2022 Report Share Posted August 24, 2022 Hi Lukasz, have you made any progress regarding this? I am investigating RT Linux vs Windows but I observe similar tropes. Might start a topic on the subject... Thanks, Petr Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.