They call it "coin operated coding," but are they going to let users choose what work their money
gets used to fund? So if I want, say, better window transparency, then I can donate $20 and he'll spend 15 or 30 minutes working on that someday?
I don't know if Dunc-Tank will work that way, but GNU Lilypond works that way. Users write up proposals with specs and submit them to the developers, who decide on the appropriate charge for the work. Users have been known to pool resources to get some pretty amazing features added.
It's a fantastic way to develop Free Software, but it requires developers who are very responsive to users and able to look past their own assumptions and ways of doing things.
Supercomputer is a pretty fluid term and really hard to nail down. Everyone has his or her own definition.
However, to say that SSE/Altivec/etc. is anything close to the kind of vector processing a Cray vector machine does is ludicrous. A Cray vector compiler can vectorize a heck of a lot more than Intel's compiler because of the machine architecture.
The other thing that Crays and other high-end HPC systems have is gobs of memory bandwidth. Linpack is a completely useless measure of how well a computer will perform on things like weather forecasting and bioscience. That's because those applications tend to require lots of communication, which quickly saturates the bandwidth of inexpensive clusters.
To give you a sense of this, I've examined simulations of vector hardware on an ordinary desktop machine and the performance bottleneck is not raw compute power -- it's the lack of memory bandwidth. The simulation itself saturates the host machine's memory interface as it tries to feed its simulated function units with data.
Are you thinking of array syntax? Cray compilers go way beyond vectorizing simple things like that. Cray compilers vectorize C just fine (well, assuming restricted pointers and such). There's a lot, lot, lot more to vectorization (and parallelization in general) than SSE-type stuff.
What parallelism do Cray compilers handle automatically?
Vectorization, multithreading and multistreaming over multiple processor cores (X1 and X1E). I was mostly thinking of multithreading in my response. The compiler generates code for hundreds of threads on the MTA machine.
You make an important point. Facts can be used as a supplement, but should never, ever be the focus of the debate. People don't connect with facts. Facts can be useful in the context of a values discussion to expose contradictions by the other side. But to rely on that technique is to commit political suicide. First and foremost, a politician must understand the values of her constituents and colleagues and shape the discussion around those values.
The problem is that in politics, facts matter very much. That's why the rise of blogs has had such an effect on politics, because you can't just make an emotional speech anymore without having it picked apart by a thousand fact checkers.
Nope. Blogs are very much overrated. How many blogs exist that have picked apart the president's arguments for the war in Iraq? How many are dedicated to the facts behind the outing of Valerie Plame? How many talk about the education funding situation, the increasing regressive nature of our taxes and the record of Sam Alito with respect to Concerned Alumni of Princeton.
Lots of blogs exist on both sides. The reason Dan Rather was forced to resign was not because of some memo he ran with. It was because there was a political effort to connect that event with values put forth by the far right. What were those values? Well, certainly honesty and integrity, which are broadly shared. But it went deeper than that.
The real value that connected with the conservative base and resulted in Rather's resignation is anti-intellectualism. The far right always talks about the "liberal elite" and the "media elite." Never mind that the conservative movement has many think tanks with many highly educated, well funded researchers. Never mind that Fox News is a mouthpiece for this group.
They connected to the innate fear in people that they don't know enough or aren't worthy enough to be taken seriously in politics. They've twisted that fear into a loathing of the highly educated, who are portrayed as "unelected bureaucrats" who really hold all the political power and make all the decision.
Sound familiar? The same rhetoric about "unelected judges" was used in the Schaivo case and is still used to get people thinking about "legislating from the bench" instead of judicial oversight.
The blogs provide the events in which to frame a debate around values. What facts they actually present is small potatoes.
The winner is simply the one who presents the values that weigh the most.
Exactly right. Therefore, the path to political power requires that you help people connect deeply with the values you share. The last thing you do is debate the other side on their issues against their values, because it only reinforces the idea that the values put forth by the other side are the most important values. Yes, the issue must be addressed, but it must be addressed in a way that connects with a different set of values. Your values.
Read George Lakoff's Don't Think of an Elephant! for a good introduction to value politics.
Well of course I'm proving their point. That's how our brains work. Our brains respond primarily to the values we hold, not to the facts.
Both sides of any debate believe in their heart of hearts that they (and only they)are arguing the facts
That's true only of the politically naive, which the Democratic party seems to be full of these days. The political rhetoric we hear is that the facts are being debated. But make no mistake, when Karl Rove develops a political strategy, he is not thinking about the facts. He's thinking about values and what will hit people in their guts.
Why do you think there was a rash of state constitutional amendments to bad gay marraige in 2004. Do you think it's because people actually care about gay marriage? Think again. What do you think is behind the current attack on immigrants?
A good politician very consciously frames the debate around values. That's why the Democrats keep shooting themselves in the foot. They misinterpret the polls to mean that people care about the issues. They don't.This is not a "bad" or "evil" thing. It's just the way it is. It's how we function as human beings.
It is only when you admit both sides are capabile of rational thought and logical argumnets that you can start to make headway in some kind of realistic progress in unison.
No, no, no! The way to make progress is to help people understand that they do in fact share common values. Facts don't matter. If there's one thing to take away from this discussion, that's it. In politics, facts don't matter. The way to political compromise is to understand the values of the people you are dealing with and approach them in a way that connects with those values.
Look, here's the first thing to understand. In a political debate, facts don't matter. Read that again. Facts don't matter. This has been shown over and over again. People respond to values, not facts. Progressives lose because they argue the facts. They argue about the facts of global climate change. They wax wonkish on the merits of instant runoff voting.
Nobody cares.
As the right-wing Republicans have demonstrated so clearly, the way to political power is through values. Instead of citing world temparature statistics, ask people what they value. Do they value fresh air, abundant foliage, clean cities? Or do they value pollution, subsidies for big oil and murky rivers?
Look at the values of society today. They can be summarized by fear, isolation and scarcity. Everything we hear out of the far right can be reduced down to this. We're told to be afraid of terrorists, of immigrants, of gays and lesbians. We're told to lock our doors and make sure we keep as much of "our" money as we can, because we certainly don't have enough wealth in this country to go around. We're told to work as hard as we can to get our own, because no one's got our back. Hyper-individualism is the rule of the day.
If there's going to be change in this country, it's going to have to come as a result of a change in the conversation. We need to be talking about how we actually have abundance in this country and there is enough to build the kind of community we want to live in. There's enough to go around when we accept that each of us has a responsibility to contribute to the common good. There's enough to go around when we realize that we live in a connected community, not in isolated cabins on the frontier. There's enough to go around when we stop living in fear and start living in hope; when we realize that we support each other and we don't have to make it on our own.
This is the kind of political power that progressives need. Unfortunately, they're too damn busy being geeks, wonks and nerds to get it.
You've never been involved in this kind of processor design before. This sort of thing is standard procedure for just about every CPU vendor out there. It's just that you rarely hear about it because historically, most vendors have shipped their own compilers with their own workarounds.
Quite likely, Intel did some respins before releasing the chip. There were bugs more severe than these after first tape-out.
It is impossible to test every sequence and situation a processor might encounter before releasing it.
Nope, two different books. One is the intro text and the other is the intermediate version.
Give the Gift of Justice This Year
on
Season's Givings?
·
· Score: 1
I'm reading about people giving to food banks, Oxfam, Heifer, etc., all certainly worthy causes. But one of the things we are very good at doing is doing charity while ignoring justice.
It's the difference between helping the poor and working to eliminate the things that cause us to have poor people in the first place.
Consider giving to ISAIAH (Minnesota), MOSES (Detroit), UCM/MCU (St. Louis) or your local Gamaliel affiliate. These groups are organizing citizens to take back our government and ensure that we live in a society that reflects our broadly shared values including fairness, equal opportunity, community, hope and shared abundance.
Even better, give money and get involved. This is the civil rights movement of our time. We can no longer sit on the sidelines; we must engage our elected officials and each other to build the communities we want to live in.
As for performance...well, you won't see much difference with a 64-bit processor, but that's not because they aren't better - that's because people haven't been writing new code for them due to slow adoption rates.
Not true. 64-bit computing has almost nothing to do with performance. It's all about address space. That's why Microsoft is pushing this for server apps. We are quickly running out of bits to build large, fast, shared-memory machines with x86 hardware. Even with today's Opteron and EMT64 offerings we don't have enough to build really big machines because the actual pins on the chip don't support the full 64-bit space. I believe it's something like 40 bits today.
But I'm going to go out on a limb here and guess that you are not a business person and have no experience with business, since you think all this economics talk is "just myth"
Nice try, but I'm not taking the bait. One doesn't need a business degree to make observations about how our economy works in real life.
Ultimately, if people are willing to pay X for something, it will be sold at X. If another supplier comes along with Y < X then most people will pay Y. None of this has anything to do with how many widgets suppliers 1 and 2 have.
You make a good point about the cost of providing the widgets. That's certainly a factor, but it's an absolute myth that increasing supply automatically lowers price. It's exactly why supply-side ("trickle-down") economics doesn't work.
"Demand-side" economics, making sure jobs pay a decent wage, providing social services where needed, etc. (my definition) is effective because it increases the price people are willing to pay for the widget. It increases the supply of money to those who will spend it, the poor and middle class. This is a different twist to Keynesian economics, which is also focused on demand.
Tax cuts for the rich do nothing because they've purchased everything they want already. That extra money goes into various investment portfolios which make a few people very rich and might increase market capitalization of some large corporations but does little to help the small moms-and-pops.
I'll honestly say that I believe formally trained economists (especially those in or right out of school) like to talk about theory but rarely look at what happens in practice. "Free markets" don't exist and therefore it's wrong to talk about them in the context of our current economy. The "free market" is a constantly-retold story about a theoretical idea (that is, a myth) that will never come to fruition because no one can have perfect knowledge. Supply-side economics is intimitely tied to this mythical "free market" which is another reason it doesn't work.
the laws of supply and demand suggest that the value of each IP address will approach zero.
Except that the "laws" aren't laws at all and are in fact closer to myth. The supply of an item does not determine its price. The price people are willing to pay determines its price.
uniform access shared memory (think the bigass (tm) cray machines)
The only recent Cray machine that I am aware of that had uniform access to memory
was the MTA2 which used an address scrambling scheme to spread references throughout
the memory system so there would be no hot-spots. It also meant that no memory
was "local" either.
The current vector and MPP lines are either distributed memory (shared address
space, non-uniform latency) or message-passing (no shared address space).
here you'd typically use mpi (if your programs are supposed to be portable) or the local threading library + vectorized / paralellized math libraries. since its all in a single memory space, it's "as simple" as just doing a good job multithreading the program.
MPI is not simple. It requires the programmer to explicitly state the communication
among processors. UPC and Co-Array Fortran simplify this and are probably closest
to what the programmer would really like to write. The fact that they are missing
from the survey is a huge gaping hole that for me calls into question whatever results
are compiled. CAF will be in the 2008 standard. UPC isn't as mature yet but will probably be proposed for the standard in a few years.
You're absolutely right that the "best" toolkit depends heavily on the machine architecture. MPI is generally optimized for large messages because the assumption is that communication is expensive. UPC and CAF are optimized for small messages, with an underlying assumption that the machine supports fast remote addressing.
In many MPPs, nodes share access to memory, just at a performance penalty.
These are typically called Distributed Memory systems. Each node and CPU can
address any memory in the machine, but locality is visible to the programmer.
Unfortunately, there's no standard taxonomy for HPC systems. I tend to think
of MPPs as a tightly-coupled machine with lots of processors. They can support
shared-memory, distributed-memory, and message-passing programming models. Some
have all three, others just one or two.
A cluster is a different beast. It has orders of magnitude less memory bandwidth,
making it very good for computationally intensive codes and extremely poor on
codes with lots of communication.
Linpack/Top 500 is a terrible way to compare systems. HPCC is somewhat less bad.
Some HPCC benchmarks like GUPS are very good at straining the memory/communications
systems and clusters will fall over very quickly. A cluster is a good low-end
system but the term "HPC" doesn't really apply.
I also contest some of the distinctions drawn about vector processor systems. The two vector systems currently on the market, the cray X1 and the NEC SX-8 are clusters. Each node just happens to be a vector-smp. The earth simulator is a 640 node cluster of 8-way SMP boxes, where each of the processors in the smp is a vector cpu. However, the predominant programming method even on these boxes is with explicite message passing like MPI. Co-array fortran and Unified Parallel C are faster, but slow to catch on.
This part of the article makes it plain that the author really doesn't know much
about HPC systems. A vector machine uses vector processors. That's it. It says
nothing about whether the machine is a cluster or MPP and what kinds of programming
models it supports (distributed memory, shared memory, etc.).
The SX-6/8 and X1/X1E are not clusters. They have enormous memory bandwidth
(a necessity on vector machines) and are distributed-memory machines. UPC and
Co-Array Fortran run very well on them because the address reach of any one
processor covers the whole machine and maps extremely well onto the GAS programming
model.
CAF is slated to be included in the Fortran 2008 standard. There are preliminary
discussions about including UPC in an upcoming C standard, but it is a less mature
language than CAF and still requires some work to hammer it out. HPC customers are
very excited about both languages. GAS languages are very nice to use because they
abstract the communication. MPI is different because it is geared toward large
messages to reduce overhead. Some problems don't map to that paradigm at all.
I second your experience. I got the II and the expansion pack and got 6 hours out of it with the machine constantly swapping due to a huge compile. Without disk it easily lasts 8 or 9 hours on a clunky old Dell with terrible batteries. Needless to say, I was impressed.
From my reading, the reviewer compared the original N-Charge to a single II which is only half the capacity. It's not a fair comparison. The II with the expansion pack costs roughly the same as the original and delivers at least the same performance in my experience.
First of all I want to say I think it is completly possible to make a processor with 8APUs and so forth.
Check.
For starters PowerPC chips already have several seperate execution units on them, and I think they use fewer transitors than intel chips.
Multiple function units on a chip is not the same thing as the 8 APUs of the Cell. First off, there's no indication whatsoever that this is a single-chip architecture. Even if it is a single chip solution, the coupling of a superscalar's function units to the rest of the architecture is extremely strong.
The Cell architecture is much more loosely coupled, which could be both it's greatest strength and biggest weakness. It's a very different kind of programming model. If the Cell designers really expect developers to code to the metal, they are in for a surprise. Even the most advanced HPC shops today (i.e. government labs, NSA, etc.) are sick of hand-optimizing code. That's why we have programs like DARPA's HPCS. The software component (compilers, debuggers, perforance analyzers, etc.) is at least as important as the underlying speed of the hardware. Usability is king these days. For the Cell to compete in the HPC market, it must have parallelizing and multithreading compilers.
I find the claim that the Cell will work optimally in all configurations from the PDA to a networked cluster to be dubious at best and patently false at worst. The differences in network latency alone will require radically different software solutions in these two environments. Comparing a cluster of Cell computers using ethernet (even 10G) to a Cray network is ludicrous. GFLOPS ain't the whole story. The Cell may dominate the Top 500 but that's almost universally recognized by HPC experts as next to useless. It's great for marketing and gloating point numbers but I'd like to see how it does on HPC Challenge.
To get a feel for this, look at the HPC Challenge results and compare the Cray Alpha (T3E) to the Dalco Opteron (cluster). Then compare the Dalco to the Cray Opteron (XD1). Then compare the T3E to the Cray X1 and NEC SX-6. Then look at the clock speeds of all the machines.
Moreover, a huge chunk of the transitor budget goes to doing things like cache consistancy or complicated instruction prediction which is probably not used on the much simpler APUs.
Not true. By far the biggest chunk of the transitor budget goes to the cache itself. Predication is relatively cheap compared to full-out dynamic branch prediction. Cell has apparently eliminated the cache which would make room for lots of processing bits. However, I'll note that contrary to what is implied in the article, the newest Cray systems, including the vector machines, all have multiple levels of cache on them. Latency and locality do matter, even in large-scale vector codes.
And finally, just because something is vector doesn't mean it's a vector supercomputer. There's a reason NEC and Cray blow SSE/Altivec out of the water and it's not just vector length. It's the whole package of vector ISAs designed for high performance codes (not just pushing polygons), enormous memory and network bandwidth and compilers that know how to make use of it.
Yep, Newegg. I bought ~$1500 in parts a year ago to build a mythtv/development server box. After selecting from the Newegg stock, I went to pricewatch and tallied that total cost of getting each part from the least expensive supplier.
Had I gone the pricewatch route, I would have bought from at least six different suppliers. I would have saved $50.
What's Your Background?
on
Ph.D Employment?
·
· Score: 3, Insightful
This seems like an odd question to me. You must have some idea of what you do and don't like to do. You just spent five or more years working on a major research project. What did it involve? Are you still interested in the area? Are there branches off the research you'd like to pursue?
At the end of my degree I had come to the conclusion that academia wasn't for me. Too many long hours with all the ridiculous politics of every workplace. So I joined the industrial workforce and am quite happy working in the general area of my research. But you'll find that wherever you go, it won't be exactly the same thing you've been working on. Nor should it be.
My degree enabled me to pick exactly the kind of job I wanted. I felt completely comfortable turning jobs down if they weren't what I was looking for. Because no matter what else, the fact that you finished a Ph.D. is a big plus in your portfolio when it comes to reliability and dedication.
There are plenty of EE/CS companies looking for Ph.D.'s. But don't go looking on Monster. Talk to your advisor and get "ins" where you need them. That's how it works. No one in H.R. has any idea what you did or how it applies to the company you may be looking at. Get a technical contact and pursue it.
I put a lot of personal time and effort into ISAIAH, a coalition of Minnesota churches working for social justice through systemic change.
This group is not about evangelizing. It's about getting down and dirty in the political process to effect real change. I am working on securing dedicated funding for public transportation in Minnesota. I have been amazed by what this group does. Immigration reform, brownfields cleanup, affordable housing, domestic violence -- the list just goes on. The Gamaliel Foundation has affiliates all over the country. Consider donating money, or even better, time to their work.
I'm no fan of C++, but its syntax is pretty low on the list of its problems...
Not to start a religious war (but this will, anyway), but I'm curious what you consider to be the problems of C++. I am a big fan of C++ and have my own wishlist of things to fix. I'd like to learn more about what others perceive to be its shortcomings.
I don't know if Dunc-Tank will work that way, but GNU Lilypond works that way. Users write up proposals with specs and submit them to the developers, who decide on the appropriate charge for the work. Users have been known to pool resources to get some pretty amazing features added.
It's a fantastic way to develop Free Software, but it requires developers who are very responsive to users and able to look past their own assumptions and ways of doing things.
Supercomputer is a pretty fluid term and really hard to nail down. Everyone has his or her own definition.
However, to say that SSE/Altivec/etc. is anything close to the kind of vector processing a Cray vector machine does is ludicrous. A Cray vector compiler can vectorize a heck of a lot more than Intel's compiler because of the machine architecture.
The other thing that Crays and other high-end HPC systems have is gobs of memory bandwidth. Linpack is a completely useless measure of how well a computer will perform on things like weather forecasting and bioscience. That's because those applications tend to require lots of communication, which quickly saturates the bandwidth of inexpensive clusters.
To give you a sense of this, I've examined simulations of vector hardware on an ordinary desktop machine and the performance bottleneck is not raw compute power -- it's the lack of memory bandwidth. The simulation itself saturates the host machine's memory interface as it tries to feed its simulated function units with data.
HPC is expensive for a reason.
Are you thinking of array syntax? Cray compilers go way beyond vectorizing simple things like that. Cray compilers vectorize C just fine (well, assuming restricted pointers and such). There's a lot, lot, lot more to vectorization (and parallelization in general) than SSE-type stuff.
You make an important point. Facts can be used as a supplement, but should never, ever be the focus of the debate. People don't connect with facts. Facts can be useful in the context of a values discussion to expose contradictions by the other side. But to rely on that technique is to commit political suicide. First and foremost, a politician must understand the values of her constituents and colleagues and shape the discussion around those values.
Lots of blogs exist on both sides. The reason Dan Rather was forced to resign was not because of some memo he ran with. It was because there was a political effort to connect that event with values put forth by the far right. What were those values? Well, certainly honesty and integrity, which are broadly shared. But it went deeper than that.
The real value that connected with the conservative base and resulted in Rather's resignation is anti-intellectualism. The far right always talks about the "liberal elite" and the "media elite." Never mind that the conservative movement has many think tanks with many highly educated, well funded researchers. Never mind that Fox News is a mouthpiece for this group.
They connected to the innate fear in people that they don't know enough or aren't worthy enough to be taken seriously in politics. They've twisted that fear into a loathing of the highly educated, who are portrayed as "unelected bureaucrats" who really hold all the political power and make all the decision.
Sound familiar? The same rhetoric about "unelected judges" was used in the Schaivo case and is still used to get people thinking about "legislating from the bench" instead of judicial oversight.
The blogs provide the events in which to frame a debate around values. What facts they actually present is small potatoes.
Why do you think there was a rash of state constitutional amendments to bad gay marraige in 2004. Do you think it's because people actually care about gay marriage? Think again. What do you think is behind the current attack on immigrants?
A good politician very consciously frames the debate around values. That's why the Democrats keep shooting themselves in the foot. They misinterpret the polls to mean that people care about the issues. They don't.This is not a "bad" or "evil" thing. It's just the way it is. It's how we function as human beings.
Nobody cares.
As the right-wing Republicans have demonstrated so clearly, the way to political power is through values. Instead of citing world temparature statistics, ask people what they value. Do they value fresh air, abundant foliage, clean cities? Or do they value pollution, subsidies for big oil and murky rivers?
Look at the values of society today. They can be summarized by fear, isolation and scarcity. Everything we hear out of the far right can be reduced down to this. We're told to be afraid of terrorists, of immigrants, of gays and lesbians. We're told to lock our doors and make sure we keep as much of "our" money as we can, because we certainly don't have enough wealth in this country to go around. We're told to work as hard as we can to get our own, because no one's got our back. Hyper-individualism is the rule of the day.
If there's going to be change in this country, it's going to have to come as a result of a change in the conversation. We need to be talking about how we actually have abundance in this country and there is enough to build the kind of community we want to live in. There's enough to go around when we accept that each of us has a responsibility to contribute to the common good. There's enough to go around when we realize that we live in a connected community, not in isolated cabins on the frontier. There's enough to go around when we stop living in fear and start living in hope; when we realize that we support each other and we don't have to make it on our own.
This is the kind of political power that progressives need. Unfortunately, they're too damn busy being geeks, wonks and nerds to get it.
Quite likely, Intel did some respins before releasing the chip. There were bugs more severe than these after first tape-out.
It is impossible to test every sequence and situation a processor might encounter before releasing it.
Nope, two different books. One is the intro text and the other is the intermediate version.
It's the difference between helping the poor and working to eliminate the things that cause us to have poor people in the first place.
Consider giving to ISAIAH (Minnesota), MOSES (Detroit), UCM/MCU (St. Louis) or your local Gamaliel affiliate. These groups are organizing citizens to take back our government and ensure that we live in a society that reflects our broadly shared values including fairness, equal opportunity, community, hope and shared abundance.
Even better, give money and get involved . This is the civil rights movement of our time. We can no longer sit on the sidelines; we must engage our elected officials and each other to build the communities we want to live in.
Not true. 64-bit computing has almost nothing to do with performance. It's all about address space. That's why Microsoft is pushing this for server apps. We are quickly running out of bits to build large, fast, shared-memory machines with x86 hardware. Even with today's Opteron and EMT64 offerings we don't have enough to build really big machines because the actual pins on the chip don't support the full 64-bit space. I believe it's something like 40 bits today.
Ultimately, if people are willing to pay X for something, it will be sold at X. If another supplier comes along with Y < X then most people will pay Y. None of this has anything to do with how many widgets suppliers 1 and 2 have.
You make a good point about the cost of providing the widgets. That's certainly a factor, but it's an absolute myth that increasing supply automatically lowers price. It's exactly why supply-side ("trickle-down") economics doesn't work.
"Demand-side" economics, making sure jobs pay a decent wage, providing social services where needed, etc. (my definition) is effective because it increases the price people are willing to pay for the widget. It increases the supply of money to those who will spend it, the poor and middle class. This is a different twist to Keynesian economics, which is also focused on demand.
Tax cuts for the rich do nothing because they've purchased everything they want already. That extra money goes into various investment portfolios which make a few people very rich and might increase market capitalization of some large corporations but does little to help the small moms-and-pops.
I'll honestly say that I believe formally trained economists (especially those in or right out of school) like to talk about theory but rarely look at what happens in practice. "Free markets" don't exist and therefore it's wrong to talk about them in the context of our current economy. The "free market" is a constantly-retold story about a theoretical idea (that is, a myth) that will never come to fruition because no one can have perfect knowledge. Supply-side economics is intimitely tied to this mythical "free market" which is another reason it doesn't work.
The only recent Cray machine that I am aware of that had uniform access to memory was the MTA2 which used an address scrambling scheme to spread references throughout the memory system so there would be no hot-spots. It also meant that no memory was "local" either.
The current vector and MPP lines are either distributed memory (shared address space, non-uniform latency) or message-passing (no shared address space).
MPI is not simple. It requires the programmer to explicitly state the communication among processors. UPC and Co-Array Fortran simplify this and are probably closest to what the programmer would really like to write. The fact that they are missing from the survey is a huge gaping hole that for me calls into question whatever results are compiled. CAF will be in the 2008 standard. UPC isn't as mature yet but will probably be proposed for the standard in a few years.
You're absolutely right that the "best" toolkit depends heavily on the machine architecture. MPI is generally optimized for large messages because the assumption is that communication is expensive. UPC and CAF are optimized for small messages, with an underlying assumption that the machine supports fast remote addressing.
Unfortunately, there's no standard taxonomy for HPC systems. I tend to think of MPPs as a tightly-coupled machine with lots of processors. They can support shared-memory, distributed-memory, and message-passing programming models. Some have all three, others just one or two.
A cluster is a different beast. It has orders of magnitude less memory bandwidth, making it very good for computationally intensive codes and extremely poor on codes with lots of communication.
Linpack/Top 500 is a terrible way to compare systems. HPCC is somewhat less bad. Some HPCC benchmarks like GUPS are very good at straining the memory/communications systems and clusters will fall over very quickly. A cluster is a good low-end system but the term "HPC" doesn't really apply.
This part of the article makes it plain that the author really doesn't know much about HPC systems. A vector machine uses vector processors. That's it. It says nothing about whether the machine is a cluster or MPP and what kinds of programming models it supports (distributed memory, shared memory, etc.).The SX-6/8 and X1/X1E are not clusters. They have enormous memory bandwidth (a necessity on vector machines) and are distributed-memory machines. UPC and Co-Array Fortran run very well on them because the address reach of any one processor covers the whole machine and maps extremely well onto the GAS programming model.
CAF is slated to be included in the Fortran 2008 standard. There are preliminary discussions about including UPC in an upcoming C standard, but it is a less mature language than CAF and still requires some work to hammer it out. HPC customers are very excited about both languages. GAS languages are very nice to use because they abstract the communication. MPI is different because it is geared toward large messages to reduce overhead. Some problems don't map to that paradigm at all.
From my reading, the reviewer compared the original N-Charge to a single II which is only half the capacity. It's not a fair comparison. The II with the expansion pack costs roughly the same as the original and delivers at least the same performance in my experience.
The Cell architecture is much more loosely coupled, which could be both it's greatest strength and biggest weakness. It's a very different kind of programming model. If the Cell designers really expect developers to code to the metal, they are in for a surprise. Even the most advanced HPC shops today (i.e. government labs, NSA, etc.) are sick of hand-optimizing code. That's why we have programs like DARPA's HPCS. The software component (compilers, debuggers, perforance analyzers, etc.) is at least as important as the underlying speed of the hardware. Usability is king these days. For the Cell to compete in the HPC market, it must have parallelizing and multithreading compilers.
I find the claim that the Cell will work optimally in all configurations from the PDA to a networked cluster to be dubious at best and patently false at worst. The differences in network latency alone will require radically different software solutions in these two environments. Comparing a cluster of Cell computers using ethernet (even 10G) to a Cray network is ludicrous. GFLOPS ain't the whole story. The Cell may dominate the Top 500 but that's almost universally recognized by HPC experts as next to useless. It's great for marketing and gloating point numbers but I'd like to see how it does on HPC Challenge.
To get a feel for this, look at the HPC Challenge results and compare the Cray Alpha (T3E) to the Dalco Opteron (cluster). Then compare the Dalco to the Cray Opteron (XD1). Then compare the T3E to the Cray X1 and NEC SX-6. Then look at the clock speeds of all the machines.
Not true. By far the biggest chunk of the transitor budget goes to the cache itself. Predication is relatively cheap compared to full-out dynamic branch prediction. Cell has apparently eliminated the cache which would make room for lots of processing bits. However, I'll note that contrary to what is implied in the article, the newest Cray systems, including the vector machines, all have multiple levels of cache on them. Latency and locality do matter, even in large-scale vector codes.And finally, just because something is vector doesn't mean it's a vector supercomputer. There's a reason NEC and Cray blow SSE/Altivec out of the water and it's not just vector length. It's the whole package of vector ISAs designed for high performance codes (not just pushing polygons), enormous memory and network bandwidth and compilers that know how to make use of it.
Had I gone the pricewatch route, I would have bought from at least six different suppliers. I would have saved $50.
At the end of my degree I had come to the conclusion that academia wasn't for me. Too many long hours with all the ridiculous politics of every workplace. So I joined the industrial workforce and am quite happy working in the general area of my research. But you'll find that wherever you go, it won't be exactly the same thing you've been working on. Nor should it be.
My degree enabled me to pick exactly the kind of job I wanted. I felt completely comfortable turning jobs down if they weren't what I was looking for. Because no matter what else, the fact that you finished a Ph.D. is a big plus in your portfolio when it comes to reliability and dedication.
There are plenty of EE/CS companies looking for Ph.D.'s. But don't go looking on Monster. Talk to your advisor and get "ins" where you need them. That's how it works. No one in H.R. has any idea what you did or how it applies to the company you may be looking at. Get a technical contact and pursue it.
This group is not about evangelizing. It's about getting down and dirty in the political process to effect real change. I am working on securing dedicated funding for public transportation in Minnesota. I have been amazed by what this group does. Immigration reform, brownfields cleanup, affordable housing, domestic violence -- the list just goes on. The Gamaliel Foundation has affiliates all over the country. Consider donating money, or even better, time to their work.