My Photo

Become a Fan

DailyMile

Google Ad Skyscraper

« Bloom Filters for efficient fraud detection with IBM WebSphere eXtreme Scale | Main | Video of my QCON SF 2009 Session is online »

January 11, 2010

Comments

Denis Bazhenov

Life is getting more complex, as usual :)

But what about applications with high concurrency requirements. I think a lot of web application utilizing existing multi core boxes just by running several requests simultaneously. We should have wait a long time, I think, before the number of cores will overgrown concurrency requirements of medium scale web-applications even. Though if it will happen, it can be a serious problem for a lot of applications. It's not obvious how single web request can be parallelized, I think.

Billy Newport

I think thats my point. Java path lengths are getting longer, not shorter, more frameworks, more abstraction and so on. Most requests are still handled single threaded and so are sensitive to both clock speed of a single core and L2 cache size (as path length gets bigger, cache hit rates drop).

Denis Bazhenov

Ok, I get your point.

What do you think we should do right now, as a developers. I mean all this parallelization stuff is long term process. If we stuck one day, we couldn't just turn around and say: "Hey, I know what to do. There is tools, there is languages. Here we go...". Developers should learn some aspects of parallelization models, I think.

And this is very interesting question. There are several computation models which allows you to parallelize application. There is functional programming paradigm and message passing. There is nVidia CUDA with friends (IBM Cell, Intel Larrabee etc.) with good vectorization support but explicit knowledge about underlying hardware. As you mention in your interview at QCon, none of them are fit naturally in the Java.

Does this mean, that all we can do right now is just wait?

The comments to this entry are closed.