mcdonley@dinl.uucp (alan mcdonley) (11/10/90)
I am new to this news group (didn't know it exists). I have a few questions about software architectures that require interprocess communication both internal to the same processor and between processors' applications. I currently have set up a test with two processes on a Cromemco (old unix box the government bought a while back) and a Sun3/60. I've got all kinds of real programs running like X windows and other applications along with the test processes. The processes are connected by sockets. The architecture has proc 1 talk to proc2 which retransmits the msg across the ethernet to proc3 which retransmits the msg to proc4. The messages are 168 bytes long. proc1 and proc2 are on the Cromemco and proc3 and 4 are on the Sun3/60. I am able to get about 5 msgs (1K) per second from proc1 to proc4. Is this for real?? Is this the kind of ballpark figure for interprocess comm with small msg sizes? I have heard that within the same processor, pipes are the preferred mechanism in POSIX systems. Do pipes go faster? I thought pipes were built ontop of sockets. Back a while I used to tell people, new to Ada, to avoid tasking and the associated rondezvous due to the time penalty. Should I be nixing designs in POSIX systems that use sockets/pipes and multiple processes if the required interprocess bandwidth is over 1Kb/sec? -- --------------------------------------------------------------------------- Alan McDonley, Martin Marietta Information and Communication Systems (303) 977-3347 mcdonley@inlatlas.den.mmc.com P.O.Box 1260 ncar!dinl!mcdonley Denver,CO 80201-1260 Opinions are my own, not my employer's. --------------------------------------------------------------------------
my@dtg.nsc.com (Michael Yip) (11/11/90)
I am sure you can get more than 5 messages per second even the stations are loaded. (Well, SUN3s are quite slow at today's standard but it got to do better than that.) I think that the problem may be because you are not using the no-blocking option (there is such a option, right? iocntl() or setsockopt()) when using the sockets. Please check your program and options on using sockets on UNIX. -- Mike my@dtg.nsc.com PS: I am not ssure about the no-blocking thing, but I kind of remember such an option when I used sockets a few years ago.