From: pleierc@informatik.tu-muenchen.de (Christoph Pleier)
Newsgroups: comp.os.linux.announce
Subject: Distributed C Development Environment now available for LINUX and UNICOS
Date: 22 Dec 1993 01:08:39 +0200
Approved: linux-announce@tc.cornell.edu (Lars Wirzenius)
Message-ID: <2f7vln$ioh@klaava.Helsinki.FI>

Distributed C Development Environment now available for LINUX and UNICOS

The Distributed C Development Environment is now available for
AT 386/486 running LINUX and for Cray supercomputers running UNICOS. 
The environment is stored at ftp.informatik.tu-muenchen.de in the 
directory /local/lehrstuhl/eickel/Distributed_C. You can get it by
anonymous ftp.

-----

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. 
The language constructs were mainly taken from the language CONCURRENT C
developed by N. Gehani and W. D. Roome and are based on the concepts for
parallel programming implemented in the language ADA. 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 chained
      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 Distributed C Development Environment consists mainly of the tools:

    o Distributed C compiler (dcc): 
      compiles Distributed C to standard C.
    o Distributed C runtime library (dcc.a): 
      contains routines for process creation, synchonization, ...
    o Distributed C administration process (dcadmin):
      realizes special runtime features.
    o Distributed C installer program (dcinstall): 
      performes the generation and storage of binaries by local 
      and remote compilation in heterogeneous UNIX-networks.

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.

-- 

Christoph Pleier

pleierc@informatik.tu-muenchen.de

--
Mail submissions for comp.os.linux.announce to: linux-announce@tc.cornell.edu
PLEASE remember Keywords: and a short description of the software.
