Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!unmvax!ariel.unm.edu!ghostwheel.unm.edu!john From: john@ghostwheel.unm.edu (John Prentice) Newsgroups: comp.lang.fortran Subject: Re: Missing the whole point (the Fortran vs. C debate) Message-ID: <1990Dec5.182145.2639@ariel.unm.edu> Date: 5 Dec 90 18:21:45 GMT References: <28548@usc> <185951.1857@timbuk.cray.com> Sender: John K. Prentice Organization: Amparo Corporation, Albuquerque, NM Lines: 79 In article tmb@bambleweenie57.ai.mit.edu (Thomas M. Breuel) writes: >But it would be nice if people now stated explictly in their code >when they want vectorization and when they don't want it. When I first read this, I didn't like this idea because it is extra work for the programmer. However, thinking about it, it is perhaps not such a bad idea. I would be perhaps more interested in it for parallelism than vectorization however. > >It would be even easier if there were a couple of standard constructs >in FORTRAN or C that state explicitly to the compiler that a loop may >be parallelized or vectorized. Of couse, Cray Fortran has had constructs (the CDIR directives) for telling the compiler to vectorize a loop since the beginning. However, in general I agree. With regard to expressing parallelism, the people at Myrias had the easiest expression in Fortran that I have encountered yet. If you wanted a parallel do-loop, you said pardo instead of do. That was it. They also had ways to break non do-loops up into parallel processes with similiar constructs. There is an article about this in the November 1990 issue of Supercomputing Review (pages 49 - 51). I have done a fair amount of work on the Myrias in the past, though the company just folded a few weeks ago. The initial system Myrias fielded was very interesting as a research machine for parallelism, but was terribly slow. I suspect that was their undoing. It is a pity because they were way ahead in terms of making it easy to express parallelism in higher languages (at least that is my impression, speaking as a computational physicist and not a computer scientist. If there are other opinions on that, I would be really interested to learn. This is a really, really important issue both in what Amparo Corporation is doing in computational fluid/solid dynamics and in research I am doing at the University of New Mexico in quantum mechanics). Any way, to get back to parallelism, the other way I have seen paralleism expressed in Fortran is on the Connection Machine where they use the Fortran Extended array construct to signify that an operation is parallel. I actually don't like that way of doing it, though on a SIMD machine like the CM2 it may be reasonable. I have more experience on MIMD machines. However, the main problem I have with the use of the array construct is just that I can't parallelism loops, only arithmetic expressions (again, remember this is a SIMD machine, so that is perhaps reasonable). More importantly however, it means I have to code differently on this system then on any other system. So I end up with a special version of my code just for the CM2. With a large production code, that is a real pain and dangerous since every correction has to be put into every version and tht usually leads to problems. I don't know how Cray does parallel constructs. But I hardly know anyone who tries to do serious parallel programming on the Cray. Unless you are among the chosen few who can get dedicated Cray time, it is not cost effective. We tried it on the Cray 2 and on the YMP a couple years ago. We were rarely able to get all the processors at one time. Also, you don't have very many processors. This comment will no doubt offend some people, but to be honest, my impression of Cray with regard to parallelism is that they are really nothing but diletantes in the field. I don't mean that to be antagonistic by the way, it is just that I haven't seen Cray as much of a force in the community. Perhaps someone can comment on that. I do understand they are beginning to take the idea of massive paralleism more seriously however (according to last Sunday's New York Times). If C provides more natural ways to express parallelism, then that would be a major claim in its favor! I would be very interested to hear more about this. A comment and question. Being new to Usenet, I am not completely familiar with the various taboos and conventions. Specifically, alot of the issues I am raising and that have been raised in recent weeks in this newsgroup are not specifically Fortran issues (though they usually start that way). There is a group for parallelism, but so far it has struck me as mostly being concerned with mechanics, not the issues of how to do numerical work with parallelism. Is there a newsgroup devoted just to scientific computing (languages, methods, etc...) ? If not, is there interest in one? Finally, I strikes me (if there is not a scientific computation newsgroup) that the Fortran newsgroup is not such a bad place for these discussions simply because it is read by scientific programmers (which I am willing to bet most of the other language groups are not). Comments? John Prentice john@unmfys.unm.edu Brought to you by Super Global Mega Corp .com