DQMH Consortium Toolkits Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Performance/Memory considerations for a large application using DQMH vs AF?

Let's say one is going to be embarking on a fairly large application. Large is subjective but assume something like a very large test system that will be commanding a pool of instruments to perform a variety of tasks in different parallel processes. I suppose the closest thing most here would relate to is something like teststand (it's actually quite different in purpose and teststand would not be suitable). Anyway, you get the gist, a large application that will probably involve 50+ modules minimum for just the base core of functionality.

 

It's not really a thing where data is acquired at a breathtaking pace like what most seem to do around here, but there will be a lot going on and I've seen some crude attempts at a similar thing by some former colleagues when we were not very experienced with LabVIEW and it will absolutely get to the point where things feel slow/unresponsive if one doesn't specifically architect everything to be non-blocking/asynchronous,, as I've witnessed. It's quite distributed between a main server PC using Windows, a main RT server, and about 20 or so windows clients communicating over the network.

 

Basically, AF and DQMH are quite well suited to the challenge.

 

But I'm curious if there are any hidden dragons when things get to this scale. Am I asking for memory problems with DQMH since there will be so many duplicates of functionally the same VIs for each module? Should I definitely go 64bit if I go with DQMH? What about AF? Speaking of 64bit, I still seem to avoid it because everytime I look into it it still seems that there are lots issues and lack of feature support, is that still the case? I definitely will need a DB module or three, is the DB toolkit still unsupported for 64bit? Appreciate any thoughts on these questions and about AF/DQMH considerations when things scale up. 

0 Kudos
Message 1 of 7
(1,167 Views)

@DoctorAutomatic wrote:

I definitely will need a DB module or three, is the DB toolkit still unsupported for 64bit? 


Maybe have a look at our hse-db open source database module based on DQMH, which currently supports SQLite, MySQL (via pure TCP, supported on real-time targets) and ADO-DB (basically anything with an OLE DB or ODBC driver).

 

https://dokuwiki.hampel-soft.com/code/open-source/hse-db 




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® (The Future of Team-Based LabVIEW Development)


0 Kudos
Message 2 of 7
(1,139 Views)

@DoctorAutomatic wrote:

It's quite distributed between a main server PC using Windows, a main RT server, and about 20 or so windows clients communicating over the network.

 

Basically, AF and DQMH are quite well suited to the challenge.

 


Make sure you prototype your Client-Server connections.  For both AF and DQMH, TCP communication is an addon feature, and not necessarily a strong point of those particular frameworks.  

0 Kudos
Message 3 of 7
(1,127 Views)

@drjdpowell wrote:
Make sure you prototype your Client-Server connections.  For both AF and DQMH, TCP communication is an addon feature, and not necessarily a strong point of those particular frameworks.  

To that point Allen has several given presentations on TCP IP stuff using AF.

 

And Joerg has his HSE solution for DQMH. 

 

So it's out been with both and it's out there. I'd certainly look at either of those before reinventing the wheel.

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
0 Kudos
Message 4 of 7
(1,123 Views)

@Taggart wrote:


To that point Allen has several given presentations on TCP IP stuff using AF.

 

And Joerg has his HSE solution for DQMH. 

 


Those are what I was thinking of by "addon".  OP needs to verify those solutions are satisfactory.  Personally, I'd say that they add considerable extra effort, at the very least.  

 


Message 5 of 7
(1,118 Views)

@drjdpowell wrote:


Those are what I was thinking of by "addon".  OP needs to verify those solutions are satisfactory.  Personally, I'd say that they add considerable extra effort, at the very least.  

 



They are both definitely add ons.

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
0 Kudos
Message 6 of 7
(1,108 Views)

What the OP should do is prototype the system first.  For the DQMH that would be a Server that starts 50 clones of a DQMH Module doing simulated work and message passing, plus a Client DQMH application that can run multiple copies on another computer, again doing some message passing interactions with the Server.  That allows verifying that DQMH is suitable for the project.  Do the same in Actor Framework and any other framework you might want to compare.**

 

**If you want to try Messenger Library, OP, see the "Reconnecting TCP Client" example.  TCP messaging is relatively simple in Messenger Library.

0 Kudos
Message 7 of 7
(1,083 Views)