Adjusting to Work-from-Home: Remote Live Simics Training

In the current world-wide lockdown due to Covid-19, many things that were done in-person in the past have to become virtual. The Simics® New User Training that we run at Intel and with our customers and partners is no different. In normal times, we run in-person classes around the world, but that is not an option right now.  Thus, we shifted to running remote live classes as a substitute for the time being. This blog shares some of my experience from running remote live classes.

We changed the cover page of the Simics training to symbolize the change.

Alternatives

As I see it, there are two alternatives to in-person training:

  • Recorded videos
  • Live teaching, done remotely

The remote-live format is superior in my opinion since it keeps the energy and immediacy of an in-person class and allows the students to ask questions interactively. It also requires a lot less work to do and can be set up pretty much immediately.

Recording a quality video is a ton of work. You need to write a script and follow it To. The. Word. While still sounding natural. Add editing and retakes, and the pandemic might well be over before the work is completed.

Reformatting for Remote Live

The standard Simics New User Training format is to do two full days in-person, for approximately eight hours per day. Lectures and labs are interleaved, giving the teacher some time to catch her or his breath between sections, and providing students a chance to immediately practice what they learned in the lectures.

That format does not work for remote live training – having the conference call sit idle while students work is not a workable method (I have discussed this with other training organizers in the past, and most agree that labs are best done offline and not in-conference). Instead, lectures and labs have to be split up in a more coarse-grained fashion.

Another aspect to consider is attention span. For a student, it is a lot easier to stay focused on a topic when in the same room as the teacher, and it is easier for the teacher to adjust to the attention level of the students. Previously, I did some improvised remote trainings that crammed the lectures into two four-hour sessions. That was totally exhausting for everyone involved.

The current concept is shown below. The course is spread out over three days, with about three hours of lectures each day (and a rather large buffer towards the end). Each day also has a set of associated labs that the students are expected to do on their own after lunch.

Reformatting the in-person class to remote live

The topic sections of the training had to be reshuffled a bit to fit this format and get the labs spread out in a reasonable way. It is not exactly the same sequence as in the in-person training, but fortunately some of the sections were rather stand-alone and possible to move around a bit in the schedule.

There are still some small breaks inserted between the sections, just like when teaching live. When working from home, even five minutes is enough to get a cup of coffee or other refreshment.

Remote Live Training Technology – Video, Screenshare, and Chat

For the lecture part, it made sense to use video of the teacher alongside the slides. We did not use video for the students, since that would just waste bandwidth and reduce the quality of the screen-share. It is also hard for the trainer to both present and look at the student video streams at once – especially if there are tens of students in the class. I used to be rather skeptical to video conferencing, but I must admit to coming around to finding it rather valuable.

For the labs, it makes sense to use chat in an app like Microsoft Teams or Skype to answer questions. There are usually not all that many questions, and having the teacher sit and wait on the video conference for the occasional interaction is not an efficient use of time. When I present a class live, I tend to walk around the front of the room and point at the projector screen using either hands or a laser pointer. Sometimes, to illustrate a point or an answer to a question, I will draw things on white boards or a flip board. Neither of these things work with a remote screen-sharing session, but using annotation tools to draw on top of what is shown on the screen offers a decent replacement. The screenshot below shows an example of a heavily-annotated slide from the training.

Annotating a slide as a way to make the presentation a bit more lively

The Gear

It is quite feasible to run a training session like this from home using an average laptop. However, it is worth investing a little bit in audio and video gear to provide the best experience and the most effective teaching setup.

My personal home working setup, used to run Simics training in the remote live format.

You want a good web camera, instead of using the rather poor camera built into most laptops. It makes sense to put it on top of an external screen to get it up a bit compared to where a laptop screen typically resides and avoid the “up your nose” angle. For the sound, a headset works, but it is better to use a good external microphone. This looks better on the video (no headset on top of the speaker) and produces superior sound compared to most headsets. Using a “pop filter” is definitely beneficial. Figure 3 shows my personal home office setup used in the training, including an external keyboard and mouse.

For best results, it is good to work in a room featuring some amount of fabric to dampen echos and provide a better sound environment. For the video, a reasonably neutral background makes sense. Also for the video, it is a good idea to avoid clothes with busy patterns as that tends to result in very messy videos (especially when the image is shrunk down to a thumbnail).

This is not a good choice of shirt for a video session (but it is one of my favorites)

One upside of live remote training is that product demos using screen sharing actually work better than at most in-person trainings since reading a screen with small fonts from the back of a room is a lot harder than seeing it on your own local screen.

Simics is also a good subject for remote training in that it is just a piece of software. There is no need for specialized hardware or development boards for the students. Simics can be downloaded and installed on the students’ local computers, reducing the load on VPNs to connect back to corporate servers to access the software.  In particular for training, the required software is well-packaged and easy to download and install.

Final Thoughts

Doing a live remote training works, but it is not a perfect substitute for an in-person class. You do not get the same connection with the audience, and as a trainer you cannot sense the attention of the class. You also miss a lot of the informal discussions you get over lunch and before and after classes. 

On the positive side, remote live lets us keep doing training even during mandatory work-from-home times and with people scattered across multiple cities and sites. It is still live, and we still get interactive discussions going. The technical requirements are not overwhelming, and most people should be able to partake in training from home as well as teach it from home.  Technology really works, and it can help us get through these trying times.

Intel Blog Post: “Quit Thinking and Look” – Mea Culpa Chasing a Performance Bug

I have written before about the debug advice to “Quit thinking and look.” It means that you should not form conclusions prematurely. Stop and look at what is going on instead of guessing and cooking up theoretical scenarios. Sound advice that I completely failed to follow in the case that I just chronicled on my Intel Blog: https://software.intel.com/en-us/blogs/2020/03/18/quit-thinking-and-look-chasing-simics-performance

Continue reading “Intel Blog Post: “Quit Thinking and Look” – Mea Culpa Chasing a Performance Bug”

Intel Blog Post: Shift-Left for a Snowy Ridge

There is a new blog post on the Intel Developer Zone on how we used Simics virtual platforms for the new Intel® Atom® P5900 series of system-on-chip (previously known as Snow Ridge). It talks about how shift-left works both inside of Intel and with our customers for the new chip, and the kinds of virtual platform models you use for different types of use cases.

See https://software.intel.com/en-us/blogs/2020/03/17/seeing-the-early-snow-on-the-ridge

Intel Blog Post: Simulating Caches 10x Faster with Simics

Earlier this year, Arianna Delsante defended her Master’s Thesis in computer science at Uppsala University. Her thesis topic was to speed up cache and branch prediction simulation in Simics, and in the end she got a speed up of about 10x compared to previous implementations in Simics. I explain a bit more about cache simulation in fast functional simulators and what she did in my latest Intel Developer Zone Blog post, “Speeding-Up Cache Simulation in Simics by 10x“.

Continue reading “Intel Blog Post: Simulating Caches 10x Faster with Simics”

Intel Blog: A Mountain and Threading for Simics 6

A new short blog post on my Intel Developer Zone blog talks about the improved threading simulation core we have added in Simics version 6… and about how a colleague of mine climbed to the top of the highest mountain in Europe and showed a flag with our new Simics icon! Read the story at https://software.intel.com/en-us/blogs/2019/09/10/simics-6-at-the-mountain-top.

Intel Blog: Simics 6 Device Register Coverage

I have a new blog post out on the Intel Developer Zone, about the Simics 6 device register coverage feature. I use device register coverage to look at how different operating systems use the same hardware. The differences are significant, demonstrating the (rather expected) observation that different software stacks use the same hardware in different ways.

Continue reading “Intel Blog: Simics 6 Device Register Coverage”

SAMOS 2019 – Insights, Mechanisms, Heterogeneity, and more

Earlier in July 2019, I had the honor of presenting one of the keynote talks at the 19th SAMOS (International Conference on Embedded Computer Systems: Architectures, MOdeling, and Simulation) conference, held on the island of Samos in Greece. When I got the invite, I had no real idea what to expect. I asked around a bit and people said it was a good conference with a rather special vibe. I think that is a very good description of the conference: a special vibe. In addition to the usual papers and sessions, there is a strong focus on community and social events, fostering discussion across academic disciplines and between industry and academia. There were many really great discussions in addition to the paper and keynote presentations, and overall it was one of the most interesting conferences I have been to in recent years.

Continue reading “SAMOS 2019 – Insights, Mechanisms, Heterogeneity, and more”

Intel Blog Post: Clear Linux for Simics Demo & Training

For Simics training and demo purposes, we often use Linux* running on the virtual platforms. In the early days of Simics and embedded Linux, we built our own minimal configurations by hand to run on simple target systems. Most recently, we changed our Linux default demo and training setup to use Clear Linux*. This change showed us just how sophisticated modern Linux setups are – which is good in general, but it also can make some low-level details more complicated.

I wrote an Intel Developer Zone Blog Post about our experience moving to Clear Linux for Simics demos and training, which contains a lot more details of what we observed and did to make this work for our purposes.

DAC 2019 – Cloud, a Book, an Award, and More

Last week was spent at the Design Automation Conference (DAC) in Las Vegas. I had a presentation and poster in the Designer/IP track about Clouds, Containers, and Virtual Platforms , and worked in the Intel Simulation Solutions booth at the show floor. The DAC was good as always, meeting many old friends in the industry as well as checking out the latest trends in EDA (hint: same trends as everywhere else).  One particularly nice surprise was a book (the printed type, not the Vegas “book” that means something else entirely).

Continue reading “DAC 2019 – Cloud, a Book, an Award, and More”

Intel Blog Post: Simics in the DARPA Cyber Grand Challenge

The US Defense Advanced Projects Agency (DARPA) ran a “Cyber Grand Challenge” in 2016, where automated cyber-attack and cyber-defense systems were pitted against each other to drive progress in autonomous cyber-security. The competition was run on physical computers (obviously), but Simics was used in a parallel flow to check that competitors’ programs were not trying to undermine the infrastructure of the competition rather than compete fairly inside the rules of the competition.

Continue reading “Intel Blog Post: Simics in the DARPA Cyber Grand Challenge”

Intel Blog Posts: Running Simics in Containers

Running Simics inside a container is a topic that has come up several times in recent years. In a two-part Intel Developer Zone blog post, my colleague Mambwe Mumbwa and I discuss both some background on container technology, how and how well Simics can run inside of containers, and what you can with containerized Simicses. Overall, containers offer a very good alternative to virtual machines for running programs like Simics, and the tool ecosystem opens up some exciting new ways to manage Simics installations and simulation instances.

Update: this post was extended to link to both part 1 and part 2 of the blog.

Continue reading “Intel Blog Posts: Running Simics in Containers”

Embedded World 2019

The Embedded World in Nürnberg is still going strong as the best tradeshow for “Embedded” in the world. This year, I spent time doing booth duty and gave a talk in the Conference part of the event. There was an unusual high number of old friends and business acquaintances around, and it was a great experience overall with many fruitful discussions and connections for the future.  However, it seems that there is always something that goes slightly awry with my travel to the show…

Continue reading “Embedded World 2019”

Shifting Left Together at the Embedded World 2019

The Embedded World Exhibition and Conference 2019 is coming up in the last week of February. I will be there presenting a paper in the conference as well as demoing CoFluent in the Intel booth and some other miscellany. The paper “Shifting-Left Together – Enabling the Ecosystem with Virtual Platforms” is about how silicon vendors can (should) use virtual platforms to bring shift-left practices to their customers in addition to their own internal teams.   

Continue reading “Shifting Left Together at the Embedded World 2019”

Intel Blog Post: Additional Notes on Temporal Decoupling

A few weeks ago, I talked about temporal decoupling in virtual platforms at DVCon Europe 2018. I just posted some additional notes on the topic temporal decoupling on my Intel blog. In this new blog post, I discuss some more aspects of temporal decoupling, and how it affects simulation semantics. I also explain some of the clever techniques used to minimize the impact of temporal decoupling on the software running on the virtual target system.

Read the full text at as “Additional Notes on Temporal Decoupling“.

 

 

 

DVCon Europe 2018 / A Few Cool Papers

DVCon Europe took place in München, Bayern, Germany, on October 24 and 25, 2018. Here are some notes from the conference, including both general observations and some details on a few papers that were really quite interesting. This is not intended as an exhaustive replay, just my personal notes on what I found interesting.

Continue reading “DVCon Europe 2018 / A Few Cool Papers”

Talking about Temporal Decoupling at DVCon Europe

This year’s Design and Verification Conference and Exhibition (DVCon Europe) takes place on October 24 and 25 (2018).  DVCon Europe has turned into the  best conference for virtual platform topics, and this year is no exception. There are some good talks coming!

Continue reading “Talking about Temporal Decoupling at DVCon Europe”

Intel Blog Post: Interview with Bengt Werner on the Early Days of Simics

Bengt Werner was one of the first people to work on the simulator that would become Simics, way back in 1992. On my Intel Blog, I published an interview with Bengt a while back where we discuss the early days of Simics and the original product vision and use cases.

Continue reading “Intel Blog Post: Interview with Bengt Werner on the Early Days of Simics”

Intel Blog Post: The Simics Fulprompt, Fulöl, and Fuldans

I have a new blog post up at the Intel Developer Zone, this time about the Simics “fulprompt”. Every software team has its legends about spectacular mistakes, crazy users, and customer calls with strange questions.  The Simics “fulprompt” is one example of this from the early days of Simics. It was a prompt that appeared where no prompt would normally appear, right in the middle of executing an instruction. As such, it was an ugly hack… and for Swedes who were around in the 1990s, the only name for a ugly hack is a fulhack.

Continue reading “Intel Blog Post: The Simics Fulprompt, Fulöl, and Fuldans”

Intel Blog Post: Fault Injection in the Early Days of Simics

Injecting faults into systems and subjecting them to extreme situations at or beyond their nominal operating conditions is an important part of making sure they keep working even when things go bad.  It was realized very early in the history of Simics (and the same observation had been made by other virtual platform and simulator providers) that using a virtual platform makes it much easier to provide cheap, reliable, and repeatable fault injection for software testing. In an Intel Developer Zone (IDZ) blog post, I describe some early cases of fault injection with Simics.

Continue reading “Intel Blog Post: Fault Injection in the Early Days of Simics”

Intel Blog Post: Simulation a Thousand Target Machines – in 2004 and 2018

Back in 2004, the startup Virtutech built a crazy demo for the 2004 Embedded Systems Conference (ESC). Back then, ESC was the place to be, and Virtutech was there with a battery of demos to blast the competition.  The most interesting demo from a technology perspective was the 1002-machine network, as described in an Intel Developer Zone blog post of mine.

Continue reading “Intel Blog Post: Simulation a Thousand Target Machines – in 2004 and 2018”

Intel Blog Post: Running Large Workloads on Simics – in 1998 and 2018

I have just released a new blog post on my Intel Developer Zone blog, about how Simics runs large huge workloads. I look back at the kinds of workloads that ran on Simics back in 1998 when the product first went commercial, and then look at some current examples running on Simics.  This is the first post in a series intended to celebrate 20 years of Simics as a commercial product.

Continue reading “Intel Blog Post: Running Large Workloads on Simics – in 1998 and 2018”

Intel Blog Post: Simulation in the Gartner Top Ten Tech Trends for 2018

There is a blog post out on my Intel Developer Zone blog where I take a look at the Gartner “Top Ten Tech Trends” for 2018.  There are a couple of them where I found clear roles for the kinds of simulation tools we build in my little corner of Intel. In particular, Digital Twins is a concept that is all about simulation.  To find the other trend where I found a big role for simulation, read the full blog post.

Intel Blog Post: Using Wind River® Simics® to Inspire Teachers and Researchers in Costa Rica

A while ago, I visited my Intel colleagues in Costa Rica and ran a workshop for university teachers and researchers, showing how Simics could be used in academia.  I worked with a very smart and talented intern, Jose Fernando Molina, and after a rather long process I have published an interview with him on my Intel blog: https://software.intel.com/en-us/blogs/2017/12/05/windriver-simics-to-inspire-teachers-costarica

Continue reading “Intel Blog Post: Using Wind River® Simics® to Inspire Teachers and Researchers in Costa Rica”

Intel Blog: Question: Does Software Actually Use New Instruction Sets?

Over time, Intel and other processor core designers add more and more instructions to the cores in our machines. A good question is how quickly and easily new instructions added to an Instruction-Set Architecture (ISA) actually gets employed by software to improve performance and add new capabilities. Considering that our operating systems and programs are generally backwards-compatible, and run on all kind of hardware, can they actually take advantage of new instructions?

Continue reading “Intel Blog: Question: Does Software Actually Use New Instruction Sets?”

Talking Checkpointing in SystemC at the SystemC Evolution Day 2017

inThere will be a session on checkpointing in SystemC at the upcoming  SystemC Evolution Day in München on October 18, 2017. I will be presenting it, together with some colleagues from Intel. Checkpointing is a very interesting topic in its own right, and I have written lots about it in the past – both as a technology and it applications.

Continue reading “Talking Checkpointing in SystemC at the SystemC Evolution Day 2017”

Intel Blog Post: Getting to Small Batches in System Development using Simulation

I have posted a two-part blog post to the public Intel Developer Zone blog, about the “Small Batches Principle” and how simulation helps us achieve it for complicated hardware-software systems. I found the idea of the “small batch” a very good way to frame my thinking about what it is that simulation really brings to system development. The key idea I want to get at is this:

[…] the small batches principle: it is better to do work in small batches than big leaps. Small batches permit us to deliver results faster, with higher quality and less stress.

Continue reading “Intel Blog Post: Getting to Small Batches in System Development using Simulation”

Intel Blog Post: The More the Merrier – Integration and Virtual Platforrms

Integration is hard, that is well-known. For computer chip and system-on-chip design, integration has to be done pre-silicon in order to find integration issues early so that designs can be updated without expensive silicon re-spins. Such integration involves a lot of pieces and many cross-connections, and in order to do integration pre-silicon, we need a virtual platform.

Continue reading “Intel Blog Post: The More the Merrier – Integration and Virtual Platforrms”

Intel Blog: How 3dfx was Built on a Simulator

In the early 1990s, “PC graphics” was almost an oxymoron. If you wanted to do real graphics, you bought a “real machine”, most likely a Silicon Graphics workstation. At the PC price-point, fast hardware-accelerated 3D graphics wasn’t doable… until it suddenly was, thanks to Moore’s law. 3dfx was the first company to create fast 3D graphics for PC gamers.  To get off the ground and get funded, 3dfx had to prove that their ideas were workable – and that proof came in the shape of a simulator.  They used the simulator to demo their ideas, try out different design points, develop software pre-silicon, and validate the silicon once it arrived.  Read the full story on my Intel blog, “How Simulation Started a Billion-Dollar Company”, found at the Intel Developer Zone blogs.

gem5 Full Speed Ahead (FSA)

I had many interesting conversations at the HiPEAC 2017 conference in Stockholm back in January 2017. One topic that came up several times was the GEM5 research simulator, and some cool tricks implemented in it in order to speed up the execution of computer architecture experiments. Later, I located some research papers explaining the “full speed ahead” technology in more detail. The mix of fast simulation using virtualization and clever tricks with cache warming is worth a blog post.

Continue reading “gem5 Full Speed Ahead (FSA)”

Intel Blog: Continuous Delivery for Embedded Systems and how Simulation can Help

Doing continuous integration and continuous delivery for embedded systems is not necessarily all that easy. You need to get tools in place to support automatic testing, and free yourself from unneeded hardware dependencies. Based on an inspiring talk by Mike Long from Norway, I have a piece on how simulation helps with embedded CI and CD on my Software Evangelist blog on the Intel Developer Zone.