The time has come to do something new. I am leaving Intel (and the Intel Simics team) at the end of September (2024). After more than twenty years with the team and the product this is a big step into the unknown. But when Intel offered a “retirement” package as part of its current round of cost reduction measures, I felt that it was a golden opportunity to find something new to do.
This move surprised some people. After all, I have de facto been the public face of the Simics product for a long time – with blogs, articles, talks, and customer interactions. I joined Virtutech right after getting my PhD back in [too long time ago, see my CV for details 😊]. When Intel acquired the company in 2010, sales and marketing moved into Wind River (since it was an Intel subsidiary at the time). In 2016, I rejoined the core simulator technology team by moving to “real” Intel from Wind.
It has been a great ride, and the Simics technology and product lives on and will prosper in the future. It is simply too good not to. The people doing Simics core and models at Intel are top-notch, and I will miss the insanely detailed discussions we would get into in the office over minute technical details. I will miss the office in Kista too, with its energizing mix of core engineering, customer-facing engineering, and sales people (and now I won’t have a chance to make up for the fact that I managed to be in the office when CEO Pat visited and miss him entirely).
Intel was and still is a great place to work. To continue on the list of things I will miss, the internal information sharing at Intel is one of them. It is considered perfectly normal to have people call each across the globe and across business units in case they need help solving a problem. Not all companies work like that. The internal presentations on technology and market insights give everyone a chance to learn, every day. For someone as curious as me, that was one of the unexpected bonuses when I joined Intel proper in 2016.
Intel is the only company I have worked for that built things people could actually touch, and had products that would get reviewed in the press. Now, maybe we in the Simics team did not actually build the hardware, but we certainly helped it get to market and get the software support done. Still, working for Intel and buying an Intel processor to put into a computer is cool.
Breakthrough Technologies
The Simics team has produced some truly amazing technological feats over the years, feats that I have been happy to market, demo, and sell to users. It is probably worth mentioning some of the major innovations from the early days. Note that this is by no means exhaustive.
A truly scalable simulation engine. In 2004, we showed off a distributed simulation setup with 1002 simulated machines networked together. We wrote a long blog about this back in 2018.
Scalability also implies handling large heterogeneous simulation configurations. Simics is unparalleled in the ability to put pretty much anything into a simulation and it will still work. Mix a dozen main X86 cores with a dozen embedded microcontrollers running firmware? No problem. Simulate a server setup with lots of disks and networks? Just do it!
Using X86 virtualization technology to accelerate the simulation of X86 targets – while supporting adding instructions not present on the host. This combination of simulation and virtualization is still a key part of why Simics works so well for massively complex modern Intel platforms.
The just-in-time compiler (JIT) has been no slouch either, and I still remember when we showed this off 20 years ago at the Embedded Systems Conference. A certain CEO of a certain other virtual platform company said that he thought we were lying and that what we claimed was simply impossible. Leading to a heated argument with our CEO and founder.
Another breakthrough came with single-process multi-threaded virtual platform execution. Threading had been done before (and has been done since), but our solution was arguably more robust and easier to use than anything else. It was even deterministic in the multiple-machine case! Threading technology has been refined over the years, and it is still an active area of improvement.
In recent years, there has been a lot of focus on modeling capabilities and modeling tools. One particular achievement that is worth bringing out was the open-sourcing of the Device Modeling Language, DML. This initiative brought the language and all its interesting design aspects from only being known in Simics circles out into the open for all to see.
There has also been a trickle of open-source projects growing up around the simulator is recent years. For example, the Rust bindings to the Simics API, supporting the TSFFS fuzzer project. And the earlier RESim project.
The Intel Simics team will definitely produce more amazing simulation technologies in the coming years. Looking forward to hearing about it, even if I am not there to guide and promote the efforts.
“New”
Speaking of new things, the little icon for this blog was created using a generative AI tool. I asked it for a sign pointing left, and it gave a whole pile of pictures pointing right. But I guess I should be impressed that it managed to produce actual text. Here are some of the variants I had to sift through:
“A certain CEO of a certain other virtual platform company said that he thought we were lying…”
If that person had been an engineer I think s/he would have been curious about such performance claims. Maybe it was an engineer turned CEO?