Developing Applications for Heterogeneous Machine Networks: The Durra Network

In this paper we describe Durra, a language designed to Support PMS-level programming, and its runtime environment. Users of networks of heterogeneous processors are concerned with allocating specialized resources to tasks of medium to large size. They need to create processes, which are instances of tasks, allocate these processes to processors, and specify the communication patterns between processes. These activities constitute Processor-Memory-Switch (pMS) Level Programming, ín contrast with traditional programming activities, which take place at the Instruction Set Processor (ISP) Level. This work is sponsored by the U.S. Department of Defense. The views and conclusions contained in this document are solely those ofthe author(s) and should not be interpreted as representing ofrcial policies, either expressed or implied, of Carnegie Mellon University, the U.S. Air Force, the Department of Defense, or the U.S. Government. @ Computing Systems, Vol. 2 . No. I . Winter 1989 An application or PMS-level program is written in Durra as a set of msk descriptions and type declarations that prescribes a way to manage the resources of a heterogeneous machine network. The application describes the tasks to be instantiated and executed as concurrent processes, the types of data to be exchanged by the processes, and the intermediate queues required to store the data as they move from producer to consumer processes. The environment consists of three active components: the application tasks, the Durra server, and the Durra scheduler. After compiling the type declarations, the component task descriptions, and the application description, the application can be executed by starting an instance ofthe server on each processor, starting an instance ofthe scheduler on one of the processors, and downloading the component task implementations (i.e., the programs) to the processors. The scheduler receives as an argument the name of the file containing the scheduler program generated by the compilation of the application description. This step initiates the execution of the application. l. Programming Heterogeneous

[1]  Jeannette M. Wing,et al.  Programming at the processor-memory-switch level , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[2]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[3]  Jeannette M. Wing,et al.  DURRA : A Task-Level Description Language , 1987, ICPP.

[4]  Allen Newell,et al.  Computer Structures: Readings and Examples, , 1971 .

[5]  Sandra A. Mamrak,et al.  Supporting Existing Tools in Distributed Processing Systems: The Conversion Problem , 1982, ICDCS.

[6]  Glenn H. MacEwen,et al.  RNet: A Hard Real-Time Distributed Programming System , 1987, IEEE Transactions on Computers.

[7]  Insup Lee,et al.  A distributed testbed for active sensory processing , 1985, Proceedings. 1985 IEEE International Conference on Robotics and Automation.

[8]  Mario R. Barbacci MasterTask: The Durra Task Emulator , 1988 .

[9]  Mario R. Barbacci,et al.  The Durra Runtime Environment , 1988 .