Wednesday, November 21, 2007

Parallel Application Performance and Tuning with OpenMP

I just had dinner with my old friend Ruud van der Pas, who works for Sun's developer tools organization. He is a world class expert in making parallelized applications scale, and recently gave a talk with a very amusing performance conversation.

Ruud is an advocate and expert in OpenMP, and has just published an excellent book on the subject. "Using OpenMP". Published by MIT Press. The work was done together with Barbara Chapman and Gabriele Jost. The ISBN numbers are ISBN-10: 0-262-53302-2 and ISBN-13: 978-0-262-53302-7.

Even if you aren't using OpenMP, the concepts for performance and scaling are the same for everyone...

Friday, November 16, 2007

Computer Measurement Group - CMG07 - San Diego - December 2-7

As usual I will be presenting at CMG07. I have attended every year since 1994, and its the place where I keep track of new developments in the performance management tools industry, as well as learning and sharing with my peers.

CMG moves around the US, last year it was in Reno NV, before that in Orlando FL.

On Sunday 2nd December there is a workshop day. I'm co-presenting (with Mario Jauvin) a half day tutorial on Capacity Planning and Performance Monitoring with Free Tools (for the third year). We updated our slides a bit more this year to track the latest versions of the free tools.

During the week I'm giving a new paper on Millicomputing, that introduces the concepts I have been discussing on my Millicomputing blog, and talks about some of the management challenges of managing large numbers of small computers.

I'm also giving a half day training class on Unix/Linux Performance Management, which is based on the materials I developed over many years in my books and talks. It is still somewhat biased towards Solaris since I know that better, but I have been adding more on Linux and AIX as that is the world I currently live in at work (Netflix runs RedHat Linux and AIX on IBM P-series) and in my Millicomputing sideline (I run Ubuntu on my development host and linux 2.6 on my gumstix).

The conference contains a wide range of content, there is:
  • a large vendor exhibition showing the latest tools, vendor presentations and user group meetings to talk about their next steps.
  • everything from beginner level introductions to deep mathematical theory.
  • coverage of networking, storage, CPUs, application level performance.
  • discussion of Linux, Solaris, AIX, Windows, Mainframe and all combinations
  • panel discussions on virtualization, service oriented architectures, scaling large sites
I hope to see some of my readers there. I used to give training classes for Sun on a regular basis, and this is now the main venue for me to present updates versions of those classes.

Tuesday, November 13, 2007

First look at Android and implications for the Homebrew MyPhone

Google's new Android SDK is a lot more than a Linux distribution, its a complete and documented application framework with developer tools support. The primary language for application development is Java, with a special runtime called the Dalvik virtual machine that is designed to run efficiently on a battery powered device.

The SDK is 55MB, there is available Eclipse support.

Sample applications include Google Maps, mail, webkit based browser and the usual Phone and PIM stuff. The user interface seems to be based on a new set of Java classes, but there is also direct access to the display in C/C++ using SGL for 2D and OpenGL ES for 3D, and audio and video players for things like mp3 and H.264.

From a first pass through the docs, a lot of work has gone into this already. It looks as if it should be portable
to a homebrew phone without much difficulty, and from then on, we are likely to be leveraging a much larger community than the other open alternatives. It appears that the current state of the OpenMoko project is that they have made some progress and have a somewhat usable toolkit written in Python, but that C/C++ development based on GTK+ is painful, and documentation is scarce. It looks to me as if Android has taken the same basic inspiration as OpenMoko, but with a much more professional execution, and with a Java based developer platform.

We will be discussing this at the Homebrew Mobile Phone club meeting on Wednesday. We are holding the meeting at Mozilla's offices and will also be discussing their work on a mobile version of the Mozilla browser.

Sunday, November 04, 2007

Leopard review, iPhone 1.1.2 release and the Google Phone

There is an excellent in depth review of Leopard at Ars Technica, it talks about the Core Animation feature which seems like a very powerful way of specifying device independent animation effects that will work on a desktop or (eventually) on an iPhone.

Now that Apple has got Leopard out, their next move is the UK launch of the iPhone on November 9th, and as I have mentioned before, there is some additional localization needed for this and it appears that this is going to be the main feature of iPhone 1.1.2 release. The UK press is starting to get its hands on the UK product, which is running 1.1.2. The main features are a fairly complete set of worldwide localized languages, a closing of the hole that is currently being used for hacking into the iPhone, and some local features related to the UK deal with O2 and The Cloud for WiFi access, and the UK iTunes music store. There doesn't seem to be any new applications in this release.

There has been a lot of speculation about Google releasing a set of phone applications or perhaps a complete phone OS. They have been working closely with Apple, so there may be some additional/optional iPhone applications coming directly from Google. However, there is currently no support for Java on the iPhone, and some of what Google has been doing is building a suite of Java based mobile applications, so this could be seen as a broadening of Google's mobile support. If Google decides to support a fairly generic mobile Linux (like OpenEmbedded) then it opens up their applications to OpenMoko and the homebrew mobile club's myPhone. What we have today from Google is three mobile applications:

Google Maps on the iPhone (which is probably a native re-write in Objective-C). Google Maps for everyone else (which is written in Java), and I think Google Maps for PalmOS also appears to be a native application. I've used this on Treo, Blackberry and iPhone. Its obviously based on the same backend web services but the user interaction is a little different on each.

Gmail reader, which I have used on Treo and Blackberry appears to be a Java based client. I'd like to see this on the iPhone, so I'm hopeful for a full function iPhone Gmail client.

YouTube viewer on iPhone. This looks more like an Apple application, running against the Google/YouTube web services, and required coordination to get the encoding standardized on H.264. It also supports the AppleTV. I suspect that Google will have a YouTube viewer for other platforms, probably written in Java. It could also be an mp3/music player.

The web browser is a problem that the iPhone has solved, but everyone else has a very fragmented approach, caused in part by lack of memory and CPU power on most phones. There are some open source projects that have got going recently to develop Mobile Mozilla, and there are more mature products like Opera. If Google has been working on its own mobile web browser, then they have been keeping very quiet about it.

Google's office suite is based on AJAX front ends and a back end set of web services that handle presentations, documents and spreadsheets. A mobile front end application could make these much more usable, and I would suspect an iPhone version and/or a more generic Java version could be in the works. The main problem with Google's existing online office suite is that it can't be used when there is no data connection. It would be much more useful to allow some subset of useful operations to work while disconnected.