The multi-core buzz is everywhere. Pick up a newspaper and the local
electronics mega-store is advertising multi-core desktops and laptops to the
consumer. Interesting, but what does it mean to the everyday Java programmer?
Maybe nothing. If you live in the application server world writing EJB-based
applications your application server does most of the heavy lifting for you.
It handles concurrency just fine. But that doesn't cover all applications.
Multi-core technology will especially affect applications that must process
large amounts of data in a non-transactional (outside of a database context)
manner. For this class of applications, the implications of multi-core are
huge.
Why? Well first, notice the processing speeds of multi-core processors.
They're not getting faster. In fact, they may be slowing down. As
manufacturers add more cores to a chip, the processi... (more)
There are two major drivers behind the need to embrace parallelism: the
dramatic shift to commodity multicore CPUs, and the striking increase in the
amount of data being processed by the applications that run our enterprises.
These two factors must be addressed by any approach to parallelism or we will
find ourselves falling short of resolving the crisis that is upon us. While
there are data-centric approaches that have generated interest, including
Map-Reduce, dataflow programming is arguably the easiest parallel strategy to
adopt for the millions of developers trained in serial... (more)
I target customers who have large data processing needs. These come in
various forms, but generically look like this: the customer gets huge data
drops in some form or another and must process the data and output results in
a very specific time frame. The customer has written some scripts, maybe some
code and SQL. They have attempted some optimizations that helped a little,
but they're not meeting their timeline. They have opportunities to take on
even larger processing jobs, but don't have the capacity. They need help,
now!
This is not an uncommon scenario. What to do? And what... (more)