FACEBOOK'S number one techie has ripped into AMD and Intel for producing server processors that don't deliver performance gains.
Jonathan Heiliger, Facebook veep of technical operations, said salespeople from Chipzilla and AMD will promise the known world, but when the chips are down, the new technology doesn't do anything wonderful.
He said he is constantly trying to upgrade Facebook's infrastructure to keep up with growth in users and data, while trying to minimise power consumption to save money. But the new microarchitectures and the performance gains the chip heavyweights tout in the press are not reflected in Facebook's applications.
Heiliger said that his team is scratching its collective head and wondering why that is. Surely it could not be because the chip industry is telling porkies?
He also slagged off server OEMs who he said "did not get it". Servers flogged to Facebook have to be cheap and super power-efficient. But OEMs really don't do enough to provide what Facebook wants when it comes to large computing clusters, Heiliger said.
So far the hardware industry has fallen short when it comes to delivering very power-efficient servers to carry out a limited set of functions for big customers such as Facebook and Amazon, he added. µ
Maybe the new CPUs are just fine but does the software utilize them as it should? Benchmarks shows significant gains on the new CPUs (i use my CPUs for 3D rendering). Somehow, this Facebook techie doesn't sound convincing.
One very important thing he should consider: while russian or east european programes have highly optimized their software to work on old machines, theirs colegues from richer parts of the planet, they didn't bother with that problem. it's not just to write the code, it's how you do it!
Sounds like someone is trying to cover their own arse.
The chips are faster than previous chips... however any decent server engineer would know several things.
1. Its not always the CPUs that are the weakest link that is limiting performance, the Bus, the database or the lack of ram could be causing the problem, upgrading the CPUs in these cases wouldn't help.
2. Upgrading the CPUs to have more cores won't help unless the code is optimised to run on multiple cores. In the same way code optimised for dual cores won't see a signifigant improvement on quad-cores.
The benchmark tests prove a performance increase, just cos the CPU is faster doesn't mean the whole system will run faster unless the CPU was the weakest link however.....
Shifting blame is fun isn't it!! :)
(I'm in no afflicated with AMD or Intel, I don't even like Intel and am only mildly keen on AMD :) )
the reason is that x86 cpus are getting old fashioned and limited, they needs to move on, Parallel Stream Processing is much more Efficient and 10 times the performance. X86 needs to be scrapped.
Facebook is using PHP, which is an interpreted language and is not the best performer as programming language. It is not even near to the best performers.
http://www.timestretch.com/FractalBenchmark.html
Maybe they are using the wrong software platform and blaming hardware for that?
No thing as a free lunch.
General rule, when it comes to software frameworks easy_produce != fast_when_run
The guy needs to rewrite the system using something better (Java?)
Wanting more computation throughput with lower power consumption...ain't going to happen. That is like wanting a 1000 hp sports car that also gets 100 miles per gallon. You can't get two opposite things at the same time. Yes, some CPUs are built with some power saving features (like turning off sections which are not being used) but those should not be expected in a server environment and smaller engineering features do help a bit but when your goal is to push through data & crunch numbers, your going to use electricity & make heat. Add to that what others have said concerning bloated & inefficient code...this guy should really quit crying and wise up.
Jeff
Actually he makes a fair comment, hardware manufacturers, CPU's and GPU's especially have not really delivered an awful lot more to the table in terms of performance. Whilst the rest of a system needs to be looked at in terms of bottlenecks, the CPU is almost always the limiting factor in large scale data centres.
His main point actually concerns the big box suppliers of servers who despite a great opportunity still haven't got the hint. This article I believe should hammer the point home and get some enterprising young souls working on solutions for them.
The CPUs are fine, as are the buses they run with, and to be honest, I've never been so upbeat about the future of computing. Considering how long we have been with PCI, PCI-E is a welcome kick in the butt for general I/O performance - which used to be the reason why people bought extremely expensive Sun kit - but is now the preserve of anyone who owns a modern PC or rackmount server.
However, this guy is a total moron if he thinks that the hardware isn't delivering. It is far more likely that Facebook has a team of software engineers who couldn't tell a spinlock apart from a mutex. I've been in a situation where I've had to deploy really badly-written applications on hardware (and it IS depressing), but I always knew enough to place the blame where it belonged.
I've actually had dinner with some particularly spectacular morons who actually believed that Java code could be as fast as C. When I later heard that they were astonished at the performance they got from using the Intel compiler instead of gcc (welcome to the real world, chaps!), I nearly died laughing. The more I witness these kinds of people, the more I think that humanity is coming to a very sticky end.
....often these social networks that explode into huge monsters suffer from a distinct lack of initial development.
Maybe written by a small bunch of guys possibly for their own amusement and then bang..six months later its gone out of control and having to handle thousands of times the data it was meant to. you can tell from how ropey and amatuerish a lot of them look.
Very hard to go back and restructure it all.
You cant beat proper structured and planned development from day one.
Maybe if programmers quit writing in crappo scripting languages, they'd not go pissing away the substantial hardware performance gains made over the last few years.
Not so long ago, 90nm was a teeny-tiny geometry. Hardware people did their part.
ScottJ
Maybe if AMD wouldn't have been crawling in the mud for the past few years, due to Intel’s miserable anti-competitive practices, you would really have some processors with GENUINE PERFORMANCE, instead of rubbish. Now, you can choose between expensive stupid design or under-performing processors from a company struggling to survive. It feels good, doesn’t it?
These days I’m buying a laptop, and it will have an AMD processor, even if an Intel would have double the performance (which is not the case). I don’t like greedy corporate pigs. If they win, we will go nuts again cursing in front of a slow-motion Celeron or some other piece of rubbish. I don’t want to go back to that ! I've been there enough !
"CPUs are dead! Facebook should replace them with CUDA-supporting GPUs to open a can of whoop-a$$!" - Jen Hsun-Huang
It is a poor workman who blames his tools
Yes php is slow, Just try Resin PHP over JVM
http://www.caucho.com/resin-3.0/quercus/
at least 2x performance improvement with the same hardware
To Oliver Jones
"spectacular morons who actually believed that Java code could be as fast as C"
Yes Java could be faster than C in some tests just see:
http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=java&lang2=gcc&box=1
java is faster in regex-dna and chameneos-redux tests
and java is as fast as c in binary-trees, n-body, fannkuch and spectral-norm tests
Java problems are:
a deterministic garbage collection
it can't use (yet) SIMD Open CL aceleration
time to warm up
but none of them apply to a software like facebook
Facebook techie should check his crappy facebook software and not blame it on amd/intel server chips.
Google builds all their servers in house.
...and write Facebook in C. Or C++ if you absolutely have to. Apart from needing a largeish harddisk you could run the entire thing on a 486. And don't bother with assembler. I applaud previous comments about proper compilers/crappy script languages too, though I would tentatively suggest that Intel are merely copying what Sun did with their C/C++ compiler ages ago.
More seriously, it's interesting that Google have avoided using industry 'norms'. Google Earth is a bespoke native app, not something stuck within a browser, and surprise surprise it runs quite nicely thank you very much. Also Google don't bother buying off-the-shelf servers from anyone, they do their own in a most unorthodox way. And you have to ask why, given Google's success, would one not copy them when setting up a truely huge data centre.
.
it's all about the porkulus
.
Every so often CPU’s do improve“noticeably” but this is a slow process.
Intel/AMD produces chips with incremental improvements so we just keep replacing them more often.
Obviously there are technological/financial resons to way this is. So for the home user, its worth waiting longer to upgrade. The only problem with this everything else has to be upgraded i.e. MB, MB etc,
will are slaves to these corporate chip makers…
my, my ... somebody is sure in a sour mood.
I got my first PC 30 years ago and have been following Intel, AMD and others since then with each new CPU generation and each new fab process to todays 45nm & 32nm.
If you think this is achieved by paying custonmers to buy your products, you haven't been paying attention.
To get to 80% market share you have to deliver year after year and continue to drive prices down while pushing performance up.
Erm... or perhaps the lack of performance gains is because of some of the student Zach's "while (true) { trace('i own3d j00, investors'); " coding ::- D.
Dunno what exactly the bottleneck would be for this facebook techy, but as he's moaning about Intel/AMD in first instance then that would be the CPU, now wouldn't it ?
As teh man wantsa more performance for less wattage then, and he's not doodling about too little HD capacity, network bandwidth nor PCIe performance.
Well then.... what he needs to do is get his facebook code in hardware Ageia-style. Similar to Jabba-on-a-chip, or the 3Des cracker. About the GPU thing; that thing shines with matrix calculations, so he or someone else should be looking into a DB driven on CUDA.
If he/she/it needs performance and the CPU is the bottleneck, then IMHO a GPU driven DB could very well be his solution. Yes, a DB on a GPU, that would be my answer. What startup is willing to go to and beg for some dosh on this bearmarket rally and get stuff going ?
my €0.02
Someone needs to use a better software for his benchmarking..
Try running some distributed computing projects through Boinc (I know still not the best but you get a fairly quick showing from some real world number crunching.)
The I-7's and Phenom II's do preform better than their predecessors.
BUT! Not so much better that I'm in any rush to go out and buy 'em.
The industry is going to have to pull their heads out and show me something a LOT better than the current offerings to pry me away from my Q6600s. IMHO the minor performance gains are not worth the expense.
What does the Twitter techie think?
Seriously I agree with some of the comments here, programmers are just too lazy generally. Especially when it comes to learning new features etc. That has been evident ever since multi CPU and then multicore CPU's have been out. It doesn't take a lot of effort, but they couldn't be bothered.
Being a coder is like being an artist. Some are creative and have talent and some can only paint by numbers..
I don't know what's worse, the fact that anyone cares what a "Facebook techie" thinks, or that the INQ reported on it as well. Blogs are the lowest of the low for "journalism" and I am really just dignifying blogging by using it in the same sentence.
PHP guarantees/enforces a certain level of parallelism and scalability because state can't be shared between page requests. You can keep throwing machines at PHP and it will get faster. Same can't necessarily be said of Java. If they used Java from the outset they may have suffered the same performance problems as Friendster and nobody would know the word "Facebook" today.
So, PHP allowed Facebook to easily scale up to be one of the largest and most popular services on the internet, but their electric bills are high now. Boo hoo.
As for Intel/AMD promising performance and not delivering, why doesn't a customer like Facebook get these promises in writing and get some kind of compensation if they're broken?
Painted ourselves in the corner, are we? Did they plan their data center and wrote their software/build system in such a way that having multiple processes on one machine impossible? Pretty easy to utilize all CPU this way... Throw in CPU affinity for good measure and you're golden.
What's worse, current software architects have thrown out almost everything that hardware engineers learned. Why are there 3 levels of cache in mainstream CPUs, again? There are reasons for that: latency, being major. Yet software architects decided that writing stateless services is easier to achieve better scale operationally, with a single remote, distributed mega-cache. Rude awakening, dudes!
This facebook honcho is right on the money, although its obviously true that other factors come into play as well.
In realworld everyday performance the new batch of CPUs aren't offering that much of a performance gain over the last lot of processors. It'd be in a lot of companies interests to upgrade every 5 years, then performance gains are sure to be noticed. Don't believe the hype from these companies offering the earth.