voidinit
12-05-2003, 04:06 AM
I haven't really been keeping up with all the hype and hoopla going on about Intel HyperThreading and 64 bit microprocessors. I've cocooned myself inside of the J2EE and will not leave until I am a persistence master. However, I have a few points to ponder concerning these emerging technologies..
Just to let you all know, I'm not a Bachelor's of anything and I never even stepped foot into a CS classroom or lab. I'm self-taught, so I missed all theory and was left with only the HomeDepot do-it-yourself guide and a roll of duct tape. I could be way out in left field here.
Now, if you beleive all the hype, Hyperthreading allows system threading libs like pthreads to execute instructions on two threads simultaneously? How is this different from SMP? I guess the one big difference would be the fact that there is only one floating point unit, but how does this effect threaded applications? It doesn't right?
We also read all the hype about OSes capable of running on 64bit architectures, and these OSes and hardware vendors are just waiting for the applications themselves to be "re-coded" for the 64bit microprocessor, or to be "re-coded" to take full advantage of hyperthreading. How much of these applications need to be "re-coded"? I mean if I have 27,000 lines of c++ then I have 27,000 lines of c++. Shouldn't the compilation of that code be the real determining factor in wether the application can handle 64bit architecture or take full advantage of hyperthreads?
I mean, if posix thread libraries were updated to take full advantage of hyperthreading, and gcc were updated to include a 64bit target of some sort could I just compile, say, MySQL: with these options and run it on a 64bit hyperthreaded machine?
It's obvious that some changes would need to be made in some applications to make performance advantages worthwhile. Less conservative memory management, more agressive threading, etc. But all in all, how much work would it take to get an application like MySQL 64bit and/or HyperThreading ready?
Just to let you all know, I'm not a Bachelor's of anything and I never even stepped foot into a CS classroom or lab. I'm self-taught, so I missed all theory and was left with only the HomeDepot do-it-yourself guide and a roll of duct tape. I could be way out in left field here.
Now, if you beleive all the hype, Hyperthreading allows system threading libs like pthreads to execute instructions on two threads simultaneously? How is this different from SMP? I guess the one big difference would be the fact that there is only one floating point unit, but how does this effect threaded applications? It doesn't right?
We also read all the hype about OSes capable of running on 64bit architectures, and these OSes and hardware vendors are just waiting for the applications themselves to be "re-coded" for the 64bit microprocessor, or to be "re-coded" to take full advantage of hyperthreading. How much of these applications need to be "re-coded"? I mean if I have 27,000 lines of c++ then I have 27,000 lines of c++. Shouldn't the compilation of that code be the real determining factor in wether the application can handle 64bit architecture or take full advantage of hyperthreads?
I mean, if posix thread libraries were updated to take full advantage of hyperthreading, and gcc were updated to include a 64bit target of some sort could I just compile, say, MySQL: with these options and run it on a 64bit hyperthreaded machine?
It's obvious that some changes would need to be made in some applications to make performance advantages worthwhile. Less conservative memory management, more agressive threading, etc. But all in all, how much work would it take to get an application like MySQL 64bit and/or HyperThreading ready?