From: nasser@apldbio.com (Nasser Abbasi)
To: Allen Theobald <allent@novaengr.com>
Subject: Re: Ada95 parallel and distributed processing
Date: 1996/06/26
Date: 1996-06-26T00:00:00+00:00 [thread overview]
Message-ID: <nhpw6nazxl.fsf@paralysys> (raw)
In-Reply-To: 4qp7ri$puc@ns.oar.net
In article <4qp7ri$puc@ns.oar.net> Allen Theobald <allent@novaengr.com> writes:
"With Ada95, we have finally a language which easily copes
with any existing object-oriented language, hands down.
It has parallel processing, distributed processing,
real-time support and so on in the language standard of 1995.
Ada95 is the adequate software engineering language for
the beginning of the next millenium."
What I want to know (in a nutshell) is how Ada
provides support for "...parallel processing,
distributed processing...". I am very short
on time and need to come up to speed fast with
these aspects of the language.
In a nuttshell, Ada supports parallel processing by providing
tasks in the language, you can map an ada task to do certain
operations, and another task to do some other operations, "at
the same time". (for example you can code each task to compute
some operation one each row in a matrix, assuming the operations are
not-data dependent, etc..) , and if you run on a multi-cpu hardware,
and an OS supports scheduling of tasks (threads) at kernel level
(say like NT or Solaris or Alpha/VMS ...do Solaris support mutli-cpu?),
then you can get true parallel processing by having the tasks
ruuning at the same time. Offcourse this type of "parallel" processing
is very granual, fine-grain parallel proceesing would be something
of different nature. (massivelly parallel computers, parallel langauges,
parallelizng (sp?) compilers etc.. I think are different topic).
This is not much different in this than say using C or C++ or
any other language on top of a thread library usually part of the OS
to write threads-based code, except in Ada, tasks are 'build' into
the language, and this is much better way than having to call outside
libraries to create and interfaces between threads. Tasking in Ada
has been in it since Ada83, it is nothing new, but Ada95 added
improvemnts to the model like shared variables among others.
Distributed processing is supported by the D.P. Annex, The Annex
defines a model of how an Ada program can be distributed.
The Ada95 model of a distibuted program is something like this:
\f
Multi-parition Ada program
/-----------------------^----------------------------\
/ \
+-------------+ +-----------+
| Partition | System.RPC | Partition |
| (active) ===============| (active) |
|+-------+ | |+-------+ |
||Libray | | ||Library| | (on node B)
||Unit | |(node A) ||unit | |
|+-------+ | |+-------+ |
|+-------+ | | |
||Libray | | +----||-----+
||Unit | | ||
|+-------+ | +------||------------+
| .... ============== Partition |
| | | (passive) |
+-------------+ | shared variables |
+--------------------+
2 active paritions can communicate using what is called
patition communication subsystem, which system.RPC is an
interface to, the active paritions can also communicate using
shared variables in passive patition. An Active paitition
is configured to run on a node in a network. An Ada83 program
correspond to one Active partition, but an Ada95 program can
consist of more than one active partition.
2 nice refernce papers on this are :
GARLIC: Generic ada reusable library for interpartition commmunication.
by Kemarrec,Pautet,Tardieu.
GALRIC is an implementation of the D.P. ANnex for GNAT.
ALso, PARIS: Partitioned Ada for remotely Invoked Services.
by Gargaro,Pautet,Kermarrec,Tardieu. this paper also represent
an implementation of D.P. Annex (annex E) using GNAT.
nasser
--
Nasser Abbasi. C/C++/Ada Solaris. GeneAssist - A client/server application
for Nucleic acid and protein sequence search and analysis.
PE-Applied BioSystem division. email: nasser@apldbio.com
MSEE(control), MSCS, MSCE, FM(Fide Chess Master 1.e4 !!)
I'am hooked on programming and can't get out ....
next prev parent reply other threads:[~1996-06-26 0:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-06-25 0:00 Ada95 parallel and distributed processing Allen Theobald
1996-06-26 0:00 ` Nasser Abbasi [this message]
1996-06-26 0:00 ` Pascal Obry
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox