I have read a few news items and blog posts recently about how various types of software running on top of virtual machines and emulators have managed to either break the emulators or at least detect their presence and self-destruct. This is a fascinating topic, as it touches on the deep principles of computing: just because a piece of software can be Turing-equivalent to a piece of hardware does not mean that software that goes looking for the differences won’t find any or won’t be able to behave differently on a simulator and on the real thing.
There is a new post at my Wind River blog, about the Simics Agent feature that we included in Simics last year. Took a while to get a blog out, as I had so many other things to write about. It was also nice to get a video demo out to accompany the post. The most interesting part about the Simics Agent to me is how much more convenient it is to script a target with an agent on the inside. Too bad that also changes the target software stack a bit — but I do think that that is OK most of the time. As always, the solution has to be designed with the end goal in mind, and there is no absolute right or wrong here. Read the blog post for more details!
I just got hit by a strange behavior in Microsoft word: the comment and format change “balloons” that pop up next to the text when using change tracking and viewing changes started to overflow their allocated balloons. The font used look very funny too. The issue was that a document contained a format specification for these balloons that used a font not present on my system, which in turn caused Word to use something like Courier to display it. Which did not look nice. However, it was easy to solve.
In a dusty bookshelf at work I found an ancient tome of wisdom, long abandoned by its previous owner. I was pointed to it by a fellow explorer of the dark arts of computer system design as something that you really should read. The book was “Fortress Rochester”, written by Frank Soltis, and published in 2001.
I just read an article from IEEE Annals of Computing history about the COMIC Color-Matching Analog computer built and sold by Davidson and Hemmendinger, a US firm. It seems the computer is pretty well known inside the colorant industry, actually, and it provides an interesting example of how to do a good-enough solution to break open the market – while leaving the user in control of the process to build faith in the approach.
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.
I am using the “Webex productivity tools” at work to quickly schedule and start meetings from within Outlook. It really is a very useful piece of software for those of us that do quite a few Webex conferences each week. However, it came with one annoying side effect: little webex tabs started to appear on select application windows. In particular, on top of Skype windows.
When mobile phones first appeared, they were powered by very simple cores like the venerable ARM7 and later the ARM9. Low clock frequencies, zero microarchitectural sophistication, sufficient for the job. In recent years, as smartphones have come into their own as the most important computing device for most people, the processor performance of mobile phones have increased tremendously. Today, cutting-edge phones and tablets contain four or eight cores, running at clock frequencies well above 2 gigahertz. The performance race for most of the market (more about that in a moment) was mostly about pushing higher clock frequencies and more cores, even while microarchitecture was left comparatively simple. Mobile meant “fairly simple”, and IPC was nowhere near what you would get with a typical Intel processor for a laptop or desktop.
Today, that seems to be changing, as the Nvidia Denver core and Apple’s Cyclone core both go the route of a few fat cores rather than many thin cores.
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.
At the Wind River corporate blog, there is a blog post that I wrote about continuous integration and Simics. At the Elsevier Computer Science Connect blog, there is also a blog post about continuous integration and Simics that I wrote. These two texts are essentially the same, and I had the good fortune to get it posted in multiple places. The reason it is up at Elsevier is to help promote our soon-to-be-released book at about virtual platforms and simulation (and a little bit about Simics), and hopefully we will reach a larger audience with both messages: CI with Simics is a great idea, and the book is a great book to buy.
I just found and read an old text in the computer systems field, “Why Do Computers Fail and What Can Be Done About It?” , written by Jim Gray at Tandem Computers in 1985. It is a really nice overview of the issues that Tandem had encountered in their customer based, back in the early 1980s. The report is really a classic in the computer systems field, but I did not read it until now. Tandem was an early manufacturer of explicitly fault tolerant and highly reliable and available computers. In this technical report Jim Gray describes the basic principles of fault tolerance, and what kinds of faults happen in the field and that need to be tolerated.
Recently, I finally got to ride (if that is the right word) a Segway two-wheeler. Quite fun, actually. But when thinking hard about it, it really seems like a pretty pointless invention. Cool technology, fantastic control system design and programming – but still, it does not solve any real problem. As a product manager, my mind tends to view new things with an eye toward “what is the problem they are trying to solve” rather than how fun, attractive, or well-designed they are. Sometimes, good design is the point, of course. However, in this case, we are talking about a transportation device, and as such, the question is where it fits.
At the ISCA 2014 conference (the biggest event in computer architecture research), a group of researchers from Microsoft Research presented a paper on their Catapult system. The full title of the paper is “A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services“, and it is about using FPGAs to accelerate search engine queries at datacenter scale. It has 23 authors, which is probably the most I have ever seen on an interesting paper. There are many things to be learnt from and discussed about this paper, and here are my thoughts on it.
During my vacation, a blog post went up on the Wind River blog with an interview with Hyungmin Cho, a researcher at Stanford. Hyungmin has done some seriously heavy and cool work with Simics, using it together with a circuit-level simulator to investigate error resiliency in hardware devices, and how errors propagate from hardware into the software. As part of this process, he has setup an automated test system using Simics, and this system has done more than a million automated Simics runs. That is an insane number – I have been using Simics for twelve years now, and if I had used it every day for all these years, I would have had to start 10 runs per hour, every hour of the day. It shows the power of automation along with parallel runs on clusters of machines – once the setup is automated, you can pour on the volume.
This is another vacation-related post, of the kind that I do every once in a year or so. I recently came back from a family vacation to Gothenburg (Göteborg in Swedish), where I had some time to visit a few great museums dealing with history, and in particular with military history and the history of technology.
For the past six months I have not been doing much blogging at all, neither here nor on the Wind River blog. The reason is that I have been directing my writing energy into writing a text book about Simics together with Daniel Aarno at Intel. Last year, Daniel and I worked on an Intel Technology Journal issue on Simics. The ITJ issue was kind of a first step on the way to the book, collecting several articles about Simics usage at Intel and elsewhere. The book itself will be much more of a detailed description of Simics and how it works and why it works the way it works.
When Microsoft released Windows 8 in 2012, the operating system received an incredible amount of bad press. There were lots of good ideas, but also a lot of bad execution, and some pretty drastic changes to the old familiar way that personal computer desktops had worked since approximately 1995. Most people that voice an opinion about Windows 8 dislike it, whether it be on social media or in person. For some reason, I seem to be one of the few people who really like it. When I just recently got a new laptop at work and it came with old Windows 7, I was actually disappointed. Here is why.
The Mill is a new general-purpose high-performance processor design from out-of-the-box computing (http://ootbcomp.com/). They claim to beat typical high-end out-of-order (OOO) designs like the Intel Haswell generation by crazy factors, such as being 2.3x faster while using 2.3x less power compared to a Haswell. All the while costing less. Ignoring the cost aspect, the power and performance numbers are truly impressive – especially for general code. How can they do something so much better than what we have today? For general code? That requires some serious innovation. With that perspective, I ask myself where the Mill is really significantly different from what we have seen before.
Paranormality – Why we believe the impossible, written by Professor Richard Wiseman, manages to combine four stories into a single book. Wiseman is a well-known name in skeptic circles, and this book does not disappoint in the debunking department. But it also uses the investigation of paranormal phenomena as a way to explain how our brains work. And then some. It all makes for a very satisfying read.
Trust Me, I’m Lying – Confessions of a Media Manipulator by Ryan Holiday is a brilliant book about the online media landscape, and how it is driving public discourse in a very bad direction. Ryan has a very interesting background, having worked in marketing and being part of the problem he describes. In his work, he has exploited the weaknesses of the new media landscape to get stories into blogs, press, and often national television. Stories about his clients, to get them attention and ultimately business. In this book, he describes what he did, how he did it, and why we as a society have a big problem. It has changed the way I read online media, and made me a lot more critical of things I previously did not take notice of.