Keeping the Orchestra Together: Dynamic Software for Distributed Systems
Peter Coffee: As processing is parceled out to dispersed multiprocessor or network nodes, software tools must adapt to changing tempos.Theres poetry in the process of turning our ideas into machine instructions. Of all the types of product that I get to review at eWEEK Labs, high-level language compilers are therefore my favorites--especially those whose output options include machine-code listings, with the high-level language statements interspersed as comments. I wish that more of our technologies offered more such disclosure of what theyre doing, and how (and even why) theyre doing it. What brings this to mind was a presentation at last weeks Microprocessor Forum from Masa Motomura, a project manager at NEC Corp., describing the companys Dynamically Reconfigurable Processor design. The device augments an array of processors with supporting logic that can reconfigure them into a task-specific configuration, switching from one to another in a single clock cycle. If you think its a challenge to build a C compiler for a single processor, deciding which variables will live in scarce on-chip registers and which will live in memory, imagine the task of "compiling" an entire array of processors into a set of data paths and finite state machines. Thats what the compilation tools for the DRP must do; the high-level prototype tools already developed by NEC provide useful visualizations that expose the structure of their proposed solution to a problem.
In introductory remarks before the NEC presentation, In-Stat/MDR Principal Analyst Max Baron (a senior editor of the revered newsletter Microprocessor Report and one of the Forum hosts), observed that the task of compiling software is vastly complicated as processing becomes distributed over distances that are non-negligible compared with speed-of-light traversals during a single clock cycle. "With an array of 512 processors [as provided by NECs DRP-1 prototype], software needs to be aware of when its asking for something at the opposite corner of the array; how many cycles it needs to allow," Baron said. Hes right, but not only on the scale of microchips.