C/C++ and Fortran

The View (or trip report) from the 2011 ADC C++ conference

By Archive User posted Wed May 18, 2011 04:13 AM


Originally posted by: Michael_Wong

Hi all, I was invited to give two talks on C++0x and Transactional Memory at the newly formed European conference on native C++ at Prien am Chiemsee, near Munich in Germany.

Although I was invited to give a talk, I do not know a lot about this conference. However, I know a lot more more about the background after talking with the organizers. It turns out that this is a conference that is split off from another conference which dealt with managed C++. There seems to be a lot of people still with keen interest in native C++ and this conference is the response to that. 

Here are some of the attendees' blog posts on why a Native C++ conference is needed (it is in German, but you can easily auto translate it):

The timing of this conference could not have been better as it is the first conference (AFAIK) where the announcement for the C++0x FDIS was first announced publicly. Of course, many people including Herb Sutter and I have already blogged about the FDIS shipping in March in the Madrid C++ Standard meeting. I was also invited to give a video interview by Christian Binder on the progress of C++0x and the future outlook.

The talks were of uniformly high quality with discussions and workshops on OpenMP, Cloud, as well as many parallel tool chains. I attended quite a number of them and my weak German was able to keep up because some slides were in English, and most technical terms are in English anyway.

The keynote speaker was by Boris Jabes, the Microsoft C++ development manager who admitted that the future for native C++ at Microsoft should be brighter, but espoused the importance of parallel programming for native C++ in the future. I followed his talk with the announcement of the new C++0x Standard which is now tentatively named C++11, unless it is C++12. (due to possible delays caused by the final National Body vote). Boris talked a lot about future programming language and hardware models and the need to support smart devices. I followed with my talk to the full plenary group indicating where C++0x has features that enable support for concurrency and ROMable devices. These include range-based for, auto inferences, decltype, constexpr, uniform initializer lists and lambdas.

So how do these features help with parallelism even though they are not directly part of the C++0x concurrency package?

I claim that they raise abstractions and enable parallel programming where you do not need to bother with the low-level details of how things are done. They also make it possible to better support generic programming by eliminating all the corner cases that previously had to be dealt with.

I recall how one attendee was horrified that having just learned Hello World will now have to learn the brave new Hello Concurrent World. This is the new form of Hello World that would be offered with the new thread support in C++0x.

My Transactional Memory(TM)  talk revolved around the about-to-be release 1.1 draft of the Draft Software Transactional Memory Specification for C++. There was great interest in learning about how the internals of TM work, so I added an add-on session to talk about contention management, conflict detection, nesting, and isolation. I love all the great questions that were asked to understand better about where is TM's hype vs reality cycle.

I participated in a panel discussion on the future of parallel programming and C++. The other members of the panel were Bernd Marquardt, Boris Jabes, Christian Binder, Cosmin Dumitru, Hans Pabst, Matthias Wedemeyer, and Michael Klemm. The panel was lead by one of the key contributing organizer from Intel, Edmund Preiss.

I answered many questions regarding the timing of the arrival of the C++0x FDIS and when it will be accessible to the public (which will be end of this year or early next year). Not surprisingly, many people wanted to know when compilers will finish. Naturally I can't say anything about IBM or any company's progress (nor would I know), but I pointed out that most 0x features have already been implemented in some compiler, and that the industry group generally agrees that GNU's C++ compiler will probably be the first to finish as it is already almost 90% complete, although the library support is still being worked on. The commercial compilers will likely complete afterwards.

I want to thank the organizers ppedv (www.ppedv.de) for a very professionally run conference in a beautiful setting in the Bavarian Alps. They use a state-of-the art voting system with touch monitors in the foyer to give feedbacks to the speakers after each session. The speakers can look at their own feedback immediately online. Here is my final scores from my talks from those who actually entered the results, although far more people actually attended the talks:

The feedback is based on this scale:

o    Vortrag (=session in general)
o    Rhetorik (=speaking ability)
o    Fachwissen (=Know-how of the presenter)
1 very good ----- 7 very bad
For Level the scale is the following:
1 is too heavy             4 is good             7 is too easy
 I wish to thank those who gave me this and other feedbacks.
Here on facebook: http://www.facebook.com/pages/ADC/145344668868269 you can find links to some of the pictures taken by the conference organizer.

There is talk of forming a continuing conference on Native C++. I think that would be an excellent idea. This conference has the potential of forming into a premier C++ conference event for Europe, similar to Boost for North America. I will be at BoostCon the following week.