Monthly Archives: March 2008

Before we visit this topic, let us go off-topic for a bit: let us examine the CFS scheduler (part of the Linux GIT tree after 2.6.22) and the round robin Windows scheduler.

The Ingo Molnar developed CFS (Completely Fair Scheduler – inspired by Con Kolivas’ SD scheduler) maintains a RB-Tree of “wait_runtime”. When a task’s wait_runtime increases so that some other task is now the leftmost task (I assume they are using “Strictly Weak Ordering” to define leftmost), the new task pre-empts the previous task and gets hold of the kernel.

The Rotating Staircase Deadline scheduler by Con Kolivas constituted queues at each priority level. At a given priority level, scheduling happened using a standard Round Robin algorithm. When a task used up its timeslices, it dropped to a lower priority level but with a different quota. This makes it (reasonably) sure that every process gets a slice of processor time.

It is easy to see how the RB-Tree based approach is similar to the queue based approach – as I understand it, if we use the principle of “Strict Weak Ordering”, we find all the nodes with similar priority before we go on to any other node. Therefore in effect, it is the same thing.

As far as I can understand – Windows uses a standard round-robin based scheduler ( to be more precise  Statistical Rate Monotonic Scheduling)

As far as differences in thread types are concerned – several people have commented about it. (I can completely sympathize with the notion that WaitForSingleObject does not tell you whether you are working with a mutex, an event or something else!)

But I am not able to find an apples to apples comparison between performance of threads in Windoes vs XP.

Next time maybe…

This is so freaking cool that I couldnt stay away from posting it – it has the potential to change the way energy is consumed. I am more excited about this, because in a semi-developed country like India, there are countless miles of public areas that are unlighted because of want of energy. Moreover due to the weather conditions, I understand there is a high failure rate for existing street lighting. Forget street lighting, this has the potential to completely change the way home and office lighting works.

Its a plasma “lightbulb” and a Chiclet sized device can potentially put out as much light as a conventional streetlight but with 10 freaking X  the efficiency. It was announced   by a lighting startup – Luxim and the video demo, they put up is extremely cool.Now let us see if GE, Philips and other lighting makers throw obstacles in Luxim’s way, because if they can get the manufacturing down correctly, we have the next GE on our hands!

In any case, I think they should simply go ahead and start selling the damn thing in India. They can “get around” the regulations needed to enter a market very easily and with such a large and upwardly mobile population, it will not be hard for them to be profitable. And not to mention the press that it will generate.

Its been more than a week, and I got the heart to post this now. I have moved away from Calypto… and EDA (in my daily work routine atleast). I have moved to a new hush-hush company working with grid computing and distributed systems. And what’s more…. I am working on the Windows platform.

Mind you I am working on using the Windows core architecture – so it has been a paradigm shift for me, rather than just transitioning from gcc to Visual Studio (although I insist on using “Vim” and “vimgrep” for any work – no compromise!)

It is certainly a difficult question to answer why. If I had to choose one word as an answer, I would choose “impact“. When I see the tech landscape around me, I see people having a much larger impact than, I believe, I have succeeded in making. In both the EDA companies I have been, I have definitely seen my contribution and my work making a difference to how a chip is designed, but I dont affect it to the scale that I have wanted to.

I have a reasonable amount of technology and more specifically – code – absorbed into my DNA by now. However, at this point I want to see if at all it is possible to take that, and put it somewhere where I can beget a bigger footprint.EDA has certainly taken a beating to its reputation recently, but I truly believe that a large part of the ability to beat Moore’s Law, comes from the engineering that goes into EDA products.A value like that cannot be overlooked.

But yes, I have to concede that I have been concerned on the long term outlook of EDA – whether it can exist as a standalone industry, or will it be subsumed in the design industry. I truly hope it remains independent – a large part of EDA innovation stems from the fact that we are able to access designs and methodologies from various different places.I do not know it can continue by being restricted to a single design entity. Which makes this original suggestion from Sramana Mitra, more relevant – by integrating with foundries, the EDA industry can avoid the myopic access that a design company will give it.

It has not been easy bridging the gap – Windows is certainly not an easy platform to work on (after being used to *nix). But I have learnt quite a bit to make me feel more at home. I integrate Visual Studio with vim (and use its inbuilt grep utility “vimgrep”). I use Windows PowerShell to take advantage of features like startup “.rc” scripts, unix-like key mappings, etc. I use Virtuawin to have multiple desktops on Windows …

Visual Studio is a piece of brilliant engineering.Its debugger  are simply too good (a reluctantly conceded victory). Downloading a few PDB files (for debugging symbols), effectively shows me how the entire Windows internal call-stack works.

And I now understand why Windows needs a registry !

I have discovered a different .. sensitivity.. to working in new environments. EDA software has its share, but now I truly understand the paranoia behind code-stealing, IP protection… yadda yadda yadda. I have, till now, worked on monolithic software, where a huge amount of code (right from the build scripts to the list of globals) is required to get anything to even compile. And here I work, where the operating system itself is the platform – I can as easily do my entire work at home from scratch.

What can I say – Dorothy forgot to buckle her seatbelts…