In our latest podcast Kroc and I again talk about the trboules facing netbooks, and we solely place the blame on software not taking proper advantage of the hardware, and OEMs picking the wrong software to begin with. There’s two ways to solve this: better software, or faster hardware. It seems like the industry will move to the latter.
One of the main problems with netbooks is that the Intel Atom platform isn’t as capable a platform as it could be. While the Atom processor is a perfectly fine processor, Intel paired the Atom with a relatively archaic chipset (i945) which simply isn’t very powerful, but does consume a lot of power. The on-board graphical chip on these configurations isn’t very capable either.
NVIDIA provides the answer here with its Ion platform. This platform pairs the Atom processor with the GeForce 9400M graphical processing unit, the same used in recent MacBooks, as well as DDR3-1066 or DDR2-800 SDRAM, providing a much faster alternative to Intel’s default Atom offering, including mainstream gaming and full HD playback. By the way, NVIDIA’s Ion is not to be confused with NVIDIA’s Tegra, which is an ARM-based system-on-a-chip design.
Several manufacturers have now committed to the Ion platform, such as Samsung and Lenovo. Lenovo was the first to announce a netbook using Ion, the IdeaPad S12, slated for August 2009, and Samsung followed suit today. It’s supposed to be called the Samsung N510, and should arrive in July.
With the arrival of NVIDIA’s Ion, the line between a netbook and a notebook becomes so blurry it no longer seems to make any sense to have a distinction at all. “The Netbook term was created by Intel to define a segment offering a limited experience, but with Ion you don’t have those same limitations,” Rene Haas, general manager of notebook products at NVIDIA said, “These systems can handle mainstream gaming, HD video, and new GPU-powered applications. You might as well call them notebooks, because that’s what they are.”
With the N510 having an 11.6″ display, the distinction indeed becomes moot. Netbooks are moving into notebook territory when it comes to performance, which while welcome, is also a little bit disappointing because I had hoped netbooks would force software developers into more performance-efficient coding.
Well, there’s always ARM netbooks.
The problem is, most students right now are receiving the kind of education that will allow them to get a job ASAP. They’re taught how to work on software development, not how to be good software developers.
Java and .net are all over the place, and even though they’re both very programmer friendly (I don’t agree with this, but it seems like it’s the current trend), they leave a lot to be desired on the performance front.
Not only that, most of the time, these students will be encouraged to use the slowest functionality on already slow software platforms, most of the times because they look nice and/or there’s a new fancy buzzword for it.
So rest assured Thom, things on the performance side are going to get much worse 😛
But well, I feel old whenever I talk like this, and I’m not even that old. Now get off my lawn! 😉
Edit: And sorry for going off topic, I’m really tired of bloatware.
Edited 2009-06-29 22:01 UTC
Couldn’t have said it better. The funny part is that for those of us who’ve been developing software for a while, developing ‘fast’ software comes naturally. It’s hard to load a modern CPU unless you’re doing something really intense (or more likely, stupid.)
The way I see it, netbooks are XP machines from 2003/2004, with a CPU on par with a Prescott, 1Gb RAM, comparable video (until now), etc. They always have been relatively powerful machines.
The software performance challenge isn’t really issued to experienced/professional software developers. It’s issued to people who’ve never written native code before, and need to learn how to do so properly.
Agree! As one of these student who have to learn C# and Java, I can’t say that the way we are trained is a no go. Nobody care about speed (and I am in a video game oriented program, everybody know that performances are useless in video games. Other student think I am some kind of freak every time they see me using inline assembly in pure C part of my applications. They don’t even know that operator like |, <<, >> (the C one, not C++), % or ^ exist. Their apps are made mostly of heavy while loop and function driven if and else if for every possible case, it is just terribly unoptimized code.
Last time I worked with a “normal” student (not those like me who take performances seriously), I rewrote a parsing algorithm in 159 line of C++ instead of …
…
3500 lines of code made mostly of loops!!!!
Maybe I’m misunderstanding, but as a console videogame developer myself I can say that videogames are all about performance… Maybe you meant otherwise?
It sounded like sarcasm to me. In any case, I agree. One of the prime reasons I dropped CS as a field of study was simply that the teachers I’d come into contact with were basically useless. I can, and do, learn more on my own than I ever learned from those so-called experts and professors… too bad that most CS “professors” aren’t actually professional developers along with it. I’ve always felt that the only ones who are qualified to teach something are those who have actually done it for a while, not those well-versed in the theory but with a lack of practical knowledge.
D’oh, thanks. I accidentally turned my sarcasm-o-meter off 😉
Yet another example of the brilliant saying, “Those that can — do: those that can’t — teach.”
Never heard that one before, but I like it and it’s certainly seems to be true anymore.
CS is about programming as much as math is about counting.
Sorry, I used the CS term in its generic sense, but I was focusing on the programming field of it. In most schools here in the states, just about anything computer related falls under CS, although sometimes it is split off into CS and IT/CIS.
If you want to be taught programming the profession by people who write code for a living then you should really be going vocational school and not university. The problem is as much about students who sign up for CS programs without any interest in learning CS. CS professors are there to teach you CS, not how to hack code.
That I agree with wholeheartedly. I am by no means an awesome programmer but having gone through the rigor of a 4 year CS course at a prestigious university, I must say I have done most of my learning at work.
I still am learning tons every day.
It was a joke, it is oblivious that it is essential. Video games are almost the only thing able to load a Desktop PC (compiling and encoding are two other).
um… you obviously forgot about flash movies :p
While I agree with what you’re saying about the people who use high-level languages and stupidly complex algorithms, you get no points for using inline assembly. With modern, competent compilers (e.g. gcc, msvc, sun studio, etc), the compiler will likely choose a good code sequence to balance size and speed. Especially if you give it some feedback in the form of profile-guided optimization. Inline asm sometimes inhibits the compiler’s optimizer and generally is a waste of time if you’re good enough to write clear, straightforward-to-optimize C code without too many pointers flying about (to avoid aliasing deoptimizations).
The real trick lies in writing straightforward, maintainable code for the bulk of your program so that the compiler will do a good job, and then tweaking the C code (or using processor intrinsics where there’s a not-normally-generated instruction that will help you out) to get the instruction output you want from the compiler. Chances are good that you’ll get it with a modern compiler, even if you don’t resort to stupid tricks with the >>, XOR, or AND operators or manually strength-reducing divisions.
In and of itself, this means nothing. Does the change significantly improve performance in a performance critical part of the App? Is the new code easier to read, extend and maintain? Does the new code add vital features? LoC in and of itself is totally meaningless and doesn’t say anything about which code is better.
Spagatti code is impossible to maintain, every know that. Those 4 digit algorithm appear when people code with a debugger “oh, this case don’t work, let add few line to fix that” and do that over and over again 10 thousand time. When you plan what you are doing, you end up with smaller, easier to maintain code and not just a bunch of hack almost not working.
Smaller LoC often mean more preparation and cleaner “where I am going” path.
Testing every possibility is sometime smaller, but exceptionally slower than using more complex algorithm, you are right. But coding with only a goal at the end and debugging until you come close to it is not the right way to go and produce 3500 LoC algo when they should be less than 200 if you take the time to do a trace before writing it instead of during the coding process.
Just bought an Aspire Revo nettop for 190 euro.
It has an Atom 270 + 9400M ION, 1Gb, 160Gb hard disk, card reader, 803.11N, HDMI out, all in the same space as a Mac Mini. It is going to be my next HTPC. For that money I can’t build any other HTPC that is that small and capable. I am still messing with XBMC and Windows 7 on it but already I am very impressed.
No optical disk but that’s not really necessary anymore in the age of USB keys and NAS systems.
Need to iron out the remote control and some minor bits but it is fully capable of playing 720p. I haven’t played 1080 on it (I have nothing yet) but all reports say it will work.
Incidently, the next version “up” is the same box with 2Gb Ram and Windows Vista. That cost 250 pounds! Mine was 160. That means that Windows Vista + 1Gb Ram extra = 90 pounds!!! What does Microsoft promise to Asus to stop Linux from their netbooks?? They must promise something I am sure.
No doubt in my mind that ION will be a huge success!
Could it just be that people want a high performance, low power consumption laptop that in a small form factor?
Maybe it’s the laptop that needs to catch up to the netbook.
I’m finding it extremely difficult to locate, let alone purchase an ION product here in the US. It’s good news to me that Intel was just slapped with a $1.45 billion fine by the EU for anti-competitive practices. I think Intel is guilty of the same crime against Nvidia here in the US, hence the lack of US suppliers of ION products. You can certainly find loads of ATOM based products which are clearly inferior to Nvidia’s ION based products.
Edited 2009-06-30 13:56 UTC