From jwagener@amoco.com Tue Jun  7 05:04:32 1994
Received: from interlock.amoco.com by dkuug.dk with SMTP id AA05354
  (5.65c8/IDA-1.4.4j for <sc22wg5@dkuug.dk>); Tue, 7 Jun 1994 17:02:48 +0200
Received: by interlock.amoco.com id AA04690
  (InterLock SMTP Gateway 1.1 for sc22wg5@dkuug.dk);
  Tue, 7 Jun 1994 10:02:35 -0500
Received: by interlock.amoco.com (Internal Mail Agent-3);
  Tue, 7 Jun 1994 10:02:35 -0500
Received: by interlock.amoco.com (Internal Mail Agent-2);
  Tue, 7 Jun 1994 10:02:35 -0500
Received: by interlock.amoco.com (Internal Mail Agent-1);
  Tue, 7 Jun 1994 10:02:35 -0500
From: jwagener@amoco.com
X-Openmail-Hops: 1
Date: Tue, 7 Jun 94 10:04:32 -0500
Message-Id: <H00002d7024acd3d@MHS>
Subject: meetings, etc.
To: sc22wg5@dkuug.dk
X-Charset: ASCII
X-Char-Esc: 29

Item Subject: Message text
This is to briefly report on two meetings that have recently occurred, 
a two-day CSEP meeting and a three-day HPFF meeting.  

You may recall that I reported on the CSEP activity at the Palmdale X3J3 meeting
- that's the public-domain graduate-level educational project on Computational
Science.  I am working on the "languages chapter", which is currently over 50
pages long.  They want to have C, C++, and F77 covered, as well as F90, but you
can guess which one has the greatest emphasis, at least at the moment.  Most of
the F90 examples have F77 and C counterparts, and I need to get cracking on the
C++ versions one of these days.

In any event, there are a growing number of Computational Science departments,
as opposed to Computer Science departments, and the former are not as
anti-Fortran as the latter tend to be.  As far as I can tell, F90 is being well
received in the computational science community; Fortran programming is still
bread-and-butter stuff in these circles.  At this meeting I learned, for the
first time, about a complementary project, called UECS, I think, which (I think)
stands for Undergraduate Education in Computational Science.  It turns out that
UECS also wants some material on F90, so I may go to their next meeting to see
what might
be involved.

Lately there has been lots of talk, both nationally and internationally about
promoting Fortran; it might well be that one of the highest-leverage activities
in this regard could be encouraging use of Fortran 90 in Computational Science
programs in the universities, at both the undergraduate and graduate levels. 
Let me know if you are interested in working on the CSEP or UECS material in
some way and I can get you in touch with the project directors; also, I would
gladly accept any assistance on the material that I'm working on.  As
public-domain stuff the pay is low (namely zero), but that's made up for by the
long hours (:-).  By the way, the CSEP material is available on the www: 
http://csep1.phy.ornl.gov/csep.html  (and click on the hand); check out chapter
6.

Speaking of the www, I have visions of having the Fortran standard be the first
standard available on the www (and through Mosaic), or at least our latest
"committee working document" (ANSI/ISO still copyright the "official version" -
grumble, grumble).  To do that we need to get the document into HTML format
(HyperText Markup Language).  I've located and sent Richard a frame2html
converter, but I'm sure he's been too busy with other things to play with that
yet (and besides, neither WG5 nor X3J3 has yet discussed whether putting the
draft on the www is the thing we want to do).  We may already be too late in
being the first standard on the www - I don't know of any others, but now that
HTML and Mosaic exist the material on the www is growing at a staggering rate.

And speaking of promoting Fortran, we've (I've) dropped the ball on another
opportunity, though there appears to be time to recover.  Remember the editorial
slur on Fortran in Computers & Standards a year or so ago?  They've published an
apology in a subsequent editorial, and they've offered to devote a special issue
to Fortran.  Even though we haven't done anything about that for over a year,
the offer of a special issue still stands, so we need to come up with about half
a dozen articles.  Anyone have any ideas for articles and/or being willing to
work on same?

---------------------

The HPFF meeting dealt with HPF/cci, tasking-type parallelism, parallel I/O, and
irregular grids, with most of the attention going to tasking-type parallelism. 
With regard to parallel I/O, the general feeling seems to be that Fortran 90 I/O
is sufficient (there are existance proofs that F90 I/O can be implemented using
high performance parallelism).  One problem with F90 I/O, however, is that it
can't handle large direct files - default integers (normally 32 bits) aren't big
enough.  Actually, REC= allows any kind of integer, so if the implementation has
a long integer kind then reading and writing large direct files can be
accommodated.  The problem comes in the INQUIRE statement, where NEXTREC is
specified to be of kind default integer, so this needs to be fixed; RECL perhaps
also should accommodate large integers.

The only other significant I/O discussion dealt with asynchronous I/O, for which
there is strong support in HPFF.  Though nothing was decided at this meeting,
the two approaches mentioned were (1) an ASYNCH= option of some sort in the
read/write control list (and some sort of corresponding synchronization
mechanism) and (2) using directives to delimit critical sections pertaining to
I/O statements.

It's beginning to look like the major requirement for HPF 2 will be some sort of
task-level parallelism; there were at least six options discussed:

    1. shared memory syncronization (the usual locks and critical sections)
    2. virtual files (using some I/O extensions)
    3. message passing (e.g., MPI)
    4. shared data abstractions (see below)
    5. HPF+ (including extensions to INDEPENDENT do loops)
    6. expression parallelism (e.g., the multilisp "future" annotation)

As for number 4, Shared Data Abstractions (SDAs) have been constructed expressly
for HPF for the purpose of providing high-level inter-task synchronization. 
They are encapsulated types, packaging both data and operations in the spirit of
object-oriented classes, and syntactically modelled after F90 modules (and
perhaps could be placed in modules).  Among the operations are various "wait"
functions, as appropriate to that particular SDA.  Though I have not really
spent much time thinking about this proposal, and don't yet have a personal
opinion about it, it's an interesting concept and I will put the paper in the
next X3J3 distribution.  As for number 6, expression parallelism, Rex Page and I
will be working something up on that.  Unfortunately that approach, though
incredibly simple by comparison, does not appear to cover as many cases some of
the more complicated options and therefore may not be considered adequate.

One participant proposed a list of extensions, which turned out to be extensions
to F90, not to HPF.  They are:

    1. ability to subscript an arbitrary array expression
    2. generalize the TRANSPOSE function to higher dimensions
    3. add two new array intrinsics, REVERSE and CONCAT

I'll also put this paper in the next X3J3 distribution; in addition I pointed
the author to the 004 and 009 in the X3J3 repository and summarized our process
and timeframe.

Finally, the topic of ELEMENTAL functions came up briefly.  In answer to a
question I summarized the nature of the F8x elemental functions before they were
removed from F90 (in effect, PURE functions with scalar dummy arguments that can
be called with conformable array actual arguments).  HPFF appears to be still
very much interested in elemental functions, but is leaving that to X3J3.


Enough for now,

Jerry

