Parallel and Multi-Core Computing with C/C++

5 Posts tagged with the supercomputing tag
0

The OpenMP Birds-of-a-Feather session at SC08 was very well attended. The room was full to overflowing, with approximately 60-80 people. while OpenMP had BOFs at SC in prior years, this is actually the first year that OpenMP has had a Booth on the Exhibitor floor as well.

The BOF had many elements, including what is new in OpenMP 3.0. They were:
1. Welcome and summary of ARB news
- 5 mins
- Larry Meadows

2. The three greatest things about OpenMP 3.0 and the three most
important things left out of OpenMP 3.0
- 15 mins
- Tim Mattson

3. Tasking
- 10 to 15 mins
- Alex Duran

4. Extending the OpenMP profiling API for OpenMP 3.0
- 10 to 15 mins
- Oleg Mazurov

5. Announcements:
- 5 mins total
- IWOMP'09 announcement - Matthias Mueller
- OpenMP book examples - Ruud van der Pas

6. Panel "How to kill OpenMP by 2011"
- 35 mins
- Moderator:
Larry Meadows
- Panelists:
Tim Mattson
Bronis de Supinski
Christian Terboven
Jesus Labarta

7. Wrap up
- 5 mins
- Larry Meadows

For a description, you can find lots of detail here, including a downloadable summary card of the 3.0 Specification.

http://openmp.org/

I met a number of people during my afternoon session manning the booth on Wednesday 2-6 pm, including one of the original founder of OpenMP, an instructor on using OpenMP in graduate courses as well as a consultant, among many others. I invite them all to drop me a note here so we can continue our discussion.

One thing that was surprising to many folks was the many compilers that already have 3.0 implementation, despite the specification ratifying only in May 2008. The companies with 3.0 implementation includes IBM, Sun, PGI, and soon Intel. Note I am just reading this from the net and have no insight into other company's or even my own company's release schedule. GNU should have something by 4.4. Same disclaimer.

One thing that happened at the OpenMP BOF was a panel discussion on How to Kill OpenMP by 2012. This is kind of a fun session, especially at the end of a long day to not take yourself too seriously. The point is to showcase all the wrong ways in spreading a de-facto standard.

I have had some experience working with language designs through my various roles as standard rep, and compiler writer. So I thought I would give my $0.02 here on How to Kill OpenMP by 2012:
10. Don't implement the specification as stated.
9. Make it impossible to nail down ambiguities by having no way of addressing defects.
8. Ignore the user forum or suggestions
7. Add everyone's favorite feature, no matter how marginally useful.
6. Make the process as non-transparent as possible, so no one knows when you are ratifying, or even what you are doing.
5. Debate endlessly, on anything, not necessarily having anything to do with the language.
4. Design a feature as completely as possible before releasing it
3. Make no concession when taking a stance on objecting to someone's feature.
2. Form close-nit elitist groups and follow the NIH syndrome.
1. Don't organize any meetings, and when there are meetings, don't follow any rules.

Seriously, I have not found this to be a problem in any of the committees that I am a part of. Otherwise, we would not have made any progress. But we can always do better.

0 Comments Permalink
0

I should include an obligatory photo of the OpenMP Booth with our CEO Larry Meadows. Many members worked tirelessly, especially Larry at making sure the Booth was put up, taken down and staffed properly.

We also met many people who specifically dropped by to see what was going on, in this first year where we had a booth.

Many Thanks.

IMG_1422.JPG

0 Comments Permalink
1

Of course, we are very proud that the new list for TOP500 computers has been released here at SC08 on Tuesday at an evening BOF.

http://www.top500.org/blog/2008/11/20/top500_bof_session_slides_now_available

This is the list of the fastest supercomputers in the world. IBM's Roadrunner has been on this list for some time.

The rumor before the conference was whether Oakridge's Cray Jaguar would catch a RoadRunner. Now we know that a Jaguar is not faster then a RoadRunner.

http://www.top500.org/lists/2008/11/press-release

Also of importance in today's energy conscious world, is that IBM's RoadRunner is also #3 on the TOP500 GREEN list of supercomputers:

http://www.green500.org/lists/2008/06/list.php

1 Comments Permalink
0

On Sunday, I attended the OpenMP Tutorial hosted by some of my colleagues from the OpenMP committee, Tim Mattson and Larry Meadows. It was an excellent tutorial, full of features and pointing out the behavioral differences between OpenMP 2.5 and 3.0. Tim has been doing this tutorial for almost 20 years and Larry, as the OpenMP CEO has been involved in this for the same amount of time.

I must point out that IBM xl C/C++ 10.1 compiler for AIX and Linux both have support for OpenMP 3.0, in addiiton to the compilers mentioned during the tutorial. In fact, this compiler was one of the first to have support for OpenMP 3.0 in the industry since the ratification of the specification in May, 2008.

http://www-01.ibm.com/software/awdtools/xlcpp/aix/
http://www-01.ibm.com/software/awdtools/xlcpp/linux/

You can get a trial version from the link above.

There were a few C++ specific questions. During the discussion on OpenMP memory model, one questions involves how volatile in C/C++ is used in multithreaded program.

The C++ 0x Standard will clarify that the volatile keyword continues to have nothing to do with multithreading. It merely indicates that something from the environment may change the value. The role of an atomic variable will be used to indicate that another thread may change the value of this variable. It is possible to say that a variable is an atomic volatile to indicate that something from the environment AND another thread may change the value. The C standard, when it supports concurrency in C1x will likely adapt the same meaning.

So in short, C++ Volatile !=Jave volatile and C++ Volatile!= C++ atomic. During C++0x concurrency deliberations, we discussed at length and felt that there is too much history and presumed meanings involved with volatile. In fact, it may even have different meanings varying from compilers to platforms. So it was felt wiser to leave it alone, allowing implementers to retain whatever meaning they are used to, and adapt a new way of naming truly atomic types.

I hope this helps to answer one of the question regarding the role of volatile.

There was another question about how OpenMP 3.0 changed the role of what constructor (default, copy, assignment) is called by each of the private/threadprivate/first/lastprivate variable. Tim was right that we worked very hard to clarify this aspect, but the rules while somewhat intuitive is still fairly tedious to enumerate, given the many ways that C++ does initialization. I will clarify that in a subsequent post.

0 Comments Permalink
0

Supercomputing 08

Posted by Michael_Wong Nov 15, 2008

Hi, all. This is Michael Wong. I am at the International Conference for High Performance Computing, Networking, Storage and Analysis, commonly called SC 08, courtesy of IBM

http://sc08.supercomputing.org/

http://sc08.supercomputing.org/images/sc08_logo.jpg

I am specifically here to participate in the OpenMP sessions, where we have a booth, a BOF, and other discussion panels.

Over the next few posts, I hope to bring you some of the exciting events that are going on at this conference.

Looking at the program, there are a number of sessions aimed at Parallel Computing. If there are sessions you would like me to report from, drop me a note through this post and I can see what I can do.

On the flight down, let me just say that the last direct flight from Toronto (where I come from) to Austin was like a reunion of technologists as nearly everyone on the plane was attending SC 08. I recognized people from almost every software/hardware company that is active in this area. It was an interesting high-tech flight.

Normally, there is no direct flight from Toronto to Austin, and it takes multiple stops to get here. I am sure they didn't put together a direct flight just for us for SC 08.

(Actually, I learned on the plane that the direct flight started a year ago by Air Canada!)

0 Comments Permalink
Bottom Banner