I've been asked by numerous folks to compare MAY to other available packages. Below, I extract some verbiage that compares MAY to PVM and to CORBA. MAY Version 2.07 ================ A Distributed Processing Package for Easing the Developemnt of Algorithms with Coarse-Grained Parallelism --------------------------------------------------------- Linas Vepstas, 1993 ------------------- Comparisons to Other Systems ============================ CORBA ----- The OMG consortium (Object Mangement Group) has defined a standard, CORBA (Common Object Request Broker Architecture) for communication between objects in a distributed, heterogeneous environement. CORBA has received attention from a number of major corporations, which market, or have announced, CORBA compliant products. These include Microsoft with OLE (Object Linking Environment), IBM with SOM (System Object Model), Hewlett-Packard with ??, Sun with ?? (it does have a name, but I can't remember it), and NeXT with ??. One of CORBA's weak points is that one can be CORBA compliant, without being inter-operable with another vendors version of CORBA. However, CORBA does define an IDL (Interface Definition Language) that makes network transparency problems (e.g. byte-swapping, byte/word alignment, Endian, etc.) go away. CORBA defines both synchronous and asynchronous message passing (send msg & wait for reply; send msg & ignore reply; send msg & post reply to msg queue). CORBA's greatest limitation appears to be that the people involved are not parallel-processing hackers, but are object-oriented, desktop graphics hackers. Thus, initial applications of CORBA compliant products will be in transmitting video & putting it in a window, drag&drop of icons into wastebaskets, put voice annotation into spreadsheets into mail messages, and getting remote printers to print your stuff correctly (finally?). There appears to be little/no thought put into optimizations for either distributed numerical applications, or for efficiency in compute-intensive environements, or efficiency on MP machines. For some reason parallel folks have spent very little time working on distributed objects.... Maybe this is why "70% of MPP budgets are spent on s/w"? MAY's strengths comapred to CORBA: Its here now; the documentation is much, much thinner. MAY is in the public domain. CORBA is an architecture, not source code or executable. MAY's weaknesses: MAY does not provide an object dispatcher. (An object dispatcher is a spin-loop at the remote end. It waits for messages to come in, and then, based on the message, calls the appropriate routine or object. This appears to be the current favorite way of implementing object-oriented anything over a network. A user of MAY (esp. the processor farm) has to write the polling loop themselves if they wish to receive more than one message. Object-orientation hides the polling loop from the coder, and provides some other nifty services as well.) PVM/HeNCE --------- PVM/HeCNE appears to be a considerably more ambitious and more broadly supported package as compared to MAY. The author has no experience with PVM, so some of the comments below may be inaccurate. PVM provides certain services not currently found in MAY: -- transparent byte swapping -- built-in synchronization primitives -- FORTRAN interfaces Compared to PVM, MAY's principle strengths would be its smaller size and reduced complexity. Being smaller, it should be a more accessible package in educational contexts. In particular, MAY lays out a reasonable groundwork for students wishing to study the internals of a message-passing system. The lists of "Ideas for Future Enhancements" appended to the documentation for each subroutine should provide ample material for homework excercises. MAY does provide support for a processor farm, providing automated scatter-gather of work items. The MAY processor farm incorporates several load-balancing algorithms to automatically adjust for job size and the varying speeds of heterogenuous processors. The author is not aware if such a service is available on the PVM system. Bill Gropp (Argonne National Laboratory, Chicago, Illinois) writes: > PVM 2.x.x provides absolutely no support for MPP's. The claim that > PVM 2.x.x runs on CM-2 or ipsc/860 is false; what is meant is that it > runs on the hosts for those machines. PVM 3.0 contains support for the > ipsc/860 with more planned. --linas