Itanium tutorial

May 12, 2010 in Personal | Comments (0)

Tags: , ,

I’ll make a research-​​oriented entry before long; I prom­ise. I’m start­ing to get towards writ­ing up some of the cool stuff in my thesis.

I’ve star­ted writ­ing an Itanium tutorial. That doc­u­ment will magic­ally update every now and then as I write more. On the one hand it’s slightly embar­rass­ing how much I’ve writ­ten — it’s almost half as much as I’ve writ­ten for my thesis so far — but it’s an entirely dif­fer­ent kind of writ­ing. There’s really no rigour at all to it. I don’t have to worry about prov­ing things or cit­ing things; I’ve never proofread any of it. I just write whatever pops into my head, which makes it very quick and easy. Primar­ily it’s for my bene­fit, so I don’t for­get any­thing and so that it forces me to fig­ure things out more con­cretely than I would otherwise.

I should say there’s a very good chance that some of it is wrong. After I fig­ure some­thing out, I write down my under­stand­ing of it. As I fig­ure more things out, my pre­vi­ous under­stand­ings change. I really don’t care much if I write some­thing (tem­por­ar­ily) wrong since it’s still just play­ing around for me.

I think Mark thought of it as a sort of men­tal health pro­tector, which I think it’s done. The first few days, as I said, I kind of went bana­nas, but I don’t spend so much time on it these days. I think I’ve done more on my thesis in the past week than I had in the pre­vi­ous two. It helps a lot against get­ting burnt out when you have an unre­lated intel­lec­tual activ­ity to play with.

It’s hard to explain pre­cisely why I like play­ing with it. It seems like the hardware/​software inter­face — assembly lan­guage — hasn’t kept up with the changes in com­puter archi­tec­ture. On most mod­ern archi­tec­tures you have only clues and guesses as to what the com­puter is actu­ally doing even when work­ing at the low­est level. The Itanium seems to be the first decent stab at expos­ing the mod­ern super­scalar pipelined archi­tec­ture, so that the pro­gram­mer no longer is restric­ted to just giv­ing a descrip­tion of what to com­pute, but rather has abso­lute and com­plete con­trol over how it’s executed. It reminds me of play­ing with com­puters in the 1980s when it was pos­sible for a per­son to know exactly what was hap­pen­ing. That level of con­trol and level of under­stand­ing is a big part of what lured me into com­puter sci­ence in the first place, I suppose.

It’s a pretty deep rab­bit hole to go down, though. I’ve now found myself read­ing microar­chi­tec­ture spe­cific­a­tions, the gory details of the Itanium 2 pipeline and so forth. It’s the price of being able to cal­cu­late exactly how many cycles some­thing should be tak­ing and find­ing my pre­dic­tions are off in some cases.

It’s a pretty cool archi­tec­ture. So far I haven’t found any­thing that I can’t get to run on the Itanium at least almost as fast my laptop, which is pretty impress­ive since this par­tic­u­lar Itanium is so far out­dated and run­ning at less than half the clock speed of my laptop.


Leave a Reply

You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>