This is a bi-lingual blog of the members of the ADAMIS team at Laboratoire APC and invited guests. We comment on selected papers and events exploring, or relevant to, the interface between physics, cosmology, applied math, statistics, and numerical algorithms and which we have found interesting.

The opinions expressed in this blog reflect those of their authors and neither that of the ADAMIS group as a whole nor of Laboratoire APC.

Saturday, December 11, 2010

... and around the world ...

Just piggybacking on the post by Maude below ... The supercomputing landscape as in Europe as worldwide is definitely not something engraved in a stone as some may think. In the contrary at least at its cutting edge it is by far a very dynamic system with a cut-throat competition be it a race to either putting on the floor first ever Tera (not so long time ago) and, more recently, Peta flop computer, or just for an over all leadership at any given time. In a recent change two Chinese supercomputers have reached for the very first time the 1st and 3rd spot on the so-called Top500 list, which aims at ranking all the most powerful computers of the world.


This is the second time the US has lost its leadership (at least understood in this way) ever. However, unlike the first time - remember the 2002 "out-of-the-blue" Japanese Earth-Simulator ? - this was hardly a "Sputnik moment" for the American computing community, as China for some time has declared in an explicit and implicit manner its willingness to get to the fray. But though we all have, or at least could have, seen that coming only now this has become a fact. And with the fact came a shock as well ... A quick look at the hardware leaves little doubt that on the component level its all the same story as with many other supercomputers in the world (Intel Xenon CPUs, nVIDIA GPUs, etc), the challenge and success is therefore in putting those things together. And for the first time Chinese computer scientists and engineers have done the best.

Who is the fastest in the supercomputing world is not such an easy problem to settle. Certainly just a total combined power of all processing units, call it a theoretical peak performance (Rpeak - as denoted by Top500), is not really what one cares about. It is a bit like maximum speed on your car speedmeter ... Nobody is really sure what it is for. Certainly what matters is more an actual performance (in number of floating point operations per unit time) achieved on some real life codes, i.e., maximal peak performance, (Rmax - in the parlance of Top500).  Now the catch is of course in the adjective "real" ... The methodology of doing such tests is a lively area of computer science and some important details on general, and practical, i.e., how the ranking is actually made, levels can be found on the Top500 website. However stimulating the problem can be at least for some computer scientists, for us as users, that all hardly looks any relevant. What we care at the end is whether our specific code can gain anything or not. And how much. Or which computational platform we should choose to run our code on ? Well, the Top500 list will give you only a modest help here.

So is checking the Top500 list a bit like watching Formula 1 races ? Cool, super expensive and fast cars but completely irrelevant to our every day lives ?

Well, yes and no. Clearly they are beyond our reach as individuals (well most of us I mean ;-) ) and are driven by huge money and egos.  But no as well, as unlike with riding (or even touching) any of the F1 cars, we can actually get an access to many of the best platforms out there. You just need to apply ...
The reality usually quickly knocks in and you realize that to succeed it may take quite a few attempts. The entire process is then by far not completely effort free. If so you would like to know at least where to, which computer and center to aim at, ahead of the time. This again opens up a question what is the best available supercomputer for you and your codes.

In general, I reckon fast is clearly good, but does that have to be the fastest ? This is by far less clear. In fact you will never be probably allowed even to dream of that huge potential power dormant in the supercomputer of your choice all for yourself, and that assuming that your code actually could make any sensible use of it.  From the practitioner's perspective one should probably therefore aim at the computer with a sufficient, rather than the largest (imagine the queue of potential riders for a Formula 1 car if that ever became an option and be sure that likewise supercomputer bums are out there ready to jump on the earth-fastest just for pure chic of it), available power  - but do add a good margin  and choose  a well-run, user-friendly computing center.

Now let me get back to Maude's post ... . Of course different tiers seem to be arising naturally in parallel computing and naturally could/should serve different needs.  It also looks useful that for the higher level tiers one could go through a single application process and then use his/her allocated time on a platform more suitable to his/her needs or available at the time of the code execution. Well, assuming that this would not impair your success rate. What I find more troubling, and what maybe stemming from my admittedly rather modest though bad experience, is that the tiers system is treated like a ladder, steps of which have to be negotiated one-by-one and from the very bottom. Only once your code is proven and hardened in action on all the lower tiers you can jump in on the higher. Or at least you should demonstrate that its status is equivalent to performing such an effort. Of course, validation of any code and in particular one needing to use the largest resources is a necessary and important procedure. And indeed it is usually done with a limited number of processors and resources, which progressively increases with time. Almost like climbing the tiers ladder one may think. Yep, but only almost ... Forcing the user to keep on changing the computational platforms as part of that process is just adding an unnecessary and unwarranted burden. 
In particular as is the tiers 0 supercomputers in Europe tend to be seen as a cream-of-the-cream resource suitable and available only for the the best codes ready to make use of their significant power to produce a seminal, in one way or another, result. Thus for those, future hit-makers, ready to steal the show in their respective research areas, and already slotted to be commemorated on the cover of Nature to say the least.

That looks to me as an unwise use of the tiers system. It should be up to the user to decide what kind of resource reaching goals of his/her research will require at the end of the road, however long and arduous it may be, and apply on an appropriate tiers level. It should be up to the center to help the user to get to the hit-makers category. In fact, it seems not only unwise but hardly efficient either. I can not imagine how only the heavy-weight codes can ensure any reasonable resource usage for any supercomputer. Who fills the gaps, arising always on the cracks between big runs ? Agreed, we can always run a chat room, eh ?!

Having said that, I should acknowledge that there are some signs of changes looming on the horizon. In fact in the PRACE website mentioned by Maude they now seem to also accept proposals for a 'technological' time ... - small allocations which if I understood correctly could serve the purpose I have outlined above. How that will pan out in practice ... the time will show ...

No comments:

Post a Comment