Supercomputing '07: Computer Environment and Evolution

By Arch Robison (Intel) (19 posts) on November 17, 2007 at 8:50 pm

I'm back from Supercomputing '07. Gone is the heyday of wacky hyper-dimensional topologies and strange new architectures like the Connection Machine. Clusters built from commodity parts have become the ubiquitous denizens of the High Performance Computing (HPC) ecological niche. The Precambrian explosion seems to be over.

The environment directs evolution. It was good to walk around the exhibits and be reminded of how different the HPC environment is from desktop parallelism, and how TBB differs somewhat in its focus compared to classic HPC.

Though the supercomputers seemed dully alike, there was a corner with "disruptive technologies". Any of these could radically change the environment, and thus future evolution of computers. Four of them were based on using different physics than traditional computers:

It will be interesting to see which of these technologies survive and how they mutate, and which ones disrupt the ecosystem.

Categories: Parallel Programming, Threading Building Blocks

Comments (9)

November 18, 2007 2:50 AM PST


UX-admin
"The Fortran dinosaur roams freely in HPC land."

As well as he should, for as long as Fortran programs and Fortran compilers produce the fastest binary code.

I wish we learned Fortran at the university instead of Java. I wish there were more people in the IT industry which knew Fortran.
November 18, 2007 12:08 PM PST

Arch Robison (Intel)
When I was working on KAI C++, our vision was to make C++ as fast as Fortran. We, in conjunction with some smart metaprogrammers, were closing in. See http://www.oonumerics.org/blitz/benchmarks . Alas, after Intel acquired KAI, no company continued to pursue this vision. In principle, C++ with the C99 keyword <code>restrict</code> enables about the same degree of optimization as Fortran, albeit there are still some problems because of the lack of true multidimensional arrays in C++.
November 20, 2007 12:31 AM PST


Xavier Warin
I'm a dinosaur (former fortran developper) using MPI for my soft. In fact i use both TTB and MPI. I was a KAI C++ user, and i developp everything using blitz. I don't think the industry is ready to developp chips with hundred of cores inside. So the best solution for the next years is MPI AND multi thread (i moved from boost::thread to tbb this summer)
Question : can we use TBB with xls compiler ?
November 20, 2007 10:42 AM PST

Arch Robison (Intel)
You mean the spreadsheet compiler at http://www.exceltranslator.com ? That's an intriguing thought, but I have not tried it.
November 20, 2007 10:44 PM PST


Xavier Warin
Sorry i wanted to mean xlc (IBM c++ compiler). Our soft run on Blue Gene machine.
But i didn't know about this spreadsheet compiler. I will ask people who do a lot of excel to test it.
November 21, 2007 2:17 PM PST

Arch Robison (Intel)
Urs von Matt contributed a TBB patch for AIX that deals with the weak memory consistency model on the Power architecture. See http://softwarecommunity.intel.com/isn/Community/en-US/forum..... 41979.aspx . Those changes will be integrated into the next developer release. Because the patch was for AIX, I do not know whether it is relevent to Blue Gene or not. What OS does Blue Gene run?
November 22, 2007 2:41 AM PST


Xavier Warin
It is a modified (i think) Linux OS.
November 26, 2007 2:47 PM PST

Arch Robison (Intel)
I read up on Blue Gene at http://www.supercomp.org/sc2002/paperpdfs/pap.pap207.pdf . It's a distributed memory architecture, and even on a given node, the two cores are not cache coherent. So TBB won't work for it. Sounds like MPI is the only practical way to go for Blue Gene.

When we first designed TBB, we discusded whether to support distributed memory architectures or not. The consensus was to not support distributed memory, because of the much higher burden on the programmer. E.g., having to marshal complex data structures. That high burden is appropriate for programming multi-million dollar HPC machines, but not for the kind of desktop machines that we are targeting with TBB. Have fun programming it - I kind of miss programming the monster machines.
November 23, 2008 2:23 AM PST

shachris23
Total Points:
435
Status Points:
0
Green Belt
Hi Arch and Xavier..

Speaking of Blitz++, dont you guys think that it's a perfect (or almost perfect) array/matrix container that the C++ community could offer? I've gone through so many opensource array/matrix containers out there (Boost's multi-array, STL's valarray, SPUC/TNT, VSIPL++, StlSoft's pod_vector and fixed_array123d) that I think in terms of performance, intuitive ease-of-usage, and documentation, Blitz++ is probably the best we can get right now.

It would be really nice if Intel picks up/investigates/supports such library like Blitz++ so that the C++ community could finally have the de facto standard for array/matrix container (finally!).

C-style array has its merit in terms of performance...but I think parallelism and compiler optimization combined probably offset the maintenance, readability, AND extensibility cost we have to pay for using C-style array

Just my thought though...(btw, I'm not from Blitz++!)

Trackbacks (0)


Leave a comment  

To obtain technical support, please go to Software Support.
Name (required)*

Email (required; will not be displayed on this page)*

Your URL (optional)


Comment*