I find the subject of fault tolerance and resiliency in computers quite interesting. It also very interesting to look into what kinds of faults actually do happen in the real world, and what impact they have. I recently found a couple of good sources on this. First of all, a paper from Super Computing 2012 by Fiala et al, called “Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing” (ACM Digital Library). One of its references was to a 2011 talk by Al Geist, “What is the Monster in the Closet”, which provided some more data on how common faults are.
The purpose of the free chapter is to provide a way to understand the style of the book – and hopefully lead people on to buy the whole thing to read it.
The paperback edition looks really nice, and the printed copies that I have had the honor to get have been very well made.
Another Summer vacation has come around, and as usual that causes a blog post or two on Summer tips and comments on places where I have been. This year, we went down to Denmark to visit the city of Billund, home to Legoland and Lalandia. Lalandia is an interesting mix of indoors activity center and camping village. We rented a house there for our vacation, and are overall very pleased with the place.
The call for papers for the third annual Swedish Workshop on Multicore Computing (MCC10) is now out! MCC is a nice venue for multicore research about everything from computer design to software and debug. It is fairly informal, but still attracts some good papers and provides good discussions. It is not restricted to Swedish submissions, in 2009 there were several international participants. I gave a keynote talk about multicore and Simics at last year’s MCC, and for this year, I am on the program committee and looking forward to many great submissions to review!
Edited on 2009-Feb-01, to include the link to the illustrated guide that really helps you get there faster. Thanks Simon! Also, promoted to front page, original post was put up on 2008-Nov-09.
Thanks to Simon Kågströms post (and the even better second-generation with screenshots) about using Eclipse for the Linux kernel, I have a much nicer work environment now for my ongoing work in learning Linux device drivers on PowerPC, which has helped me work my way through several hard-to-figure-out system calls. Continue reading “Eclipse Linux Kernel Indexing Works”
I just spent the first week of Summer vacation practising the Swedish national sport of home renovation. It seems that everyone is doing that all the time nowadays – it might be that I have reached the age of family raising where that becomes important, or it might be that it is a general trend that more people spend more time and money renovating their homes. I think it is the second case.
Anyhow, what we set out to do this year was to replace (most of) the twenty-year-old wooden decking on the backside of our small row house with a new one. This was quite an adventure, as we discovered all kinds of interesting designs and problems with the old decking structure. Problems, which do reflect on the realities of computer programming and simulation.
There was an interesting little note at the CodeMonkey blog… basically, the Linux kvm kernel hardware virtualization support system now works on IBM z series mainframes. Using the z architecture virtualization support in hardware. Nice to see some attention being put on non-x86 architectures. And a nice historical note that current x86 virtualization extensions were indeed inspired by the s/370 architecture from the mid-1970s. Cool.
I am scheduled to talk at the ESC SV 2008 in the technical program. In 2006 and 2007 my topic was Multicore Debugging, but this year I have changed to Using Simulation Tools for Embedded Software Development. The date is April 17, the time 8.30 to 10.00, and the place the San Jose Convention Center.
See you there!
Bill Murray of the “New Media Outlet” SCDsource has published one of the best articles that I have seen on the use of software simulators and virtual prototypes in industry. The examples in the article run from low-level code run on very accurate simulators all the way to very fast virtual systems that are used instead of actual hardware to train NASA operators. The article covers the end-user perspective and is not particularly oriented towards a particular vendor. It offers some nice insights into the expected and unexpected benefits that various companies have obtained from using simulators of various kinds. As well as some glimpses into the underlying technologies they have chosen, developed, and adapted.
A small tidbit that I found interesting due to the targeted platform. LinuxDevices reports that the VirtualLogix VLX-NI virtualization layer that used to run only on x86 platforms now also run on TI DSPs in the C64+ series. Basically, you put their virtualization layer on the DSP, and you can then on the same core run both a Linux kernel and a DSP/BIOS kernel. Thus supporting traditional DSP development and Linux-style development on the same core.
The new version of Trango’s embedded “secure virtualizer” for the ARM Cortex-A9 MPCore is an interesting solution in that it directly applies virtualization technology to the issue of migrating solutions (complete software stacks) from single-core to multicore. The details are a bit sketchy in just how this is done, there is some hardware support in recent ARM architectures, but a little bit of adaptation of a guest OS using paravirtual techniques are likely not a blocker. It also touches on security, implemented using ARM’s trustzone technology. All in all, I think this is a typical example of something that we are going to see much more of.
It just dawned on me recently (and it sure must have been obvious to those working with configuring AMP — Assymtric Multiprocessing Systems) that in an AMP setup, the operating systems involved actually know about each other and have to account for the fact that they are sharing a single processor chip with other operating systems. So you cannot just take two single-core operating system images from an existing multiple-processor (local memory) solution and put them on a single chip and things just work. You do need to prepare the boot process and find a way to nicely share the common I/O devices, timers, accelerator engines and other resources on the chip. This is materially different from a virtualized setup.
The SICS Multicore Day August 31 was a really great event! We had some fantastic speakers presenting the latest industry research view on multicores and how to program them. Marc Tremblay did the first presentation in Europe of Sun’s upcoming Rock processor. Tim Mattson from Intel tried hard to provoke the crowd, and Vijay Saraswat of IBM presented their X10 language. Erik Hagersten from Uppsala University provided a short scene-setting talk about how multicore is becoming the norm.