comp.lang.ada
 help / color / mirror / Atom feed
From: seas.gwu.edu!mfeldman@uunet.uu.net  (Michael Feldman)
Subject: Re: Query about monitor (passive) task optimization
Date: 2 Aug 93 03:30:19 GMT	[thread overview]
Message-ID: <1993Aug2.033019.6478@seas.gwu.edu> (raw)

In article <CB403J.74M@ddciiny.UUCP> jls@ddciiny.UUCP (Jonathan Schilling) writ
es:
>In article <23corr$a8g@schonberg.cs.nyu.edu> dewar@cs.nyu.edu (Robert Dewar) w
rites:
>>Mike assumes that automatic recognition of passive tasks is a good thing.
>>He is apparently unaware that this is by no means obvious, and indeed most
>>of the Ada folks in realtime areas that I have talked to do not AT ALL like
>>the idea of such automatic recognition, and much prefer explicit control
>>over thread structure.
>
>I've heard of these objections before, but I don't fully understand them. 
>Assuming the optimization is transparent to the programmer, and does not 
>in any way change the semantics of the program, what "control" is being
>lost?  From within the program, using only standard Ada, one wouldn't
>even be able to detect whether the optimization had happened or not 
>(this might be doable with CIFO-type interfaces, depending on the
>runtime system implementation).  The only difference is that the program
>runs faster.
>
Exactly. That's why I applauded DDC-I for doing it.

The reason for the objection is that people do not trust their compilers,
especially in the realtime business. As I said in my big long post yesterday,
this gives me a sense of deja vu. Back in the 70's the efficiency fanatics
hated procedure calls, especially with parameters. Some realtime guys still 
do, and - for their projects - they may have no choice. What has rankled
is that the Ada compiler folks have not gotten out in front and led their
customers instead of following them. If they had, maybe there would be
more customers outside the defense business.

Ada is a parallelism language, too, not just a realtime one. Where are the
code generators for the parallel machines? The Ada houses are, for the
most part, opting out of that market, preferring - as usual - the
comfortable realtime crowd in the defense industry.

Ada is, in its way, a very innovative language, especially in the tasking
area. No other major language has anything comparable. One of my biggest
disappointments, as a teacher and fan of concurrency, is that the Ada
houses have systematically neglected really exploiting these and other
innovative language constructs in Ada, preferring the tried and true.

Another example: are there any vendors out there who've tried to go after
a piece of the Fortran-oriented market by mapping its multidimensional
constrained arrays in column-major form? The LRM allows any old storage
mapping. Teachers like me explain this seeming gaffe by pointing out that
a compiler oriented at the Fortran crowd _could_ use column-major
storage to interface with old Fortran codes, while one for some
nonlinear architecture _could_ map the arrays nonlinearly (in a
tree structure as used, I think, on the old Univac architecture),
and a "classical" code generator could use the old row-major mapping.
Or indeed, with implementation-dependent pragmas, they could do all 3.

To my knowledge, everyone is sticking to the tried-and-true row major.
Yes, I know Ada9X is providing a pragma to cover this sort of
storage mapping. Did anybody do it without waiting for 9X? Not
to my knowledge. I'd _love_ to be wrong here...

If these things are so obvious to mere academics, what is keeping the
vendors from aggressively going after these markets with some real
innovation and leadership in Ada compilers? In my view, nothing but
the "beltway bandit" mentality is holding them back.

Verdix could do this instead of keeping their compiler folks busy by
giving them a C++ system to write...

Sure it costs money to get out in front. I have no business degree, but
somebody told me long ago that a good business person knows you have to
spend money to make money...

Mike Feldman

             reply	other threads:[~1993-08-02  3:30 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-08-02  3:30 Michael Feldman [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-08-13  7:32 Query about monitor (passive) task optimization agate!howland.reston.ans.net!darwin.sura.net!sgiblab!munnari.oz.au!goanna
1993-08-11  2:34 agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!math.ohio-state.edu!u
1993-08-10 23:49 Michael Feldman
1993-08-10 23:14 Michael Feldman
1993-08-10 13:51 Robert Dewar
1993-08-10 13:44 Robert Dewar
1993-08-10  1:47 cis.ohio-state.edu!math.ohio-state.edu!darwin.sura.net!seas.gwu.edu!mfeld
1993-08-10  1:38 cis.ohio-state.edu!math.ohio-state.edu!darwin.sura.net!seas.gwu.edu!mfeld
1993-08-09 21:15 Robert I. Eachus
1993-08-09 14:48 Jonathan Schilling
1993-08-09 12:14 Robert Dewar
1993-08-09 11:02 Richard Kenner
1993-08-09  4:57 Robert Dewar
1993-08-09  4:47 Robert Dewar
1993-08-09  4:41 Robert Dewar
1993-08-03 20:10 Michael Feldman
1993-08-03 20:01 Michael Feldman
1993-08-03 15:26 Jonathan Schilling
1993-08-03 10:11 Bjorn Kallberg
1993-08-02 18:17 Michael Feldman
1993-08-02 18:13 Michael Feldman
1993-08-02 17:47 Michael Feldman
1993-08-02 14:35 Jonathan Schilling
1993-08-02 13:19  Arthur Evans
1993-08-02  6:41 Bjorn Kallberg
1993-08-02  1:57 Jonathan Schilling
1993-08-01  3:25 Michael Feldman
1993-07-31  3:27 Robert Dewar
1993-07-30 17:51 Michael Feldman
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox