Compaq Fortran for Linux Alpha Released
Compaq Fortran for Linux Alpha systems is a full-language Fortran 95 implementation. Fortran programs using the latest features as well as traditional Fortran 77 programs will be able to take advantage of the highly optimized Alpha code generation technology to take advantage of the Alpha processor's leadership performance. The compiler also supports most of the popular language extensions available on other Compaq platforms (OpenMP and HPF features are not currently supported.)
Accompanying the compiler and optimized run-time libraries is Ladebug, a robust and easy to use debugger that will simplify the debugging of all of your Fortran applications.
Also provided is the Compaq Extended Math Library (CXML), a library of technical and scientific subroutines.
Compaq Fortran for Linux Alpha Systems is available as a free download under a Technology Enthusiast license for non-commerical use. A Commercial Use license and media kit is available for US$399 - attractive multiple-license pricing is also available.
For more information, please visit the Compaq Fortran web site.
A friend of mine is, as far as I can tell, the first person to have ever written a CGI program (Common Gateway Interface, not Computer Graphics Images) in pure FORTRAN. He's an astronomer (who reads Slashdot and may follow up with details), and used it for some very cool plots of the sky....
;-)
Though a lot of people here may not "get" why FORTRAN is still important, you can get a idea by looking at "modern" toolkits such as the Perl Data Language (PDL module) which has a stunningly huge mathematical library that is ALL written in FORTRAN. FORTRAN was (is?) THE language for scientific analysis, so there's a ton of powerful math libraries that you can buy or get free for it. When you need to do something hideously complex, you don't want to have to start from scratch, writing all of the libraries to, say, do high-level matrix manipulation.
See, Java HASN'T taken over the world
I have used C++ now for about 5 years. I also have 5 years of FORTRAN experience (distant past).
There are million line FORTRAN programs. And it has advantages for numerical calculation. When converting numerical calculation programs from BASIC or FORTRAN to C/C++, I frequently get bitten by automatic promotion of types in expressions and precision being lopping off in the process. The only way to fix some of this stuff is to add explicit type casting in strategic parts of the expression.
If you were a scientist, why would you bother with this noise. FORTRAN (stands for Formula TRANslation) is the best tool for the job.
Also, the Compaq compiler is likely to descend from the old VAX/VMS FORTRAN compiler. This compiler had many man-years of optimization put into it and was difficult to match in performance.
The reason we do not all use FORTRAN today is that unlike the old days, most computing is not floating point number crunching. Maybe that is why Digital Equipment Corp (formerly #2 in computers) no longer exists.
"We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
When one says that Fortran is faster than C/C++ one means that if you have two versions of the same program, one written in Fortran and the other in C/C++ then the fastest executable will be likely the compiled Fortran version.
:-)
The reason for this is usually due to the control over aliasing that Fortran has. This allows better compiler optimizations that result in faster executable. Moreover Fortran 95 has lots of constructs that give hints to the compiler on possible optimization: the array sintax (so the compiler knows that order doesn't matter), the intent of paramters (in, out, inout), pure functions (functions with no side effects), allocatable arrays (that guaratee no aliasing) are some exemples.
Oh, and yes, it is very nice to borrow some APL features
Paulo.
PS: I am not really a Fortran fan, I am fan of using the best language to solve a given problem. In the case of numerical problems, Fortran seems the best. I would gladly program in C/C++ if I could prove to my advisor that I can get a faster executable by doing so.
Steve Lionel
Our Intel Windows compiler (Compaq Visual Fortran) is very popular, and we do get frequent requests for an Intel Linux version. There are no current plans to do that, but then again, a year ago there were no plans to do Linux at all. So, "never say never"...
If you feel that we should do an Intel compiler, and would be willing to pay for it, let us know. (Feel free to send me mail with your comments.)
Steve Lionel
Why would using Lisp for number crunching be stupid? Are you aware of the high-grade native compilers? Of the multiple types (arrays, vectors, etc) beyond lists that can be easily optimized? Or the fact that floating point precision can be arbitrarily specified and runtime checks turned off? Of the ease with which you can change the safety and speed settings of the compiler on the fly? I would think that Common Lisp would be much better than Fortran95 for pretty much everything.
There's some stuff about Lisp FP speed vs. C at http://www.cons.org/cracauer/lisp.html There's been some benchmarking vs. g77 done, but I don't know where it is. For more info, check dejanews's archive of comp.lang.lisp
~~~~~~~~~
auntfloyd
Steve Lionel
The "Technology Enthusiast" license is free for non-commercial and personal and classroom educational use. It allows you to develop software for and distribute to others, as long as you aren't "paid" for it.
If you want to use the compiler for paid work, or for use by a "business" (even an educational institution), then buy the commerical license (which is by far the least expensive Fortran license we offer!) We did a survey of beta users asking how much they would expect to pay for a commercial license - I was astonished to see many listing figures well over $1000! Initially we had been thinking $499, but we knocked that down to $399.
I agree that the wording of the license terms at present is a bit confusing. I have some new wording which will be put up on the site soon.
Steve Lionel
I am primarily a C/C++ programmer with all of the biases that come therewith. I also use Perl quite a bit because it is useful, even if the syntax is abomitable. If I had my way we would all be using LISP. I started out using VAX Fortran and Fortran 77 in scientific applications. As I gained increasing familiarity with it I began to seek alternatives.
Your associate professor is one of many people who don't realize that Fortran has evolved a bit since Fortran 77.
Have you ever heard of double precision floating point numbers and long integers in C? I can't help it if your are not careful handling numeric types. C often makes bad decisions for you if you let it.
Trusty hammer, indeed. I spent a few months maintaining some Fortran code and started calling it blunt-object oriented technology. In fairness, that describes the previous coders' styles as much as the language features.
Dumba$$ moderator... the Multia is a stripped down AlphaStation 200, so this is a *VERY* on-topic post.
To answer your question, yes - both Linux and the new compiler will work on a multia.
--
http://gammatron.weblogger.com
Three years ago, I finally gave it up and switched to C++. Almost all my code is rewritten since. You can always start writing a C++ wrapper class around existing and running FORTRAN code, to utilize it in new projects.
I noticed, that my developing cycles are much shorter now, since less debugging is necessary. In the mean time we have a farm of Linux PC's and they are feed in C++ through a simple PVM++ wrapper class in a much cleaner way as I used to do it in FORTRAN. Less code is necessary in switching to an OO paradigm.
I do not look back on the times, I was programming FORTRAN. FORTRAN is not clean and nice. It is dirty, has lots of memory problems, since FORTRAN does only know pointers in calling sequences and therefore the subroutine has no change to check consistency of the arguments.
Of course, you can formulate any problem in any programming language. It is just a question of efficency.
Let me finish with a comment on the Alpha boxes: Some time ago, I looked into buying an "killer box" based on the alpha for heavy number crunching. However, I only got a factor of two speed increase out of an alpha testbox. Since my appliation using heavly threads and PVM it turns out to be cheaper per MFLOP moneywise to buy a SMP x86 box than an ALPHA or even MAC G4 based system. The last buy for our institute were two PII 400 dual 128MB RAM boxes for total $2500 in 8/1999.
Your milege might vary, especially if you spent $10000 or $100000 on your boxes. But I bet, your MFLOP/buck rate is even lower.
Surprisingly, no - I would be more likely to be accused of jumping on the "!GPL==BAD" Bandwaggon, recently aggravated by the Sun Community Licence and their recent aboutface, taking someone else's work, rebranding it as their own (or not acknowledging the originators, which amounts to the same thing) and suddenly starting charging for the right to call your compiler "Java".
If you are, you'll get branded offtopic or overrated. :+)
Hmm. I am seldom offtopic, but fairly often overrated
But you're right: it's not free, and this is a problem. :+) and the fact that fortran, despite it's huge legacy codebase, and that it is ideally suited for certain tasks, is very much a fringe language in the *nix environment.
Not so much a problem as initially misleading - It *is* a step up from nothing, and a useful time-unlimited "trial" package if you wish to evaluate this package, but given it's very narrow field (Linux on Dec Alpha! how many people HAVE a spare dec Alpha, never mind one runnning Linux? Possibly a discarded NT box now that MS have dropped NT4Alpha like a hot stone
--
-=DaveHowe=-
It's not just a "compiler optimized for Alpha". The back end to the compilers (C, C++, Fortran)is a technology called GEM. The Compaq Visual Fortran (CVF) compiler for Intel compilers is GEM based also. GEM has an intermediate language that can then be output into Alpha or Intel binaries. (this is a 50,000ft level description)
There's a group of engineers that work up in Nashua, NH that live and breath compilers and compiler technology. You are getting the fruits of their labour for nothing.
What's my Karma Mr. Burns? "Excellent"
My employer would never have won the $15 million FSL bid
(see this press release) without a good Fortran 95 compiler.
Most people who don't use fortran don't think that anyone uses Fortran. They are mistaken.
Ohh jeez.. go stick yourself in the eye. If linux had been built using Borland C as the compiler.. do ya think it'd be where it is today.
NO.. it wouldn't exist.
Soo.. it's not just a "convenience" to have a free compiler. In some cases it is necessary. Other's it doesn't matter.
But let me add that as a personal/application compiler - go for it. I happen to use ccc myself. It's freaking fast and wonderfully STRICT! I'm not a f77 guy.. but thhis compiler is freaking fast.
One noteable feature in ccc is that they are trying to make the cmdline switches to ccc compatable with gcc. Ofcourse.. ladebug still sucks rocks. Nowhere near gdb standards.
Pan
I said no... but I missed and it came out yes.
This is almost exactly what we do in my shop. I work on a system for realtime telemetry processing. We have an enormous amount of legacy Fortran code. As things have evolved over the years, the core Fortran routines have remained relatively stable. New code tends to be written in C as a wrapper around the Fortran. I have, for example, developed Motif interfaces to replace our old command line and SMG (the proprietary DEC equivalent of curses) interfaces. All the old Fortran was accessed through callbacks from Motif written in C.
And the brethren went away edified.
the real problem is that c *can't* make some good decisions, with or without your help (the aliasing problem).
:)
C will never be as quick on some numerical problems, because the language hobbles the compiler in certain respects.
C++ might (see blitz++, etc.) but only by taking those decisions away from the complier and making them explicit (via templates, or whatever).
There are lot's of reasons one might want to ditch FORTRAN (from a comp sci. point of view) but there aren't any really good contenders there yet. That doesn't even bring up the F95 sucks/sucks not debate
You seem to be extrapolating from a problem domain you understand to one that you don't...always a mistake.
S.
Unfortunately, we only got 2 of them right...but we are stuck with all four ;)
S.
Free-but-not-free license is disappointing, but what else can you expect from a company like Compaq.
IIRC, this has actually been available for quite a while in beta form. This is, however, good news - the Digital (I can't bear to call it Compaq) Alpha compiler for Fortran produces code that is anywhere up to 2-3 times as fast as g77 (currently, that is. I'm sure g77 will get better). Anybody doing scientific work on an Alpha under Linux (and, let's face it, most people that have Alphas use them specifically because they're good at scientific work) can benefit from this.
(FWIW, I've used the Digital C compiler for Linux, and it produces excellent code - better, in most cases, than gcc.)
Last I heard, the primary g77 developer gave up
on it, and its status is in limbo. In any case,
g77 isn't very close to fortran-90 compatibility.
OTOH, I find it hard to imagine that too many ppl
on Linux/Alpha have a big use for fortran anyhow..
For every problem, there is at least one solution that is simple, neat, and wrong.
Freshman year, my advising seminar involved developing a method for modeling sail boats. We were given a spec file and implemented some algorithms to scale the boat, apply wind, etc. We wrote some code, and used some code that the professor developed years earlier. The language in use? Fortran-77. Developing that on our Sun Workstations was a travesty.
Fortran is STILL heavily used in academic circles because the code already exists. My friend, when interviewing for an on campus job doing mathematical modeling, was asked if he knew Fortran. He convinced the guy to let him do it in C++, but some professors would insist on Fortran.
From my experience, for doing scientific analysis, Fortran is fine. Fortran, C, PASCAL, BASIC, it really doesn't matter, the structured languages are all almost identical with slightly different syntax.
While object oriented techniques make sense for real software development, if you merely want to run a particular algorithm on a lot of data points, any structured language will do.
Older researchers learned Fortran and probably never moved to the newer languages. Fortran is really clean, and if your existing code is in Fortran, why migrate to a newer language. While I haven't read the newer Fortran specs, I believe they implement much of the functionality of other structured languages (although I'm assuming no real memory control).
Fortran makes it VERY easy to develop robust applications for number crunching without any risk of memory leaks, etc. Additionally, groups may already have thousands of lines of code already written and just need to write a bunch of 15-20 line applications utilizing them to do different forms of analysis.
Fortran on the Alpha under Linux may be the "killer app" to move Linux into acadamia. I don't mean in the school's IT departments, but into research departments. For departments that need to process a LOT of data points, allowing students to develop code at home or on public workstations and then run the massive calculations on their Alpha machines may be a real cost and time saver.
If Compaq gets the rest of their compilers in line, then Linux/Alpha may become huge.
Your statement that:
I find it hard to imagine that too many ppl on Linux/Alpha have a big use for fortran anyhow..
is kinda silly. Outside of home users, people don't buy a system and then find a use. People have a need and pick the best platform.
If you have a lot of existing Fortran code and want to utilize it for new processes and do massive calculations, you pick the best platform available. If current computing capabilities fit your need, you use them. If you need a newer machine to process all the data, you buy a new machine. If the Alpha platform under Linux is the best platform and you have a lot of Fortran to process, I can bet that you'll be buying a new Alpha machine running Linux.
Alex
Fortran still has its strengths and with the new extensions (OpenMP, OO traits) can still be used. However, for teaching purposes, I would hazard that people would prefer coding in higher level languages such as MatLab. Sure Fortran may be that trusty comfortable hammer but when you've got an automated nailgun handy, it makes sense to shoot yourself in the foot faster :-). CPU cycles are getting cheaper whereas human development time is not. Debugging old style Fortran is still a pain even though it doesn't have the pointer aliasing problems of C. Also people at TriLabs have found that with the right approach, numerical libraries written in C++ can be just as good as Fortran. If you look at areas where some heavy number crunching is used, for example real-world physics in game engines, I suspect that C++ would predominate. Hence Fortran will still cruise on like the mainstay Cobol but the use of other languages (like Java and Python) will start to draw attention, especially to utilise commercial development environments.
:-).
The big bugbear is that Matlab compilers still don't optimise themselves very well for modern architectures with cache and/or hierarchical memory. If you're interested in the nitty gritty details of cache-line control and low-level latency then hand-tuned Fortran still has a place. As the Alpha processor has the highest raw floating point performane, it is a favorite of many academic and scientific grunt workstations. And if worst comes to worst, you can use the heat it generates as a coffee warmer
LL
This is nonsense. FORTRAN ist still in use, because it is the fastest compiled HLL (often much faster than C) and it is much easier to write fast numerical cores in FORTRAN than in C/C++.
I spend days debugging code, since prototyping does not exist and subroutine calling sequence did not match after some changes.
I think its more like you spend days with debugging because you didn't get your code right in the first place. Don't blame FORTRAN for your sloppy programming.
I do not look back on the times, I was programming FORTRAN. FORTRAN is not clean and nice. It is dirty, has lots of memory problems, since FORTRAN does only know pointers in calling sequences and therefore the subroutine has no change to check consistency of the arguments.
Let me suggest the following practice: Write your numerical cores in FORTRAN, and use C/C++ or whatever for data structure handling and everything else. It really pays off, especially if you consider the pricy high end hardware and the fact that it is relatively easy to write FORTRAN code wich is 20% faster than its 1:1 C counterpart (20% is a difference in number crunching).
At least that what the notice quoted at Linux Today says.
--
It's October 6th. Where's W2K? Over the horizon again, eh?
Sheesh, evil *and* a jerk. -- Jade
An OS doesn't need these features, it needs direct memory access and code that is easier to follow than FORTRAN. Writing an SMP, threaded OS in FORTRAN would be about as easy as writing it in BASIC. Parallelization of FORTRAN != Good SMP OS Language.
Here are two references:
The old time languages FORTAN, LISP, COBOL and BASIC are still in widespread use.
The largest computer company in the world began
by selling BASIC for the Altair. Its best selling language and InterNet strategy is a descendent of BASIC.
> I wonder if Compaq is afraid to release it for
/what/? What are you talking about?
> Intel.
Huh? This is a port of the UNIX/VMS compiler. No "Intel" version exists.
> I use it on the Intel platform and found it to
> be a solid product.
Use
--
http://gammatron.weblogger.com
For those of you that don't know a Multia is just one of the many Digital produced Alphas.
It does run Compaq's C compiler, so I suppose it runs the Fortran one too. Certainly they seem to state this.
All the posting kiddies talking about FORTRAN77 as
if its an ancient language, and I think of it as
that new version, that I have'nt got around to
trying yet. I hope to get a chance to use this
new f95. Maybe next year.
P.S. I Original learned FORTRAN IV in 1974, when I
was 14. Had to use a keypunch and submit cards!
And some say change isn't good. Object oriented
FORTRAN -too cool.
Steve, Thanks for the information. I am a big fan of Compaq Visual Fortran on Intel. I wish Compaq alot of success in selling the Alpha hardware vis a vis Linux and Fortran.
I'm still working on a clever footer.
I was merely wondering/speculating if Compaq had created a version of their compiler for the Linux Intel platform and if they were under some sort of weird obligation not to release it. A post further down this list from Steve Lionel from Compaq gives their reasons for releasing an Alpha version and not an Intel. He confirmed there is nothing subliminal going on.
I use the Compaq Visual Fortran (for Windows) a fair amount at work and I found it to be a solid product.
That is all I was trying to say.
I'm still working on a clever footer.
Gcc was conceived from the start as a Free(tm) compiler to run on commodity hardware.
This one wasn't. For each purpose there is a license.
-- Liquor up front, poker in the rear.
> its going to be funny in 10 years when there will be c++ and java news and the new lang and OS supporters will say "So fucking What"
Your subject line won't win you much karma, but yeah, it's amazing how many people seem to think that 'their' language is the only one in general use.
I was offended a few weeks ago when some accountant got laughed at for wanting Cobol for Linux. I never touch the stuff myself, but it's out there and people rely on it.
IMO there's not much excuse for not broadening your horizons, when there are so many compilers and other utilities out there for free. Try an alternative language today.
--
It's October 6th. Where's W2K? Over the horizon again, eh?
Sheesh, evil *and* a jerk. -- Jade
I wonder if Compaq is afraid to release it for Intel. I use it on the Intel platform and found it to be a solid product. I know there was an agreement with MS some years ago (MS sold them Powerstation). I cant help but wonder if Compaq is dancing around MS on this one, or worse, they are contractually obligated to create a Windows only compiler for Intel platforms.
I'm still working on a clever footer.
I'm going long on Compaq this morning. Expect a big pop in the stock from this one.
It's exactly this kind of forward thinking that's going to leave Microsoft in the dust.
Does it use gas and GNU ld, or do Compaq supply the entire toolchain?
Does it work with GDB, or just ladebug?
Is its loader compatible with existing static and shared libraries?
Are the Open Source zealouts at it again?
Fortran itself has quite a limited number of serious users
Ummm...no. A huge number of serious scientific and engineering simulations are coded in Fortran. It is a fairly low-level language that has unmatched capabilities for optimization and parallelization.
For God's sake, take a look at O'Reilly's High Performance Computing"
And don't whine about the license.
1. Compiler optimiztions are very much tied to the architecture, so it's not surprising that the best compiler writers for a high-end RISC platform are indeed employed by same company. In this case, it's "a company like Compaq". The old Digital would have been no different.
2. If a 10% increase in hardware speed costs $10,000, then $400 for a compiler is nothing, even if the executable is only 10% faster than that of g77. And Lo and Behold, it runs on Linux, not the costly, closed-source Tru64 UNIX!
Christ, what a bargain!
-- Liquor up front, poker in the rear.
Unfortunately it seems that most slashdot readers don't know much about the new Fortran standard (Fortran 95) and keep on saying that Fortran is an old language, etc. I will try to point out some things:
1) Fortran 95 is structured.
2) Fortran 95 has abstract data types (called modules). But certainly it is not OO (lacks inheritance). Oh, it has overloading too.
3) Fortran 95 has cool matrixes that are, in a certain sense, close to Matlab matrixes. For exemple the code
A(:,3) = 1 + 2*A(:,4)
changes the second column of the matrix A to 1 plus two times the forth column. Of course this serves as a good hint to the compiler that the implicit loop above can be done in parallel.
4) Fotran 95 was designed with efficiency in mind. A good exemple is the distiction between allocatable arrays and regular pointers, so that you can have dynamic allocation with a better control of aliasing.
6) Fortran 95 is usually faster than C/C++. There is some effort to change this (see Blitz++ library or the MTL, for information http://www.oonumerics.org).
7) The main disadvantage of Fortran 95 for a scientific linux user is the lack of free (as in freedom compilers). g77 only implements FORTRAN 77 (plus some extensions), it is not a Fortran 95 compiler.
Hope that helps.
Paulo.
Why the heck do we need ONE MORE fortran?
Everybody Lies. But it doesn't matter since nobody listens.
Oh God. Here we go again. The mantra of the Fortran programmer is efficiency. Cobol programmers make the same claims. Ofcourse people stopped listening to both groups 10 years ago. The notion that C is inefficient has been so thoroughly refuted in the past 10 years that it is not worth debating. Together Fortran and Cobol programmers the lowest rungs of computing, and rightly so. I still think that this story is a yawn.
http://oonumerics.org/blitz/
is a superb library, and free too.
Actually, real world physics in game engines
is extremely CPU-time sensitive. Assembly is
still necessary for bits and bobs.
Now if you've got lots of legacy code and stuff,
then you're right - stick with Fortran.
(Yo Dud3, use Java hahahahaha).
http://rareformnewmedia.com/
I've approached C from the perspective of being well-versed in FORTRAN, and frankly nothing about C jumps out at me and makes me say, "Gee, this is much better than FORTRAN." I see the differences, but none of them strike me as one being far superior to the other; it is all in what you're trying to do. Anything I need to do with pointers in C I easily do with common blocks in FORTRAN. I actually prefer how FORTRAN handles variables by address instead of value, but that is probably just a matter of taste.
I haven't used g77 because now I use Linux at home and Unix at work and there isn't much code on *nix systems that isn't written in C/C++ or one of the scripting languages. But to say that FORTRAN is outdated or bad because not many public applications are written in it is like saying that Unix/Linux/etc. are bad operating systems because most people use Windows.
I have spent the better part of the '90s programming FORTRAN on a DEC Alpha, and I can say that the compiler is very nice and fast, and the help files are excellent. I just hope Compaq maintains these standards.
I am not particularly enthused by the licence on this one - it matches the licence commonly found on "get $$$ of sofware free with this magazine" copies of commercial software - It explicitly forbids any commercial use, or any non-commercial institutions (such as charities), and the licence is to an individual and can be withdrawn at 30-day's notice for no reason other than they would like you to buy a licence from them.
That said, it *could* be of use to students to test any Fortran code they were developing at home - assuming they had a handy Dec Alpha box at home of course, as this is for ALPHA linux, not Intel.....
--
-=DaveHowe=-