landman@Sun.COM (Howard A. Landman) (05/18/89)
I'm having trouble understanding some of the pro- and con-Linda arguments presented recently, so I thought I'd give an example and ask people to guess how well Linda (or some other publicly available system) would do on it. Here's the situation. We are running massive gate-level simulations using simulator S on Sun workstations. We have two problems. (1) Our largest examples won't fit in 128 MB (maximum memory for the machines). (2) The simulation takes too long. A proposal has been made to do parallel simulation. S allows submodels to be written in C. We hope to divide the large (PC board) models along natural (chip boundary) lines, put each chip on a different processor, and use the network to communicate the chip-to-chip information. Some of the single-chip models, running on the fastest machine available, take around 0.2 to 2.0 seconds per clock cycle to execute. Hence, we expect the net overhead and delay to be negligible. It seemed to me that Linda might be a good choice for this. Each chip would first write its outputs into tuple space, then look for its inputs. This would force things to remain in sync just as much as is actually necessary. Writing outputs before reading inputs is required to avoid deadlock. Question: Is Linda a reasonable basis on which to build this system? Can Linda/C fit inside a larger program, or is it necessary for the entire program to be compiled in some Linda-ish manner (out of the question, we don't have source for the simulator)? Am I right in assuming that none of Linda's alleged performance problems could possibly matter, given the immense amount of other computation going on and the slow "clock" rate? Is the above plan a reasonable one, or am I missing something subtle? Proponents of any other system/language should feel free to argue their merits as well. Just remember that my main concerns are (1) will it work?, and (2) will it be easy and clean to program? Howard A. Landman landman@hanami.sun.com