November MPI Forum in Portland

They should have called the place “Rainland” but ok, I brought an umbrella :) .

This week’s MPI Forum was very interesting! Marc Snir presented his convincing hybrid proposal. It’s really nice and orthogonal to the current standard. It needs some minor polishing and an implementation and seems ready to go.

We had some incremental discussions in the collectives working group but nothing very exciting. I think it is time to look for applications/systems that can benefit from the sparse collective proposal. Sameer Kumar sent me a very interesting paper which seems to be what we need! We also assimilated the Topology chapter into the collectives working group (now called collectives and topology working group — short colltop :-) ).

The RMA discussions were helpful this time and motivated me to summarize all ideas that floated in my head into a patch to the MPI-2.2 standard document during the weekend. I’ll post it to the RMA list and will see what happens. I think the RMA interface in MPI-2.0 is rather elegant and only needs some minor tweaks and some semantic changes to make it useful.

The MPI-3 discussions were going in circles (again). We went back and forth if we should call our next release (which contains nonblocking collectives and probably support for hybrid environments) MPI 2.3 or MPI 3.0 draft. We didn’t come to any conclusion. The only decision we made (I think, we didn’t vote though) is that we don’t want to break source compatibility in the next revision yet. I’d like to call it 2.3 then because having a 3.0 draft means that 3.0 will be a similar release and we would probably break compatibility in 3.1 which doesn’t seem to useful. 2.3 also gives the user a better impression that it’s not a revolutionary new thing (e.g., fault tolerant). However, I don’t have a too strng opinion, I just have some users who want nonblocking collectives in a release that is at least source compatible.

Another really annoying thing is the whole MPI_Count story. I have to admit that I was in favor of it at the beginning because abstraction seems right to me, however, I am now really against it due to several reasons: (1) the workaround is trivial and causes negligible overhead, (2) it breaks source compatibility which is a total no-go, and (3) it causes all kinds of Fortran 77 problems (it seems that this is the reason why int was selected in the first place). Could we just withdraw the ticket please?

ICPP 2009 in Vienna

I presented our initial work on Offloading Collective Operations, which is the definition of an Assembly language for group operations (GOAL), at ICPP’09 in Vienna. I was rather disappointed by this year’s ICPP. We had some problems with the program selection already before the conference (I’ll happily tell you details on request) and the final program was not great. Some talks were very entertaining though. I really enjoyed the P2S2 workshop, especially Pete Beckman’s keynote. Other highlights (in my opinion) include:

  • Mondrian’s “A resource optimized remote-memory-access architecture for low-latency communication” (I need to talk to those guys (I did ;) )
  • Argonne’s “Improving Resource Availability By Relaxing Network Allocation Constraints on the Blue Gene/P” (I need to read the paper because I missed the talk due to chaotic re-scheduling, but Narayan’s 5-minute elevator pitch summary seemed very interesting)
  • Prof. Resch’s keynote on “Simulation Performance through Parallelism -Challenges and Options” (he even mentioned the German Pirate party which I really enjoyed!)
  • Brice work with Argonne on “Cache-Efficient, Intranode Large-Message MPI Communication with MPICH2-Nemesis”
  • Argonne’s “End-to-End Study of Parallel Volume Rendering on the IBM Blue Gene/P” (yes, another excellent Argonne talk right before my presentation :) )

Here are some nice pictures:
vienna1
My talk at the last day was a real success (very well attended, even though it was the last talk in the conference)! It’s good to have friends (and a good talk from Argonne right before mine :-) ). Btw. two of the three talks in the (only) “Information Retrieval” session were completely misplaced and had nothing to do with it, weird …

vienna2
My co-author, friendly driver, and camera-man and me in front of the parliament.

EuroPVM/MPI 2009 report

This year’s EuroPVM/MPI was held in Helsinki (not quite, but close to it). I stayed in Hanasaari, a beautiful island with a small hotel and conference center on it. It’s a bit remote but nicely surrounded by nature.

The conference was nice, I learned about formal verification of MPI programs in the first day’s tutorial. This technique seems really nice for non-deterministic MPI programs (how many are there?) but there are certainly some open problems (similar to the state explosion of thread-checkers). The remainder of the conference was very nice and it feels good to meet the usual MPI suspects again. Some highlights were in my opinion:

  • Edgar’s “VolpexMPI: an MPI Library for Execution of Parallel Applications on Volatile Nodes” (indeterminism is an interesting discussion in this context)
  • Rusty’s keynote on “Using MPI to Implement Scalable Libraries” (which I suspect could use collectives)
  • Argonne’s “Processing MPI Datatypes Outside MPI” (could be very very useful for LibNBC)
  • and Steven’s invited talk on “Formal Verification for Scientific Computing: Trends and Progress” (an excellent overview for our comunity)

The whole crowd:
image_preview

Unfortunately, I had to leave before the MPI Forum information session to catch my flight.
Videos of many talks are available at Videos. All-in-all, it was worth to attend. Next year’s EuroMPI (yes, the conference was finally renamed after the second year in a row without a PVM paper) will be in Stuttgart. So stay tuned and submit papers!

Hot Interconnects (HOTI’09) in New York

I attended the Hot Interconnects conference for the second time and it was as great as last year! This conference is rather convincing because it is a single-track conference with only a small number of highly interesting papers. And still, the attendance is huge, unlike on some other conferences where people only come when they have to present a paper and the audience is often sparse.

I gave a talk on static oblivious InfiniBand routing which was well received (I received a lot of questions and had very interesting discussions, especially during the breaks). Other highlights of the conference (in my opinion) were:

  • Fulcrum’s impressive 10 GiB FocalPoint switch design (the switch has full bandwidth at 10 GiB/s line-rate, real 10 GiB/s not 8 ;) )
  • A paper about the implementation of collective communication on BG/P (I was hoping for a bit more theoretical background and a precise model of the BG/P network)
  • Some talks on optical networking were rather interesting
  • The panel about remote memory access over converged Ethernet was rather funny. Some people are seriously trying to implement the <irony> simple and intuitive </irony> OFED interface to Ethernet. I am wondering which real application (not MPI) uses OFED as communication API?

Here are some commented pictures:
ny1
View from the Empire State Building (credits go to Patrick!).

ny2
Another view from Empire State, the red arrow points at the conference location (the Credit Suisse Palace).

ny2
Times square (I think).

ny2
The Empire State “tip”.

ny2
Another downtown view.

ny6
The Empire State foyer.

ny2
I feel like in Paris ;) .

ny2
We saw this scary building without windows as we walked from The Empire State down to the World Trade Center Site (weird).
ny9
*yeah* (seen next to the WTC site).

ny2
All we could see from the WTC site. It was not worth the long walk … but we talked anyway most of the time so this paid off.

ny2
The Wall Street (should be closed immediately!).

ny2
The subway is rather scary … seriously, New York!? Why do they have such a bad subway …

ny2
View from my (extremely cheap) hotel room. It was awesome, really!

ny14
The Credit Suisse Palace from the inside. Somebody has too much money (still).

The computer science publication system revisited

Sometimes I get to hear that computer science is not a real science, and sometimes I believe it myself. Science has many definitions and often refers to the scientific method that is used to systematically acquire and disseminate new facts about nature. I think in this sense, computer science has to be split in an applied part (engineering) and a theoretical part (mathematics). I worked on the engineering side for several years and reached the point where I am disappointed about its state. It seems to be less systematical than it needs to be, often focusing on mere implementation details in system xyz while forgetting about generality and nature. I think the main problems are missing reproducibility, the importance of conferences, the current review system, and the self-imposed pressure on the number of publications. This often leads to rushed publications only containing the “least publishable increment” or even wrong results. I also see many conference presentations that don’t present anything new but merely implemented something that is clear to work in theory. Rather than “uh, that’s a nice idea”, I feel more like “oh yes, they’ve implemented xyz with technology zyx”. I am also following the mathematical side of computer science and I have to say that there are different issues. It is good that the general state of the publication system in computer science is being discussed. I agree to most of the points from Lance Fortnow and Moshe Vardi. Both reports are worth a read! The usenix collected wisdom on the review system are also interesting! The last very relevant link deals with the evaluation of individuals in computer science. I’ll close by citing a note on double-blind reviews.

[Update] An excellent paper: “Stop the Numbers Game” by David Lorge Parnas

The day a department died

The Computer Science Department at Indiana University is no more. I was told that it was one of the oldest CS departments in the US. Now, the webpage says “The Computer Science Department is now School of Informatics and Computing” which is not correct. It’s actually only division in the school formerly known as “School of Informatics”.

The department seems to have turned into the “Computer Science Program”. Some people ask me what the difference is to the “Informatics Program” — I honestly don’t know.

I’ll keep the old logo for reference
cs_circuit

Here’s the new one
computerscienceprogram

Some mourning folks:
mourning

IPDPS’09 report

I’m just back from IPDPS 2009. Overall, it was a nice conference, some ups and downs included as usual. I had several papers at workshops from which I had to present three (I was planning on two only, but one of my co-authors fell sick and couldn’t attend). They were all very well received (better than I hoped/expected).

I’m attending the CAC workshop since several years and have been surprised pleasantly each year. It only has high-quality papers and about 50% acceptance rate (be very careful with this metric, some of the best conferences in CS have a very high rate ;) ). This year’s program was nicely laid out. The keynote speaker, Wu Feng, presented his view on green computing, and my talk was next. It was a perfect fit — Wu pretty much asked for more data, and I presented the data of our (purely empirical) study. My other talk presented the work on NBC of the group in Aachen – nicely done, I like the idea with the Hamiltonian path numbering but am wondering if one could do better (suggestions for a proof idea are welcome!).

Some talks were remarkable: Ashild’s talk about “Deadlock-Free Reconfiguration” was very interesting for me. Brice’s talk about “Decoupling Memory Pinning from the Application” reminded me a bit of the pipelined protocol in Open MPI, I’m not sure if I like it or not because it seems to hinder overlapping of computation and communication. The last talk about improving the RDMA-based eager protocol is a hybrid between eager and rendezvous for often-used buffers (each buffer has a usage-count and is registered after some number of uses). However, the empirical result data seemed to indicate that this only makes sense for larger buffers. And I agree to D.K. Panda’s comment that one could just decreases the protocol switching point for all considered applications. However, the idea could be very interesting for some applications with varying buffer usage.

It was in Rome this year and I don’t like Rome. I think it’s the dirtiest European city I know, and I had to stay for a week. The catering at IPDPS was bad as usual (only not-so-good cookies in coffee breaks and a unspectacular dinner). But I wasn’t there for the food anyway.

The main track was ok. I didn’t agree with some of the best paper selections. The OS jitter talk was interesting and contained some new data, however, it wasn’t clear what the new fundamental findings were. I suppose I have to read the paper. Some other theoretical papers seemed interesting, but I also need to read the articles. The panel was nice, I mostly agreed to Prof. Kale who stated that caches are getting much less important and Prof. Pingali who wants to consider locality. I seriously wonder what happened to all those dataflow architectures – I think they are a worthwile alternative to multicore systems. I was following Nir Shavit’s activities already, and I liked his keynote presentation about TM, even though there are obvious open problems.

Friday’s LSPP workshop was very interesting too. I’ve been the second year in this workshop and like it a lot (large-scale processing seems to gain importance). I enjoyed Abhinav’s talk who perfectly motivated my talk (it was right after his) and I enjoyed the lively discussion during and after my talk (sorry for delaying the schedule). I’m also happy to see that there is now an asynchronous profiling layer for the cell messaging layer (mini-cell-MPI).

I did not enjoy the flight back … Italy is awful (train runs late, airport was overcrowded and super-slow, boarding was a catastrophe because I was on the waiting list until 5 minutes before departure, …). But I was able to upgrade to first class in the US so that my last flight was at least comfortable. Here are some pictures from a five hour walk through Rome. We didn’t really pay attention because we were busy chatting :) :

spanish_steps
The Spanish steps (don’t ask … it was on the map).

river
Some random river …

me
Yep, I was there (we think it’s the Vatican in the background).

collosseum
That’s simple — the collosseum (and some arch).

balcony
The view from my hotel. I couldn’t stay in the conference hotel because it was overbooked. I wasn’t mad because this one was significantly cheaper and nicer :) .

Commencement (finally)

Yes, I had my commencement yesterday. I know, I got the Ph.D. six months ago, however, I didn’t have the time to visit last year’s commencement but still wanted to do it. I didn’t know what it would be like but it’s actually kind of fun (my roommate said “everybody looks like in Harry Potter” – and she was right). I am now officially endorsed (by the President of Indiana University) to carry the title “Doctor of Philosophy in Computer Science”. It’s funny, my advisor Prof. Lumsdaine had the honor to “hood” me officially (he montaged the big hood thing on my back which apparently is the sign of a Ph.D.).

Here’s a picture of my advisor and me in the ceremony’s apparel:
front

The best part (the doctoral hood in cream&crimson (IU’s white&red)) is unfortunately on the back:
back

The quintessence is that it’s much much cooler than in Germany where I received my Diplom (cf. Masters) in an old office from the secretary. Even winning the Best Student Award was much less spectacular (and I had to bring my own clothes). Here is a picture from the award ceremony – on the right is the Chancellor (cf. President) of TU Chemnitz:
rektor_small

I’ll try to get a picture from IU’s president in full apparel :) .