How to build Programmable Multi-Core Chips
The arrival of multi-core chips has heightened interest in the discipline of parallel programming, a topic that has received much attention for many years. Computer architects have much to learn from sound principles for structuring software and expressing parallel computation. This talk will cover principles for the design of computer systems to support composable parallel software – the idea that any parallel program is usable, without change, as a component of larger parallel programs. By following these principles, a revolution in the ease of building robust and high-performance parallel software can be achieved. The principles suggest interesting directions for computer architecture; the tools to experiment with new architecture concepts are ready and waiting for the savvy and ambitious researcher.
Jack Dennis completed the doctorate in Electrical Engineering in 1958, writing a dissertation that explored the strong analogy of mathematical programming problems to the solution of certain kinds of electrical networks. In Mathematical Programming and Electrical Networks, this analogy was shown to yield new algorithms for mathematical programming problems, and the extension of duality theory to quadratic and general convex programming formulations. He then joined the M.I.T. faculty in the Department of Electrical Engineering and was promoted to full professor in 1969. In the early days of M.I.T.'s Project MAC, Professor Dennis worked with Edward Glaser of the Multics team to specify the unique segment addressing and paging mechanisms that became a fundamental part of the General Electric model 645 computer (later the Honeywell 6180). In recognition of his contributions to the Multics project, Dr. Dennis was elected Fellow of the IEEE.
As leader of the Computation Structures Group, M.I.T. Laboratory for Computer Science, from 1963 through 1985, Professor Dennis directed a research program that developed aspects of computer architecture and programming languages based on dataflow models of program representation and execution. These developments led to dataflow projects at many universities and research institutes around the world, and won the ACM/IEEE Eckert-Mauchly Award for Professor Dennis in 1984. During this period, Professor Dennis supervised the doctoral research of more than twenty-five graduate students in topics ranging from the theory of Petri nets and the semantics of programming languages to computer system architecture and performance analysis. Group activities included construction of a dataflow engineering model to demonstrate the validity of dataflow concepts and the feasibility of asynchronous packet routing networks. In 1994 he was inducted as a Fellow of the ACM.