*Disclaimer: I'm from Europe, so what do I know about US stuff?*
My impression is that these new "sport" planes are significantly bigger than ultralights. The article says that they may weight 1360 pounds, while IIRC ultralights are limited to something like 250 pounds. Secondly, ultralights are not going away because of this. This is just a new class between UL and "real" planes.
We have a similar class over here, IIRC max weight is 500 kg (or 550 kg if you have pontoons), and they're quite popular.
Unless you're talking about some classified machines, tens of thousands is out.
Blue Gene/L, supposed to be finished by the end of this year, is going to have ~65000 nodes (i.e. ~128000 cpu:s). The Cray Red Storm, also currently under construction IIRC, has a wee bit over 10000 nodes (1 cpu per node).
BlueGene isn't even a cluster
If you read my post you see that I wrote "distributed memory machines", which the Blue Gene definitively is.
Also, economy isn't everything in HPC. If it is faster to run an MPI job on a shared-memory machine, then there are times that it will make sense to do so, even though running it on a cluster would be cheaper. Remember, it would be cheapest and most efficient of all to run everything on one processor, except that everything would take forever to finish.
Well, I was thinking of economy as in "cheapest machine to solve a specific problem within a specific time". There are many cases where a distributed memory machine is the most economical in this sense, and there are other cases where a shared memory machine is more economical, and even cases where a shared memory machine is practically necessary.
Gang scheduling has absolutely nothing to do with the lack of premption.
On the contrary, gang scheduling relies on the ability to preempt jobs.
Since the scheduling is non-preemptive, in order to run the 100 node job, the entire cluster must first be idle. Suppose you start allocating the 1 node jobs in the 50 free nodes, since they fit. They each take an unpredictable amount of time to run, so when any one finishes, the others are likely to be still going. Even when the 50 node job finishes, you'll have some number of small jobs running (remember, more are entering the ready queue). You *cannot* preempt them, so the 100 node job cannot run. If you keep scheduling jobs that fit, it is likely that it will never run.
What you're describing is essentially a "backfill" scheduler, a very popular scheduler algorithm. Research has showed that it's actually quite good IF the users can be bothered to specify correct time estimates for their jobs. Well, usually the users won't, and efficiency suffers as a result.
Suppose you run jobs in strict order of arrival. Then the most likely outcome will be that a few of the 1 node jobs will take much longer than the others. You'll have most (99?) of the nodes free, but one or two straggler jobs still going. That 100 node job can't run, and although the jobs after it would fit, they can't run either. You have to sit with most of your cluster idle.
Now that is just plain stupid. I don't think anybody seriously uses such a poor scheduler.
If it was possble to suspend jobs, aka preempt them, this wouldn't be a problem, but on current clusters, that isn't possible (there are some research-grade cluster systems that can, but they have other very bad weak points (i.e. proprietary MPI extensions), and aren't in production use).
At least IBM:s Loadleveler scheduler can be configured to use a gang scheduling algorithm (i.e. with preemption). The problem is that it requires the users to recompile their apps with the thread aware compiler (mpxlf95_r), which in some cases (such as mine.:-( ) produces a pretty serious slowdown.
Cray reportedly has had gang scheduling (preemptive, as I said before) for the T3 (i.e. a distributed memory machine) since the mid 90:ies.
This new shared-memory machine will be more powerful, more convienient, and easier to maintain than the cluster-style supercomputers.
As always, it's a tradeoff. Distributed memory machines, like a cluster, are usually vastly cheaper than shared memory systems, and can scale to tens of thousands of nodes. Thus it is economically stupid to run MPI apps on a shared memory computer. That's why most supercomputer centers have both distributed and shared memory machines. There's a place for both architectures.
Hopefully it will allow better scheduling algorithms than on the clusters too--an appaling number of cycles get thrown away because cluster scheduling is non-preemptive.
Uh? Gang schedulers exist and are in use on clusters too.
The fact that a single Linux image has been attached to hundreds of processors is no indication of scalability. A certain program may scale well, or not.
The fact that NCSA is forking over a rather sizeable chunk of cash for this machine indicates that at least for their applications, they get good scalability.
.. and why do we have to so PC as to say "disruptions in the rhythmic functions". Come on, we're all adults, aren't we. It shouldn't come as a surprise to us that animals copulate.;)
I'd say the scam (or rather, loophole) is that SUV:s are classified as trucks. I mean, it's clear that they are passenger vehicles, even though they are based on a truck chassis. So the same laws and regulations that apply to passenger vehicles such as sedans should apply to SUV:s too.
Accuracy to 20 feet of target is pin point with a 2200 LB shell.
That's pure bullshit. You barely get that kind of accuracy even with guided projectiles.
Well, this topic has been expounded in depth on usenet multiple times, so let me quote from one post (FM = US Field Manual):
"""
FM 6-30, Adjustment of Other Fire Control Means.
"8-31. 16-INCH NAVAL GUNFIRE MISSIONS Adjusting fire from the 16-inch guns of a battleship is somewhat different than adjusting that from the 5-inch guns.
a. Characteristics. The 16-inch gun produces a significantly larger dispersion pattern than does the 5-inch. The pattern is about 150 meters (or greater) wide and 500 meters (or greater) long. The pattern depends on the terrain, target range, and number of guns in effect. The observer should expect 2 to 5 minutes between transmitting a correction and shot of the next salvo.
b. Call for Fire. The standard call for fire is used. The armament and number of guns must be considered.
(1) Armament. If the observer does not specify the armament, the main (16-inch) gun will be fired. If the observer wants the 5-inch gun fired, he announces SECONDARY ARMAMENT. (2) Number of Guns. Ship operating procedures may differ in the number of mounts and/or turrets to be used in adjustment and fire for effect. Coordination with the battleship is encouraged on this subject.
c. Corrections. Because of the rather large dispersion pattern and the slow response time for each shot, observers should use bold corrections to hit the target as rapidly as possible. Bracketing is not feasible."
Oh, and the "danger close" is 2,000 metres.
So, when the hostile forces are flooding towards them, the Marines are at risk if they need fire within two kilometres, and they can expect to wait two to five minutes between salvos! Not exactly quick or responsive or useful, is it?
"""
If you check around you will find an Iowa is more survivable than a Nimitz class Carrier.
Perhaps, but it doesn't matter. The reason modern warships aren't heavily armored is that without all their radars, comm aerials and other stuff exposed outside the superstructure, they're sitting ducks. You can't armor aerials. After you have missions killed the battleship with a couple of missiles, which is very easy since the battleship is a very big juicy target with very limited self defense capability, call in the flyboys with bunker-buster bombs or a submarine to finish it off.
They do carry Tomahawk and harpoon missles in their final configuration, you don't have to get into gun range.
At which point you might ask yourself, why bother with the battleship when a destroyer brings those same missiles and a lot of other stuff necessary for modern naval warfare, at a fraction of the cost?
The Armour is hard to penetrate, even for modern weapons.
Yes, but a mission kill is easy. After that, a bunker-buster bomb will certainly penetrate the armor. Not to mention modern torpedoes which explode under the keel; they are capable of sinking any size ship with one shot, including a battleship.
An Iowa can take more hits and still function than anything ever built.
Yes, but the point is that the Iowa will get hit where a modern destroyer won't, because it's a big target and it has very limited self defense capability against modern weapons. After one, or very few, hits, it's mission killed anyway.
If they would build a modern version, it would be nuclear powered, carry more missles, and have Aegis for defense.
Or, they could build something more useful for a fraction of the cost, such as one of the railgun cruisers mentioned in the article.
As a mathematician, I could try and get rid of all uses of degrees in favor of radians, but just because that's the only reasonable unit for doing many calculations doesn't mean that degrees aren't easier to use for the real world.
Most militaries use a system for angular measurements called mils, which is some convenient approximation of the milliradian. The most common ones are the NATO one, where 6400 mils is the full circle, and the one used by the former Warzhaw pact where 6000 mils is the full circle.
It's quite convenient because if you know two of the following: distance, angle and size of some object you can easily calculate the third in your head.
I kind of wish they'd bring back the Iowa's again.
That won't happen, as naval vessels they're totally obsolete. Any destroyer today could turn an Iowa into a flaming wreck before the Iowa could get within range.
Which means that the Iowa would need a bunch of destroyers as escort. Which means that the US Navy would have to take an entire group of ships close to shore if they want to use the Iowa for shore bombardment, risking the ships to mines, saboteurs , truck-launched antiship missiles etc. It's not gonna happen.
As for shore bombardment, yes they fire big shells, but they have a low rate of fire, they're somewhat inaccurate (compared to modern artillery) and the safety range is pretty big, i.e. ground personnel can't be very close to the area where the shells are landing. Give me a modern 155 mm battery firing submunition shells any day. If you need a bigger bang for some point target, call in a plane.
My impression is that the US Marine Corps is a separate branch, just like the other branches of the military such as the Army, Air Force and the Navy.
I think they're supposed to be the guys that run out of landing crafts and storm beaches and stuff. As most of them are going to die on the beach anyway, it's no use pissing away money getting the latest and greatest equipment for them.;-)
Nah, seriously, I guess the fact theat they get worse equipment than the rest of the military has to do with Pentagon politics.
The Altix is to my knowledge among the best large NUMA, i.e. shared memory, machines around.
That is, if you run shared memory applications using threads for parallelization, I don't think you can go wrong with the Altix.
OTOH, if you're going to run MPI applications, i.e. separate processes communicating by message passing, which a lot of HPC applications actually do, you're just pissing away a huge amount of cash by getting a NUMA machine such as the Altix instead of a cluster.
The linpack benchmark used for ranking the top500 isn't that bandwidth and latency sensitive. That's why you see lots of clusters ranking highly, even though they have low performance interconnects, in some cases only Gb ethernet.
Apparently the 25 TFlops figure is the peak performance, while the expected max performance in linpack will be about 15 TFlops. This sound reasonable compared to bigmac (something like 17 Tflops peak, 10 TFlops max IIRC), considering that this one has 1.5 times as many cpu:s.
Oops, forgot to log in... lets post again so you see it without browsing at score 0:
~3.5 times speedup for ~2.3 times the processors, it's not all in the # of processors.
Gee, perhaps that's because the earth simulator has vector processors, which perform quite well on the linpack benchmark, given a good vectorizing fortran compiler. Not to mention that linpack isn't _that_ demanding of bandwidth and latency, otherwise you wouldn't see all those clusters in the top ten. Or top 100 for that matter.
The new version is tentatively scheduled for the end of the year.
I doubt it. Gcc has quite consistently had a one year release cycle for the past few years, with releases occuring in February -> May.
Given that this one is a bigger release, with the tree-ssa changes (and as you say, it might even be called 4.0), I wouldn't be surprised if the schedule slips somewhat.
I think it would be incredible it there is a release this year.
In a sense you're right in that readability is more important than saving as many charachters as possible when typing. Code is typically read a lot more than written, so readability and hence maintainability are certainly very important.
However, verbosity can also hurt readability. If the syntax contains too much clutter, you have to concentrate on understanding what all the clutter does, and thus you can't focus as much on what the code is actually supposed to do.
As an example, take the typical scripting task of reading a text file line by line, and do something with the line. Code in python is like:
for line in file("filename"):
do_something(line)
Compare this with the abomination that is file i/o manipulation in Java.
How about the best language for the task you are trying to accomplish?
Not necessarily. The problem is that, presuming every problem has a language best suited for solving it, I don't have the time to learn a huge number of languages.
Now, I'm not saying that you should take the only language Real Programmers use, FORTRAN IV, and do absolutely everything with it. What I'm saying is that e.g. if you know python fairly well, I don't think it's worth learning perl just because some simple regexp matching program can be a few lines shorter.
For another example, if doing web stuff is 99 % of what you do and you haven chosen php (because every friggin' webhost supports it, there's lots of ready-made code out there, or whatever else makes people chose such an abomination as php), then using php for some simple non-web stuff is probably a better choice than wasting time learning yet another scripting language.
I'm not in CS, but I took a few programming courses in my undergrad days. That was obviously quite basic stuff, for programming 101 we used some (by now old) Java book called "Java Gently". The Datastructures and algorithms course used a book called "Data Structures and Algorithm Analysis in C", by Weiss (good book, BTW, another good is reportedly Sedgewick).
For object-oriented programming, we used the Java book by Eckel, which was a quite good overview of Java features, although it didn't actually IMHO teach programming as such. That course was crappy anyway, I didn't learn anything new there..
Then I went to a computer simulation course, where we used a book by Gould and Tobochnik. That's a good book, but of course it focuses more on physics and how to model it than programming. The examples in the book were in some kind of BASIC dialect, but it was of course fairly easy to translate the concepts to Fortran/C/whatever you fancy/.
Then I have a couple of books (more like pamphlets really) introducing matlab and mathematica. And a lot of other books I can't remember now..:)
I remember that my buddies doing CS read books like SICP (a classic!), OS and networking books by Tanenbaum, the OS book by Stallings, some compiler book (I don't know which, perhaps the dragon book is still going strong?) etc.
But later on in the curriculum, they don't read books as much, more like review articles published in some journals. I guess the same applies for most fields, not only CS. At least in physics it's true.
In the end, of course, having a masters degree is no guarantee against idiocy.;-)
And hard as it might be to believe, there are plenty of people struggling with all those "* for DUMMIES" or "LEARN XXX in 21 days" books. Of course it doesn't help that most of those books are utter crap.
I think that PLoS might very well be the model for how things are done in the future, now that the internet has essentially reduced the distribution costs to zero.
Peer review is as good as any traditional journal. In theory at least; my field is physics so I haven't actually read any articles in the PLoS journals.
With the author pays model, the articles can be distributed around the world, without restrictions. This is a big thing, for poor countries as well as people who have graduated but still wan't to keep up with their field. And we don't see the perversity were researchers need to assign the copyright to the journal and then pay to read their own words!
As PLoS is a non-profit, the per-page costs are not that big as there is no need to fatten the wallets of any shareholders. Hell, per-page costs for PLoS are lower than for many traditional for-profit journals! Additionally, researchers from poor countries are allowed to publish for free. This combined with the fact that they can get the articles for free, is about the best we can do to help the third world to increase their knowledge base.
I wish all the success to PLoS and hope that the same concept will be increasingly popular in other scientific fields as well.
*Disclaimer: I'm from Europe, so what do I know about US stuff?*
My impression is that these new "sport" planes are significantly bigger than ultralights. The article says that they may weight 1360 pounds, while IIRC ultralights are limited to something like 250 pounds. Secondly, ultralights are not going away because of this. This is just a new class between UL and "real" planes.
We have a similar class over here, IIRC max weight is 500 kg (or 550 kg if you have pontoons), and they're quite popular.
Unless you're talking about some classified machines, tens of thousands is out.
Blue Gene/L, supposed to be finished by the end of this year, is going to have ~65000 nodes (i.e. ~128000 cpu:s). The Cray Red Storm, also currently under construction IIRC, has a wee bit over 10000 nodes (1 cpu per node).
BlueGene isn't even a cluster
If you read my post you see that I wrote "distributed memory machines", which the Blue Gene definitively is.
Also, economy isn't everything in HPC. If it is faster to run an MPI job on a shared-memory machine, then there are times that it will make sense to do so, even though running it on a cluster would be cheaper. Remember, it would be cheapest and most efficient of all to run everything on one processor, except that everything would take forever to finish.
Well, I was thinking of economy as in "cheapest machine to solve a specific problem within a specific time". There are many cases where a distributed memory machine is the most economical in this sense, and there are other cases where a shared memory machine is more economical, and even cases where a shared memory machine is practically necessary.
Gang scheduling has absolutely nothing to do with the lack of premption.
On the contrary, gang scheduling relies on the ability to preempt jobs.
Since the scheduling is non-preemptive, in order to run the 100 node job, the entire cluster must first be idle. Suppose you start allocating the 1 node jobs in the 50 free nodes, since they fit. They each take an unpredictable amount of time to run, so when any one finishes, the others are likely to be still going. Even when the 50 node job finishes, you'll have some number of small jobs running (remember, more are entering the ready queue). You *cannot* preempt them, so the 100 node job cannot run. If you keep scheduling jobs that fit, it is likely that it will never run.
What you're describing is essentially a "backfill" scheduler, a very popular scheduler algorithm. Research has showed that it's actually quite good IF the users can be bothered to specify correct time estimates for their jobs. Well, usually the users won't, and efficiency suffers as a result.
Suppose you run jobs in strict order of arrival. Then the most likely outcome will be that a few of the 1 node jobs will take much longer than the others. You'll have most (99?) of the nodes free, but one or two straggler jobs still going. That 100 node job can't run, and although the jobs after it would fit, they can't run either. You have to sit with most of your cluster idle.
Now that is just plain stupid. I don't think anybody seriously uses such a poor scheduler.
If it was possble to suspend jobs, aka preempt them, this wouldn't be a problem, but on current clusters, that isn't possible (there are some research-grade cluster systems that can, but they have other very bad weak points (i.e. proprietary MPI extensions), and aren't in production use).
At least IBM:s Loadleveler scheduler can be configured to use a gang scheduling algorithm (i.e. with preemption). The problem is that it requires the users to recompile their apps with the thread aware compiler (mpxlf95_r), which in some cases (such as mine.
Cray reportedly has had gang scheduling (preemptive, as I said before) for the T3 (i.e. a distributed memory machine) since the mid 90:ies.
This new shared-memory machine will be more powerful, more convienient, and easier to maintain than the cluster-style supercomputers.
As always, it's a tradeoff. Distributed memory machines, like a cluster, are usually vastly cheaper than shared memory systems, and can scale to tens of thousands of nodes. Thus it is economically stupid to run MPI apps on a shared memory computer. That's why most supercomputer centers have both distributed and shared memory machines. There's a place for both architectures.
Hopefully it will allow better scheduling algorithms than on the clusters too--an appaling number of cycles get thrown away because cluster scheduling is non-preemptive.
Uh? Gang schedulers exist and are in use on clusters too.
The fact that a single Linux image has been attached to hundreds of processors is no indication of scalability. A certain program may scale well, or not.
The fact that NCSA is forking over a rather sizeable chunk of cash for this machine indicates that at least for their applications, they get good scalability.
..and that sir, is why I added the smiley at the end of my post.
:(
Sarcasm is so hard to get right over the wire.. oh well.
And sunbathing?! What kind of pasttime is that?!
Yeah, what a waste of time. You could get work done and a nice CRT tan a the same time instead.
.. and why do we have to so PC as to say "disruptions in the rhythmic functions". Come on, we're all adults, aren't we. It shouldn't come as a surprise to us that animals copulate. ;)
I'd say the scam (or rather, loophole) is that SUV:s are classified as trucks. I mean, it's clear that they are passenger vehicles, even though they are based on a truck chassis. So the same laws and regulations that apply to passenger vehicles such as sedans should apply to SUV:s too.
Accuracy to 20 feet of target is pin point with a 2200 LB shell.
That's pure bullshit. You barely get that kind of accuracy even with guided projectiles.
Well, this topic has been expounded in depth on usenet multiple times, so let me quote from one post (FM = US Field Manual):
"""
FM 6-30, Adjustment of Other Fire Control Means.
"8-31. 16-INCH NAVAL GUNFIRE MISSIONS
Adjusting fire from the 16-inch guns of a battleship is somewhat
different than adjusting that from the 5-inch guns.
a. Characteristics. The 16-inch gun produces a significantly larger
dispersion pattern than does the 5-inch. The pattern is about 150 meters
(or greater) wide and 500 meters (or greater) long. The pattern depends
on the terrain, target range, and number of guns in effect. The observer
should expect 2 to 5 minutes between transmitting a correction and shot
of the next salvo.
b. Call for Fire. The standard call for fire is used. The armament and
number of guns must be considered.
(1) Armament. If the observer does not specify the armament, the main
(16-inch) gun will be fired. If the observer wants the 5-inch gun fired,
he announces SECONDARY ARMAMENT.
(2) Number of Guns. Ship operating procedures may differ in the number
of mounts and/or turrets to be used in adjustment and fire for effect.
Coordination with the battleship is encouraged on this subject.
c. Corrections. Because of the rather large dispersion pattern and the
slow response time for each shot, observers should use bold corrections
to hit the target as rapidly as possible. Bracketing is not feasible."
Oh, and the "danger close" is 2,000 metres.
So, when the hostile forces are flooding towards them, the Marines are
at risk if they need fire within two kilometres, and they can expect to
wait two to five minutes between salvos! Not exactly quick or responsive
or useful, is it?
"""
If you check around you will find an Iowa is more survivable than a Nimitz class Carrier.
Perhaps, but it doesn't matter. The reason modern warships aren't heavily armored is that without all their radars, comm aerials and other stuff exposed outside the superstructure, they're sitting ducks. You can't armor aerials. After you have missions killed the battleship with a couple of missiles, which is very easy since the battleship is a very big juicy target with very limited self defense capability, call in the flyboys with bunker-buster bombs or a submarine to finish it off.
They do carry Tomahawk and harpoon missles in their final configuration, you don't have to get into gun range.
At which point you might ask yourself, why bother with the battleship when a destroyer brings those same missiles and a lot of other stuff necessary for modern naval warfare, at a fraction of the cost?
The Armour is hard to penetrate, even for modern weapons.
Yes, but a mission kill is easy. After that, a bunker-buster bomb will certainly penetrate the armor. Not to mention modern torpedoes which explode under the keel; they are capable of sinking any size ship with one shot, including a battleship.
An Iowa can take more hits and still function than anything ever built.
Yes, but the point is that the Iowa will get hit where a modern destroyer won't, because it's a big target and it has very limited self defense capability against modern weapons. After one, or very few, hits, it's mission killed anyway.
If they would build a modern version, it would be nuclear powered, carry more missles, and have Aegis for defense.
Or, they could build something more useful for a fraction of the cost, such as one of the railgun cruisers mentioned in the article.
Huh. I have a compass graded in gradians, where the full circle is 400 gradians.
And then you have the various "mils" systems, popular in militaries. It's quite useful, too.
As a mathematician, I could try and get rid of all uses of degrees in favor of radians, but just because that's the only reasonable unit for doing many calculations doesn't mean that degrees aren't easier to use for the real world.
Most militaries use a system for angular measurements called mils, which is some convenient approximation of the milliradian. The most common ones are the NATO one, where 6400 mils is the full circle, and the one used by the former Warzhaw pact where 6000 mils is the full circle.
It's quite convenient because if you know two of the following: distance, angle and size of some object you can easily calculate the third in your head.
I kind of wish they'd bring back the Iowa's again.
That won't happen, as naval vessels they're totally obsolete. Any destroyer today could turn an Iowa into a flaming wreck before the Iowa could get within range.
Which means that the Iowa would need a bunch of destroyers as escort. Which means that the US Navy would have to take an entire group of ships close to shore if they want to use the Iowa for shore bombardment, risking the ships to mines, saboteurs , truck-launched antiship missiles etc. It's not gonna happen.
As for shore bombardment, yes they fire big shells, but they have a low rate of fire, they're somewhat inaccurate (compared to modern artillery) and the safety range is pretty big, i.e. ground personnel can't be very close to the area where the shells are landing. Give me a modern 155 mm battery firing submunition shells any day. If you need a bigger bang for some point target, call in a plane.
The most graceful looking warships ever built.
Well yes, I agree. Modern warships are ugly.
Only total losers use aimbots.
Can anybody enlighten me???
The linpack benchmark used for ranking the top500 isn't that demanding of interconnect bandwidht nor latency.
Some of the vendor specializing in clusters do build blades. Linux NetworX for one, I'm sure there's lots of others.
My impression is that the US Marine Corps is a separate branch, just like the other branches of the military such as the Army, Air Force and the Navy.
;-)
I think they're supposed to be the guys that run out of landing crafts and storm beaches and stuff. As most of them are going to die on the beach anyway, it's no use pissing away money getting the latest and greatest equipment for them.
Nah, seriously, I guess the fact theat they get worse equipment than the rest of the military has to do with Pentagon politics.
The Altix is to my knowledge among the best large NUMA, i.e. shared memory, machines around.
That is, if you run shared memory applications using threads for parallelization, I don't think you can go wrong with the Altix.
OTOH, if you're going to run MPI applications, i.e. separate processes communicating by message passing, which a lot of HPC applications actually do, you're just pissing away a huge amount of cash by getting a NUMA machine such as the Altix instead of a cluster.
The linpack benchmark used for ranking the top500 isn't that bandwidth and latency sensitive. That's why you see lots of clusters ranking highly, even though they have low performance interconnects, in some cases only Gb ethernet.
Apparently the 25 TFlops figure is the peak performance, while the expected max performance in linpack will be about 15 TFlops. This sound reasonable compared to bigmac (something like 17 Tflops peak, 10 TFlops max IIRC), considering that this one has 1.5 times as many cpu:s.
Oops, forgot to log in... lets post again so you see it without browsing at score 0:
~3.5 times speedup for ~2.3 times the processors, it's not all in the # of processors.
Gee, perhaps that's because the earth simulator has vector processors, which perform quite well on the linpack benchmark, given a good vectorizing fortran compiler. Not to mention that linpack isn't _that_ demanding of bandwidth and latency, otherwise you wouldn't see all those clusters in the top ten. Or top 100 for that matter.
FORTRAN I begot ALGOL 58 begot ALGOL 60 begot CPL begot BCPL begot B begot C begot C++
And it was good.
Fortran, yes. The rest of those languages began a slow descent into madness. Fortran forever!!!
The new version is tentatively scheduled for the end of the year.
I doubt it. Gcc has quite consistently had a one year release cycle for the past few years, with releases occuring in February -> May.
Given that this one is a bigger release, with the tree-ssa changes (and as you say, it might even be called 4.0), I wouldn't be surprised if the schedule slips somewhat.
I think it would be incredible it there is a release this year.
In a sense you're right in that readability is more important than saving as many charachters as possible when typing. Code is typically read a lot more than written, so readability and hence maintainability are certainly very important.
However, verbosity can also hurt readability. If the syntax contains too much clutter, you have to concentrate on understanding what all the clutter does, and thus you can't focus as much on what the code is actually supposed to do.
As an example, take the typical scripting task of reading a text file line by line, and do something with the line. Code in python is like:
for line in file("filename"):
do_something(line)
Compare this with the abomination that is file i/o manipulation in Java.
How about the best language for the task you are trying to accomplish?
Not necessarily. The problem is that, presuming every problem has a language best suited for solving it, I don't have the time to learn a huge number of languages.
Now, I'm not saying that you should take the only language Real Programmers use, FORTRAN IV, and do absolutely everything with it. What I'm saying is that e.g. if you know python fairly well, I don't think it's worth learning perl just because some simple regexp matching program can be a few lines shorter.
For another example, if doing web stuff is 99 % of what you do and you haven chosen php (because every friggin' webhost supports it, there's lots of ready-made code out there, or whatever else makes people chose such an abomination as php), then using php for some simple non-web stuff is probably a better choice than wasting time learning yet another scripting language.
I'm not in CS, but I took a few programming courses in my undergrad days. That was obviously quite basic stuff, for programming 101 we used some (by now old) Java book called "Java Gently". The Datastructures and algorithms course used a book called "Data Structures and Algorithm Analysis in C", by Weiss (good book, BTW, another good is reportedly Sedgewick).
:)
;-)
For object-oriented programming, we used the Java book by Eckel, which was a quite good overview of Java features, although it didn't actually IMHO teach programming as such. That course was crappy anyway, I didn't learn anything new there..
Then I went to a computer simulation course, where we used a book by Gould and Tobochnik. That's a good book, but of course it focuses more on physics and how to model it than programming. The examples in the book were in some kind of BASIC dialect, but it was of course fairly easy to translate the concepts to Fortran/C/whatever you fancy/.
Then I have a couple of books (more like pamphlets really) introducing matlab and mathematica. And a lot of other books I can't remember now..
I remember that my buddies doing CS read books like SICP (a classic!), OS and networking books by Tanenbaum, the OS book by Stallings, some compiler book (I don't know which, perhaps the dragon book is still going strong?) etc.
But later on in the curriculum, they don't read books as much, more like review articles published in some journals. I guess the same applies for most fields, not only CS. At least in physics it's true.
In the end, of course, having a masters degree is no guarantee against idiocy.
And hard as it might be to believe, there are plenty of people struggling with all those "* for DUMMIES" or "LEARN XXX in 21 days" books. Of course it doesn't help that most of those books are utter crap.
I think that PLoS might very well be the model for how things are done in the future, now that the internet has essentially reduced the distribution costs to zero.
Peer review is as good as any traditional journal. In theory at least; my field is physics so I haven't actually read any articles in the PLoS journals.
With the author pays model, the articles can be distributed around the world, without restrictions. This is a big thing, for poor countries as well as people who have graduated but still wan't to keep up with their field. And we don't see the perversity were researchers need to assign the copyright to the journal and then pay to read their own words!
As PLoS is a non-profit, the per-page costs are not that big as there is no need to fatten the wallets of any shareholders. Hell, per-page costs for PLoS are lower than for many traditional for-profit journals! Additionally, researchers from poor countries are allowed to publish for free. This combined with the fact that they can get the articles for free, is about the best we can do to help the third world to increase their knowledge base.
I wish all the success to PLoS and hope that the same concept will be increasingly popular in other scientific fields as well.