Jump to content

Recommended Posts

QUOTE (Yen @ Jun 23 2008, 12:06 PM)

Windows doesn't have pipes like Linux, but if you search rolfk's posts, you should find a link to an OpenG pipe library for Windows.

Actually Windows does have pipes and they are quite like Unix pipes. The problem is that they are not really Posix compliant and the semantics are therefore slightly different. The OpenG library I created sort of works but has certain issues on startup such that the first read can sometimes timeout and similar things. The situation where this happens seems to depend on the machine used, OS version involved and quite likely also other things out of control of the programmer such as moon phase, time of day and such things :unsure:

I guess it could be made to work 100% reliable but I do not have the time nor currently any incentive to spend the necessary time into this also because for the situations I do use it is seems to always work as I need it to work.

Rolf Kalbermatter

Link to post
Share on other sites
  • 5 years later...

Rolf, do you still have that library around? Have you updated it at all? Is it still available to the public? I need to use an anonymous pipe in a very high-throughput Windows application that will span multiple EXEs.

Link to post
Share on other sites

I believe Mike B in the UK branch has been working with pipes as well but I can see if it is online anyway. I'll point him to this to see if there is anything he can share.

 

Out of interest, do these give you better bandwidth than using a localhost network adapter then?

Link to post
Share on other sites

James, I already sent him an email after another NI employee emailed me in response to this post. If he shares with me, I'll share with y'all.

 

Edit: In response to your question, I have no idea about the performance of Named Pipes relative to UDP or some other packetized protocol, but I suspect they do some heavy optimization. I'm interested in the Anonymous Pipe, which doesn't go through the network adapter. It's insanely fast (in both latency and throughput).

Edited by Stobber
Link to post
Share on other sites
James, I already sent him an email after another NI employee emailed me in response to this post. If he shares with me, I'll share with y'all.

 

Edit: In response to your question, I have no idea about the performance of Named Pipes relative to UDP or some other packetized protocol, but I suspect they do some heavy optimization. I'm interested in the Anonymous Pipe, which doesn't go through the network adapter. It's insanely fast (in both latency and throughput).

 

I wouldn't be surprised if the pipes offer higher throughput than network sockets. They are implemented in the Windows kernel most likely with some form of shared memory pool that is mapped into both processes. As such they do short circuit quite some overhead compared to going through the Winsock library. However I have no numbers available.

 

As to the latest version of the available code, the earlier link to the CVS repository on sourceforge is indeed the most recent one that is available and more or less working. I did some more trials on this but didn't get any more reliable operation out of it, and also there is a good chance that it might have additional issues on Windows 8. This part of the Windows API is both rather complex and involved and can be influenced by many internal changes to the Windows kernel.

Link to post
Share on other sites
Thanks, Rolf.

 

LV doesn't support Win8 RT apps because of the sandboxing, and desktop apps still have full access to the winapi, so I suspect pipes work fine in Win8 LV applications.

 

Well Win8 RT is for several reasons not an option. Any win8 RT application has to be a full .Net application as it is based on the virtual machine execution of .Net to achieve hardware independence (so it works on Arm, Risc, and x86 CPUs alike).

 

But the Pipes library uses Windows APIs that are prone to very slight platform differences in the kernel. While Windows tries to maintain backwards compatibility as much as possible, this API is exercised infrequently enough that they can let slip a few minor incompatibilities between Windows versions.

Link to post
Share on other sites
  • 6 years later...

I know this is an old topic, but I am trying to figure out how to get the Pipes VIs in LV 2019 for LabVIEW running on NI LabVIEW Linut RT for PXI.  The pipes VIs are not on the Connectivity/Library in the RT palettes for the PXI Linux RT system.

 

I wonder if it has to be Linux "Desktop" installation of LabVIEW for those VIs to show up on the palette and how we could get them on Linux RT for PXI? Hmm. 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.