I’ve never actually attended a webinar before, until today. That’s for a range of reasons, including that I haven’t seen one that interested me much, and the fact that the word ‘webinar’ somewhat irritates me - another new buzzword that the world didn’t really need. How hard it is to say ‘online seminar’ anyway? I can’t say ‘webinar’ out loud without feeling like a total tit yet; it’s all I can do to type it without shuddering. Perhaps that will pass with time, as I become gradually desensitised to yet another marketing inanity.
Anyhow - I’ve been reading a bunch of Intel articles on threading recently, as research for future versions of Ogre and just for my general education. I’ve dealt with threading a fair amount in the past, but only at a relatively high level of abstraction - I’ve used them for workflow convenience and scalability (Java servers) and for user responsiveness (UI tools) but not strictly for low-level performance - after all, because of the overheads of synchronisation primitives, context switches and additional cache coherency issues, using multiple threads on a single core machine (even hyperthreaded) is actually slower in terms of CPU cycles used than using a single thread (ignoring avoidance of blocking I/O etc). The continuing popular rise of desktop multi-core chips and therefore true mainstream SMP is of course changing that, so I figured I needed to read up a bit more on the performance details, beyond just the high-level threaded design work which I’ve done plenty before. No huge surprises so far, but it did refocus the mind a bit on detail issues, like the fact that whilst it’s good on SMP to spin-loop for a few cycles on an atomic before waiting on a locked critical section, on a hyperthreaded machine it’s a bad idea, you should go straight into a wait. I found this multi-chapter series a particularly good discussion about a decent range of issues.
I decided to join Intel’s webinar (egh) today “Software Performance Analysis for Multi-Core CPUs and Windows Vista” because I’m interested in how to measure and analyse issues. I already own Intel VTune, which is an awesome tool even though it does always make me feel like there’s so much about it I’m missing. I haven’t had a large amount of time to learn all the nuances so I generally just go for a pretty raw approach to finding issues - it works for me, but there’s so much more to the product I’m sure. What interested me in this webinar was Intel Thread Profiler, which you can now get with VTune (although my version didn’t bundle it since I bought it a little while ago). Looking at the slides and listening to the guy explain the analysis has convinced me that, when I do get to needing to heavily analyse threading performance, it will be absolutely invaluable. The Thread Checker looks really handy too. Overall I found the webinar useful and worth ‘attending’ - in fact it has some advantages over a regular seminar; if you hit a spot where you don’t need to listen so much because you already know that part well, you can get on with other work in the background whilst half-listening for him to move on, without feeling guilty like you would if you did that in person. 😀
So, I guess that adds a VTune upgrade and a couple more tools to my wish list, they’ll certainly help with Ogre v2.0 in due course. These tools are fairly expensive though, and my wish list already includes an upgrade to a dual-core machine, a Dx10-capable card and Vista (for Dx10 support in v1.6), preferably another test machine so I can more easily test other hardware, and ideally a new laptop although I think I’ll be living with my current one for a while longer. So I’m going to have to prioritise my spending carefully! 😀Spending quite a lot of unpaid time getting Eihort out of the door in the last few months, plus getting the new server up has meant that finances are on a bit of a roller-coaster right now so I’ll have to be sensible, which is of course far less fun. My hope is that a small handful of OUL licensees will come out of the woodwork to offset the recent investments I’ve made, but of course it’s a slow trickle-down effect - plenty of interest and statements of intent only for now. In the meantime I’m diverting a portion of my time away from Ogre into a separate tool project of my own now (which I’ve wanted to do for ages anyway, but it also makes sense to invest some time in separate IP now), and will probably start casting about for more contract work again soon if it doesn’t pick up. Keeping all the plates spinning is certainly not dull 😀