Newsgroups: comp.parallel
From: furnish@dino.ph.utexas.edu (Geoffrey Furnish)
Subject: ANNOUNCE: Canonical Classes for Concurrency Control
Organization: Institute for Fusion Studies, University of Texas at Austin
Date: 29 May 1995 15:07:18 GMT
Message-ID: <3qcnv6$1vs@usenet.srv.cis.pitt.edu>

This is to announce the general availabilty of the Canonical Classes
for Concurrency Control, a new C++ library for parallel programming.
This library is /not/ a C++ "language extension" like so many of the
other parallel C++ offerings available on the net.  Rather it is a
library based approach, which can be used with any reasonably modern
C++ compiler.  It is to be used in concert with a message passing
library such as MPI or NX.  With this reliance upon standard, vendor
neutral software technologies, C4 is immediately useful on a wide
variety of parallel computers and workstation clusters.  The README
from the package follows, and describes availability, etc:

		Canonical Classes for Concurrency Control

The Canonical Classes for Concurrency Control (C4), is a library of
C++ classes which assist in parallel programming.  C4 provides objects
which implement a variety of synchornization and data transmission
paradigms.  Some of these exploit aspects of the C++ language to
provide specific high level control semantics.  Others export an
abstracted interface of some high level construct, allowing the user
to specialize for use with his own classes.

The primary emphasis in C4 is on elevating the abstraction level of
parallel programming through the use of object oriented programming
methods.  C4 is not an "API wrapper" per se; although it does
contain some global functions which ease the use of message passing
API's, this is not the primary focus.

Some examples of specific classes provided by C4 are:

	Spinlocks	(various forms)
	NodeInfo	(multicomputer configuration info)
	Bswap<T>	(typesafe buffer swap)
	DeepObj
	DeepBSwap	(transmit objects with complex internals)
	Baton<T>	(value passing spinlock)

<T> indicates the use of C++ templates.

The programming model for C4 is message passing, and it currently
supports both Intel's NX and the increasingly popular MPI.  Both of
these environments are available for use on networks of workstations.
Between them, NX and MPI cover almost the entire commercial market for
massively parallel supercomputers.

AVAILABILITY

C4 is developed at the University of Texas at Austin and is
distributed under the terms of the Library Gnu Public License.  All
files in the distribution are covered by the LGPL.  No further
per-file attribution is made at this time.

C4 is available via anonymous ftp from:

	dino.ph.utexas.edu:/furnish/c4-DATE.tar.gz

There is a World Wide Web page at:

	http://dino.ph.utexas.edu/~furnish/c4

And there is a majordomo mailing list:

	c4@dino.ph.utexas.edu

If you don't know how to use majordomo, you can for example, send mail
to c4-request@dino.ph.utexas.edu with "subscribe" in the body.  The
list is archived, and you can obtain some files using majordomo
"index" and "get" commands.  Membership on the list is not required
for these operations.

C4 uses the C++ Data Structures Library, available at the same host:

	dino.ph.utexas.edu:/furnish/ds++-DATE.tar.gz

You will need to get DS++ and install it before you will be able to
use C4.

AUTHORS

C4 was written by:

	Geoffrey Furnish	furnish@dino.ph.utexas.edu
	Maurice LeBrun		mjl@dino.ph.utexas.edu
-- 
--
Geoffrey Furnish
UT Institute for Fusion Studies,  furnish@dino.ph.utexas.edu   512-471-6147
MCC Experimental Systems Lab,     furnish@mcc.com              512-338-3717

	"Pushing back the boundary of inanity."

