Path: utzoo!attcan!uunet!wuarchive!brutus.cs.uiuc.edu!apple!voder!pyramid!unify!csusac!usenet From: brian@babbage.csus.edu (Brian Witt) Newsgroups: comp.lang.eiffel Subject: Re: Inter-Process Communication Summary: on a hypercube/1 Keywords: parallel processing, IPC Message-ID: <1990Jun10.210541.2656@csusac.csus.edu> Date: 10 Jun 90 21:05:41 GMT References: <230@rossignol.Princeton.EDU> Organization: California State University, Sacramento Lines: 43 In article <230@rossignol.Princeton.EDU> cwc@cs.Princeton.EDU (Chris Clifton) writes: >Has anyone written any sort of inter-process communication >primitives in Eiffel? Preferably something based on UNIX >sockets (I'd also like inter-processor communication eventually.) >I'd be interested in hearing experiences and getting suggestions, >even if you aren't in a position to share actual code. For a class project, a friend and I created several classes to provide inter-nodal communications on an Intel HyperCube/1. Since the HyperCube/1 is 16-bit and Eiffel is 32-bit, we ran the code on a simulator. We created two class pairs; one a high level interface, and another a low level interface. The high level provided functions like send-message and get-message. Basic nodal routing was provided. These routines called methods in the low-level portion that actually got the work done. The goal here was to create something that was independent of the OS functions. The other class pair concerned messages. Our messages were like postal envelopes: they contained some data, and routing instructions. There was an input buffer and an output buffer. The user's application had to copy out of these buffers to use the data, since doing ringleft.receive overwrote the contents of the buffer. Our goal of OS independent messaging on arbitrary parallel processing topologies was easily acheived. Tony (my partner who wrote these interface routines) said Eiffel ensured he wrote correct code, and the system worked stright out. The pre- and post-conditions helped out tremendously. Multiple inheritance allowed us to create message classes that could message (from one class), and also know about a topology (another class). We also created a feature that allowed us to peek into the actual storage of an ARRAY object. It's very nasty, and I won't force it on anyone -- mail if you'd like a copy. maybe I'll post it if I feel brace enough. It is _very_ nasty. >Thanks- >-Chris Clifton (cwc@Princeton.EDU) --- brian (now with better objects) witt brian@babbage.ecs.csus.edu -or- seer.UUCP!rael!aleks