12-18-2019 10:56 AM
We are using DQMH modules for a lot of our smaller systems. We are now starting to look at larger systems that might have a lot of clones running of a "Device Module".
Has anyone done any tests on performance of a system running 1-1000 number of clones (Don't think it will ever go anywhere near 1000....but still)? Any overhead processing/memory usage because of DQMH (running a lot of devices on a machine will of course always add more and more work to the system...).
So my question is only looking at what using the DQMH framework for large systems does for performance....not what the systems themselves do.
Cheers
Henrik
12-18-2019 02:51 PM
This is one for Matthias Baudot...
DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (Developer Experience that makes you smile )
12-18-2019 07:40 PM
I don't know the upper limits of clones of a DQMH module. but I use over 16 clones of the DQMH module to communication our device via visa in LabVIEW 2019 32bit is well control.
I think your problem is the hardware limits. if your computer is running 32bit. the memory limit is using 1.8G RAM for a single application in OS. so if you over the limit in your clones that you will meet the problem. another one is OS threading issues. if your clones need in single threading that will meet like queue behaver.
for your reference.
12-19-2019 01:44 AM
The "Fully qualified clone name" has a range of 1..9999! This is also the maximum number that can theoretically be managed. Where exactly the limit is in practice, one would have to try.
12-19-2019 01:48 AM
I would think it's not a hard limit, but a question of how the performance degrades with increasing numbers of clones...
DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (Developer Experience that makes you smile )
12-19-2019 04:38 AM
Here's a link to a discussion of test "actor rings" made in Messenger Library and the Actor Framework. You should be able to make such a test in DQMH quite easily. We made tests with 10,000 that you could compare to.
12-20-2019 10:00 AM
We have an application that launches DQMH clones dynamically and can, in theory, serve many many clones at the same time (1 clone instance per client connected to the system).
We did some testing with 1000 DQHM clones. While I don't have benchmarking numbers handy, I can tell you that we didn't observe any performance degradation at all, when making a Request and Wait for Reply to a single clone when a single instance is running, versus when 1000 instances are running.
We have true reentrant code as part of our Cloneable Modules and we also tested the time it takes to perform (execute the code in the MHL of a DQMH request) when requesting a single clone versus requesting 1000 clones. Again, no significant performance degradation.
We only observed a decrease in performance for launching the clones. Indeed, launching 1000 clones at the same time takes a lot longer than launching a single clone. This is due to the cloneable module launching process which cannot be truly reentrant since some synchronization needs to occur to ensure a proper lifetime of the various references.
Hope this helps a little bit.
Matthias Baudot | Software Architect | Founder at STUDIO BODs | DQMH® Consortium Board Member