Newsgroups: comp.parallel,comp.object,comp.sys.super,comp.lang.c++
From: sanjeev@cs.uiuc.edu (Sanjeev Krishnan)
Subject: CHARM/CHARM++ PARALLEL OBJECT-ORIENTED SYSTEM RELEASE
Organization: University of Illinois at Urbana
Date: Tue, 21 Nov 1995 22:01:52 GMT
Message-ID: <sanjeev.816991312@sal>



NEW RELEASE OF CHARM / CHARM++
------------------------------

We are happy to announce the next major release (version 4.5) of the
Charm/Charm++ portable object-oriented parallel programming system.

The Charm software can be ftp'd from a.cs.uiuc.edu (128.174.252.1) 
from the directory pub/CHARM/CHARM.4.5.  Many of the papers from our group 
(Parallel Programming Laboratory, University of Illinois) are also available 
in pub/CHARM/papers.  Also check our WWW server http://charm.cs.uiuc.edu

Please register with us when you install Charm.
Also, let us know any problems you notice with the system.
Send bug reports to charmbugs@cs.uiuc.edu, and discussion items
of general interest to the mailing list "charm@cs.uiuc.edu.".
To subscribe to this mailing list, send  an email (containing
the line "subscribe charm <full-name>") to listserv@cs.uiuc.edu.


The major changes/upgrades in this release are:

o The distribution now includes ``Converse'', a framework for
  interoperability across parallel languages, and support for
  building runtime systems for new parallel languages.
  (We will post a separate article describing Converse in more detail.)

o Both Charm and Charm++ are retargeted to Converse.  As a result,
  Charm and Charm++ modules can be integrated in a single application.
  In addition, other language modules (for languages implemented using
  Converse) can also be integrated.  Currently a demo language 
  that supports multiple threads per processor, and simple message
  passing (tagged messages, sends and receives) is included in the
  distribution as an example of this interoperability.

o The Charm/Charm++ *languages* are otherwise unchanged, except for a few
  syntax improvements in Charm++, and bugfixes. The installation and
  running procedures also have become simpler.

o A new feature is the simulation capability. You can take any of
  the sim versions (sim_sol, sim_hp, etc.) and run programs on your
  workstation in simulation mode, simulating machines with large number
  of processors, and with machine characteristics (communication times,
  for example) of your choice. In addition for its use in performance
  prediction, this is great for debugging programs too. (Using large
  latencies with random variations helps finding order-dependent bugs,
  for example).

The CHARM system distribution includes :

. Converse    : A runtime framework that supports interoperability

. CHARM       : A parallel object-based extension of C.

. CHARM++     : A C++ based parallel language that supports concurrent 
                objects with inheritance.

. Projections : An expert performance analysis tool

. SummaryTool: A simple performance analysis tool

. Dagger      : A notation for easy expression of message driven programs.

Charm/Charm++ are parallel object based languages. Programs are
written in C or C++ with a few extensions for parallelism. 
The main features of the system are:

o Portability : Charm programs run unchanged on various
  shared memory and private memory MIMD machines. 
  The machines included in the current distribution are:

  Intel Paragon               Thinking Machines CM-5       
  nCUBE/2                     IBM SP
  Uniprocessor workstation (Unix) with multiprocessor emulator
  Networked workstations (Unix) : 
        Sun(SunOS), Sun(Solaris), HP, IBM-RS6000
        
o Message driven execution : The system supports message driven
        execution for latency tolerance.  Charm (then called Chare
        Kernel) was one of the first systems to support message driven
        execution on stock multicomputers.

o Dynamic creation of objects : Charm allows dynamic creation of
        processes/concurrent objects and provides dynamic load
        balancing.  It also supports prioritized scheduling.

o The "Branched Chares" construct supports groups of chares, which
   facilitates inter-module interfaces, and supports distributed data
   structures. 

o An efficient module system : Charm allows separately compiled
        modules to coexist without name conflicts.  It also makes it
        possible to overlap communication time in one module with
        computation from another which is impossible/difficult in
        traditional SPMD programming.

o Specifically shared variables : Charm supports a disciplined form of
        virtual shared memory by providing abstractions for commonly
        used modes in which information is shared in parallel
        programs.

o Enhanced performance analysis : Based on the object-oriented design
        of Charm and the specificity of its constructs, Projections
        provides graphical performance feedback which is more refined
        than is possible with many contemporary tools. It also 
	automatically analyses the program execution and gives expert
	insight and advice regarding performance problems. 

For further information, contact : 

        Prof. L.V. Kale
        Parallel Programming Laboratory
        Department of Computer Science
        University of Illinois at Urbana-Champaign
        1304 W. Springfield Ave.
        Urbana, IL 61801
        kale@cs.uiuc.edu
        (217) 244-0094   Fax: (217) 333-3501



