Linked by Amjith Ramanujam on Wed 20th Aug 2008 19:37 UTC
General Development DevX interviewed Bjarne Stroustrup about C++0x, the new C++ standard that is due in 2009. Bjarne Stroustrup has classified the new features into three categories Concurrency, Libraries and Language. The changes introduced in the Concurrency makes C++ more standardized and easy to use on multi-core processors. It is good to see that some of the commonly used libraries are becoming standard (eg: unordered_maps and regex).
Permalink for comment 327622
To read all comments associated with this story, please click here.
RE[8]: what is C++ best for?
by ashigabou on Fri 22nd Aug 2008 07:00 UTC in reply to "RE[7]: what is C++ best for?"
ashigabou
Member since:
2005-11-11


Currently, all oil and gas exploration goes through several steps that are computationally time consuming. Seismic surveys need to be processed several times, and a turn around time of 6-12 months is the average (depending on the algorithms that are applied). These algorithms are tweaked and optimized time and time again, and are currently run on clusters of e.g. 5000 nodes and upwards to achieve appropriate turn around times.

A reduction in performance of a factor of 2-3 (as you mentioned yourself that "nobody cares about") would imply that the oil and exploration world wide would go down with the respective amount per year. That's not tolerable.


That's a really specific example. You will always find areas where you need to squeeze as much power as possible. Like I said, C++ still is the best (almost only) choice for some things.


In fact : Take a look at the plethora of code that is being implemented and ported to FGPAs, CUDA/TESLA/GPGPU and other acceleration devices. Jacob is entirely correct in his assumption that complexity is worth the hassle. Actually, the hassle to have complex yet high performance code is probably offset by billions of dollars.


But that's totally different: once you get optimization of GPGPU, you get an abstraction which is usable from any language. Which is not the case of template (you can't really reuse template from any other language). Of course good, high performance building blocks are important, but that's because they can be used a building blocks.


Again, factors of 2-3 or more aren't acceptable.


Of course it is acceptable, because it would have a huge cost to do everything as fast as possible. I mean 2-3 speed factor is what you could get by using ASM instead of C, most of the time (heck, you can get this different just by using a different compiler on the exact same code), and those stuff are not mostly written in ASM anymore.

A lot of image processing is done with matlab on windows running internally on more and more machines, talk about inefficiency. You have some bottom line to reach to make your software fast enough, of course, but this bottom line is more and more accessible without using a lot of compiled code. The question in industry is time from design to market to getting the result. Fast software is just part of the equation, which loses ground to the design phase/production delivery significance.

C++/C is more of a legacy than a critical feature of many image processing stuff out there IMO.

Reply Parent Bookmark Score: 1