Newsgroups: comp.sources.unix From: pleierc@informatik.tu-muenchen.de (Christoph Pleier) Subject: v27i174: distributed-c-2.1 - Distributed C Development Environment, V2.1, Part00/18 Message-id: <1.756634932.28500@gw.home.vix.com> Sender: unix-sources-moderator@gw.home.vix.com Approved: vixie@gw.home.vix.com Submitted-By: pleierc@informatik.tu-muenchen.de (Christoph Pleier) Posting-Number: Volume 27, Issue 174 Archive-Name: distributed-c-2.1/part00 [ i edited several files in this distribution to remove ^G characters since not all the gateways that handle this newsgroup can handle nonprintable characters. i also had to remove one binary; apparently "make clean" had not been run before this was tarmailed to me. finally, i note with concern that several Makefiles include nonstandard "include" directives, which will work on System V "augmented" make(1)'s but not on BSD's make(1). to fix this you can do something like this after unpacking: perl -pi.bak -e '$_ = ".include \"$1\"\n" if /^include (.*)\n$/' \ `find . -name Makefile\* -print` warning: don't type the above command unless you understand what it does! (and especially do not type it outside the directory you unpack these sources in!) --vix ] The Distributed C Development Environment was developed at Technische Universitaet Muenchen, Germany, at the chair of Prof. Dr. J. Eickel and is a collection of tools for parallel and distributed programming on single- processor-, multiprocessor- and distributed-UNIX-systems, especially on heterogenous networks of UNIX computers. The environment's main purpose is to support and to simplify the development of distributed applications on UNIX networks. It consists of a compiler for a distributed programming language, called Distributed C, a runtime library and several useful tools. The programming model is based on explicit concurrency specification in the programming language Distributed C, which is an extension of standard C. Distributed C makes possible the common programming in C together with the user-friendly programming of process management, i. e. the specification, creation, synchronization, communication and termination of concurrently executed processes. The Distributed C Development Environment supports and simplifies the dis- tributed programming in several ways: o Development time is reduced by checking Distributed C programs for errors during compilation. Because of that, errors within communication or synchronization actions can be easier detected and avoided. o Programming is simplified by allowing the use of simple pointer types even on loosely-coupled systems. This is perhaps the most powerful feature of Distributed C. In this way, dynamic structures like linked lists or trees can be passed between processes elegantly and easily - even in heterogeneous networks. Only the anchor of a dynamic structure must be passed to another process. The runtime system automatically allocates heap space and copies the complete structure. o Developement is user-friendly by supporting the generation and installation of the executable files. A special concept was developed for performing the generation and storage of binaries by local and remote compilation in heterogeneous UNIX-networks. o Programming difficulty is reduced by software-aided allocating processes at runtime. Only the system administrator needs to have special knowledge about the target system's hardware. The user can apply tools to map the processes of a Distributed C program to the hosts of a concrete target system. o Execution time is reduced by allocating processes to nodes of a network with a static load balancing strategy. o Programming is simplified because singleprocessor-, multiprocessor- and distributed-UNIX-systems, especially homogeneous and heterogeneous UNIX- networks can be programmed fully transparently in Distributed C. The environment runs on the following systems: o Sun SPARCstations (SunOS), o Hewlett Packard workstations (HP/UX), o IBM workstations (AIX), o IBM ATs (SCO XENIX, SCO UNIX, LINUX), o Convex supercomputers (ConvexOS), o Cray supercomputers (Unicos), o homogeneous and heterogeneous networks of the systems as mentioned above. Moreover the implementation was designed for the use on Intel iPSC/2s. The Distributed C Development Environment source code is provided "as is" as free software and distributed in the hope that it will be useful, but without warranty of any kind. See the file 'README' for details. pleierc@informatik.tu-muenchen.de (Christoph Pleier)