2
Signal Processing 17 (1989) 183-187 183 Elsevier Science Publishers B.V. BOOK REVIEWS "A VLSI Architecture for Concurrent Data Struc- tures", by W. J. Dally, Massachusetts Institute of Technology. Publishers: Klnwer Academic Pub- lishers Group, P.O. Box 322, 3300 AZ Dordrecht, The Netherlands, 1987, xvi + 243 pp., ISBN 0-89838- 235-1, indicative price: U.S. $44.50 A VLSI Architecture for Concurrent Data Struc- tures, is "based on [Dally's Caltech] PhD thesis", and as a thesis it is undoubtedly excellent. As a text-book however, it has certain problems--all of them minor in relation to the rest of the book, but still worth mentioning. Since I would like the reader to end with the impression of a good book, I'll get the negative points over and done with first. The greatest omission is that there is no index. All books published with a technical or scientific audience in mind must have one if they are to be of reference use. The only possible exceptions to this would be narrative or 'popular' works which are intended solely to be read sequentially from the first page. Dally's book is not of this type. The lack of an index is one symptom of the book being a (slightly) modified thesis. In terms of overall style, there is a tendency to use mathematical formalisms where words would suffice, or even where no further comment is required. The ease of production of formulae in text formatting systems (such as TeX) can unfortu- nately lead to such over indulgence. The book also has far too many references (138) which makes it unclear which are the important sources, and jumps around from topic to topic rather too frequently for the book to be a good tutorial. These are however, minor criticisms when compared with the important points raised in the content of the work. The fundamental problem addressed by' the book is that of how concurrent computing struc- tures may be programmed: it is all very well pro- posing and building hardware architectures but, as Dally points out, "software is the real challenge in the development of these machines". This emphasis on the study of software, or perhaps more precisely, on computation, is manifest in the composition of the text: a short introductory chap- ter is followed by three chapters (120 pages) on algorithms and computation, with the final chapter (60 pages) considering the hardware implica- tions. The solution proposed by the book is the use of 'concurrent data structures': the majority of the book is concerned with explaining what these entities are, and how they are used. In essence, such structures can be thought of objects, whose components may be distributed across the process- ing elements of a parallel computer. In order to discuss these, and to enable practical implementa- tion of the concepts that emerge, Dally introduces the notation of Concurrent Smalltalk (CST), an extension of the Smalltalk-80 language. Smalltalk is a particularly appropriate basis, since it is the archetypical object-oriented language, in which computation takes place through the interaction of objects via messages passed between them. Since concurrent computing can be regarded as taking place in precisely this manner, the rel- evance of Smalltalk is obvious. The extensions that make up CST include explicit locks for concur- rency control, and the ability to form distributed objects which can respond to, and send, multiple messages. The disadvantage of Smalltalk is that it has a rather unfamiliar syntax, which might disturb some readers that are new to the language. However, an introductory appendix is provided.

A VLSI architecture for concurrent data structures: by W. J. Dally, Massachusetts Institute of Technology. Publishers: Kluwer Academic Publishers Group, P.O. Box 322, 3300 AZ Dordrecht,

Embed Size (px)

Citation preview

Page 1: A VLSI architecture for concurrent data structures: by W. J. Dally, Massachusetts Institute of Technology. Publishers: Kluwer Academic Publishers Group, P.O. Box 322, 3300 AZ Dordrecht,

Signal Processing 17 (1989) 183-187 183 Elsevier Science Publishers B.V.

BOOK REVIEWS

"A VLSI Architecture for Concurrent Data Struc- tures", by W. J. Dally, Massachusetts Institute of Technology. Publishers: Klnwer Academic Pub- lishers Group, P.O. Box 322, 3300 AZ Dordrecht, The Netherlands, 1987, xvi + 243 pp., ISBN 0-89838- 235-1, indicative price: U.S. $44.50

A VLSI Architecture for Concurrent Data Struc- tures, is "based on [Dally's Caltech] PhD thesis", and as a thesis it is undoubtedly excellent. As a text-book however, it has certain problems--all of them minor in relation to the rest of the book, but still worth mentioning. Since I would like the reader to end with the impression of a good book, I'll get the negative points over and done with first.

The greatest omission is that there is no index. All books published with a technical or scientific audience in mind must have one if they are to be of reference use. The only possible exceptions to this would be narrative or 'popular ' works which are intended solely to be read sequentially from the first page. Dally's book is not of this type. The lack of an index is one symptom of the book being a (slightly) modified thesis.

In terms of overall style, there is a tendency to use mathematical formalisms where words would suffice, or even where no further comment is required. The ease of production of formulae in text formatting systems (such as TeX) can unfortu- nately lead to such over indulgence. The book also has far too many references (138) which makes it unclear which are the important sources, and jumps around from topic to topic rather too frequently for the book to be a good tutorial. These are however, minor criticisms when compared with the important points raised in the content of the work.

The fundamental problem addressed by' the book is that of how concurrent computing struc- tures may be programmed: it is all very well pro- posing and building hardware architectures but, as Dally points out, "software is the real challenge in the development of these machines". This emphasis on the study of software, or perhaps more precisely, on computation, is manifest in the composition of the text: a short introductory chap- ter is followed by three chapters (120 pages) on algorithms and computation, with the final chapter

(60 pages) considering the hardware implica- tions.

The solution proposed by the book is the use of 'concurrent data structures': the majority of the book is concerned with explaining what these entities are, and how they are used. In essence, such structures can be thought of objects, whose components may be distributed across the process- ing elements of a parallel computer. In order to discuss these, and to enable practical implementa- tion of the concepts that emerge, Dally introduces the notation of Concurrent Smalltalk (CST), an extension of the Smalltalk-80 language.

Smalltalk is a particularly appropriate basis, since it is the archetypical object-oriented language, in which computation takes place through the interaction of objects via messages passed between them. Since concurrent computing can be regarded as taking place in precisely this manner, the rel- evance of Smalltalk is obvious. The extensions that make up CST include explicit locks for concur- rency control, and the ability to form distributed objects which can respond to, and send, multiple messages. The disadvantage of Smalltalk is that it has a rather unfamiliar syntax, which might disturb some readers that are new to the language. However, an introductory appendix is provided.

Page 2: A VLSI architecture for concurrent data structures: by W. J. Dally, Massachusetts Institute of Technology. Publishers: Kluwer Academic Publishers Group, P.O. Box 322, 3300 AZ Dordrecht,

184 Book reviews

Once the apparatus of CST has been set up, Dally proceeds by developing a data-structure called the balanced cube as a means for implement- ing distributed ordered sets. The whole of the third chapter is devoted to the analysis of this object type, with particular attention to its comparison with established structures such as heaps and B- trees. Its main purpose, however, is to be used as a model for the communications side of concur- rently executing processes, and it is here that Dally makes reference to the hypothesis which underlies the book: designing a concurrent system needs to concentrate on the communications speed, not the speed of the individual processing elements.

The fourth chapter is concerned with the appli- cation of the equipment (CST and concurrent data- structures) to a specific problem area: graph algorithms. Algorithms for single shortest path, max-flow, and graph partitioning are described, which neatly fit into the book's concern with com- munications between co-operating concurrent computers. The solutions presented add weight to the communication versus processor speed hypothesis mentioned above, in that they each exhibit the same three properties: synchronisation is via message passing; messages are short; methods (Smalltalk for procedures) are less than 10 lines 0f code. These properties form the founda- tions on which the hardware design of chapter five is based.

The discussion of architectures on which the preceding concepts may be implemented involves linking the knowledge of these concepts to the constraints of practical electronic devices, in this case the use of VLSI. Standard considerations of VLSI complexity conclude that both chips, and systems of chips are limited by wiring-density, as opposed to terminal- or logic-density. Dally takes this as his starting point, and combining this with a detailed analysis of the properties of a variety of network topologies, comes to the (surprising)

conclusion that for networks of under 1000 pro- cessors, the best performance is obtained from a two-dimensional network. This is particularly interesting in view of the prevalence of the 'n-cube' systems which are currently available. Of course, this result is valid only for systems which conform to the constraints imposed in the book, but these are all reasonable.

Finally, Dally makes several important conclud- ing points regarding the methodology of computer architecture design, and I should like to end with his words on this subject:

"Computer architecture encompasses the design of programming languages, data structures, and algorithms, as well as hardware. The approach taken here is to start with a programming para- digm, concurrent data structures, develop a notation, CST, write algorithms using this nota- tion, and finally to organize hardware to support these algorithms. In contrast, many computer architects restrict themselves to the last step. They analyze existing algorithms and fine-tune architectures to execute these algorithms. The problems with this evolutionary approach is that it leads to inbreeding, amplifying both the good and bad features of existing computer architec- tures. The algorithms analyzed are optimized to run on the previous generation of machines, which were fine-tuned to execute the previous generation of algorithms, and so on. The next generation of machines makes the good features better and ignores the bad since they were not frequently used by the algorithms. The worst effect of this approach is that it discourages new programming language features."

Alan WOOD University College London London England

Signal Processing