02-16-2010 09:41 AM - edited 02-16-2010 09:46 AM
There are several ways you can call 64-bit code from a 32-bit program like TestStand. Thus you could call your imaging code from the current version of TestStand while still giving it a 64-bit address space. I recommend one of the two following approaches:
1) If your code is written in LabVIEW: Use the 64-bit LabVIEW development environment (run VI's in the development environment) to call your VI's from TestStand. I believe there are some issues with getting the registry settings correct so that TestStand can call the 64-bit LabVIEW development environment rather than the 32-bit version, but I think it's doable (I can get more details for you if you want to try this approach).
2) Write a 64-bit .exe COM/ActiveX server and call it from TestStand using the ActiveX adapter. You can call 64-bit .exe COM servers from 32-bit processes and vice versa. You can then load and call and C/C++ code that is 64-bit that you want to have access to the larger address space.
3) If you are using .NET you can use .NET remoting to call into a 64-bit .NET process (similar to 2) above, but for .NET).
Let me know if you have any questions or need more details.
-Doug
02-16-2010 09:43 AM - edited 02-16-2010 09:44 AM
02-17-2010 07:21 AM
Glad to hear that we are not the only ones doing memory-intensive imaging applications using TestStand
As recently as 2007, we saw other priorities in our vision applications than 64bit -- and said so, to NI Vision --, but this has changed dramatically. Basic vision applications have mostly moved downmarket (or rather: down-technology) to VisionSensors and SmartCameras, possibly accelerated by the financial crisis and its effects on investment. Remaining PC applications are characterized either by high requirements on processing speed or on image size or, increasingly, both. So far, we just managed to make do with 32-bit systems, but we will not be able to accept this constraint much longer.
The capability of easily distributing work over several machines makes TestStand very attractive for us in these applications together with the ability of integrating practically any toolkit or library we may need. We are currently putting a lot of manpower into defining our platform around TestStand as the core. Its flexibility and structure are a great help and I am often amazed at the foresight of the developers making some complicated things so easy. I would hate to have to use a less sophisticated system in a 64-bit world.
In coming months we will start systematic tests for putting together all our tools on 64-bit systems and will certainly try out the approaches, dug9000 has described. I guess we will be able to achieve a lot with these, but being able to make direct 64-bit-calls would of course be a lot more elegant.
I am fully aware of the size and complexity of the task of converting a system like TestStand to 64-bit, but I would appreciate a true 64-bit TestStand very much, and I would like to point out that 64-bit Windows will probably be quite commonplace in the near future. As early as July 2008, this ZDNet blog
http://blogs.zdnet.com/Bott/?p=506 noted 64-bit Windows becoming mainstream, and although figures are somewhat hard to come by, anecdotal evidence points the same way with Windows 7. I hear of a lot of people using 64-bit at home, and although the offices of large companies are typically the last to switch, it will probably happen a lot earlier in laboratories and on the shop floor, where the performance is needed.
I hope NI takes into consideration making TestStand native on the OS version likely to dominate in coming years.
One question to the approaches in the post: we are also looking at applying NI Vision instead of our usual vision libraries, also in a 64-bit-version, and here an encapsulation into LabView may be very attractive. Therefore, I would like some details on the LabView approach, namely:
Regards
Peter
02-17-2010 08:43 AM
Peter -
Thanks for the in-depth post. I believe you'll find the answers to your 64-bit LabVIEW questions answered in the following KnowledgeBase Article:
Does TestStand support calling VIs using LabVIEW 64-Bit?
You'll notice that currently, National Instruments does not support calling VIs using LabVIEW 64-Bit from TestStand on Windows 7 x64 operating systems. This is mainly due to a change in behavior that Windows introduced in the way 32-bit and 64-bit applications are registered in the registry. We are actively looking for the best solution/workaround to this problem, however, this isn't to say that it will not work. If your Windows 7 x64 machine only has one version of LabVIEW installed on it (LabVIEW 2009 64-Bit), then TestStand should be able to call LabVIEW 64-bit VIs using the LabVIEW 2009 64-Bit environment. It is the situation where both LabVIEW 32-Bit and LabVIEW 64-Bit versions are installed that exhibits unexpected behavior and we are looking into.
Hope this helps.
02-17-2010 01:30 PM
Hi Doug,
Yes, I would appreciate any more info you can provide on option 3. In particular, calling my own custom, 64-bit library from TestStand, using the same computer (64-bit, Windows 7). Doesn't involve LabView.
Thank you.
02-18-2010 09:32 AM
I Code Freely -
Would you mind if I asked the forum administrators for the email address associated to your forum name, so that I may email you directly?
02-18-2010 12:46 PM
07-30-2010 04:20 AM
To renew the discussion around a 64-bit TestStand: ZDNet recently published a notice that, according to Microsoft, almost 50% of all Windows 7 installations sold so far, are 64-bit. May perhaps be taken with a grain of salt, but seems to show a clear trend towards 64-bit OS.
Regards
Peter
10-09-2010 07:26 PM
We would use TestStand if it were a native 64 bit application.
We manipulate large amounts of digitized video data in memory and we are moving all of our SW onto Win 7. The larger physical and virtual memory sizes available in a 64 bit OS are compelling.
We specifically decided not to use TestStand due to its not having support for Win 7.
We waited a very long time for NI to upgrade CVI to support 64 bit development (and I believe CVI is still a 32 bit app itself!) and it looks like NI is trying to miss the boat on TestStand as well.
I noticed NI avoids mentioning the system requirements for TestStand - I had to hunt around for 30 or more minutes to find anything on the NI website that addressed TestStand 64 bit operation. I can find no info on Win 7 support (maybe the 4.5 beta will run on Win7 ?) for TestStand.
10-10-2010 09:48 AM
TestStand 4.2.1 officially supports Windows 7. See the following webpage for information on which versions of the OS are supported by which versions of TestStand:
http://www.ni.com/teststand/product_lifecycle.htm
It is still a 32-bit app, but there are ways to call 64-bit code from TestStand. Here are some examples of ways to call 64-bit code from TestStand:
1) Use the labview 64-bit development environment to execute VIs in the labview process.
2) Create a 64-bit exe COM server and call it from teststand using the ActiveX adapter.
3) Create a 64-bit exe .NET server and call it from teststand using .NET remoting.
Basically any sort of interprocess communication can be used to talk to a 64-bit process from a 32-bit process and pass data between them. The above 3 examples are just some of the easier ways to do it.
Hope this helps,
-Doug