|
There's a lot of talk these days emanating from both Intel and Microsoft about the importance of being able to develop applications in parallel. Much of this discussion is being driven by the simple fact that as systems that use multiple cores continue to come on the market we basically have to find something that can take advantage of them.
But what seems to get overlooked in all the discourse is the real benefits to be gained by taking on the difficult challenges associated with creating applications that run in parallel across multiple processors.
First and foremost among those benefits could be a new generation of user interface. As we move to incorporate voice and video directly into applications, a new approach to user interface design is going to be required. To make that happen, we're going to need multiple processors to power different elements of the user interface as we move away from flat, two-dimensional user interfaces in favor of rich, three-dimensional interfaces that incorporate voice and video.
The next place where we see some major benefits is the whole area of security. There is an old adage that says a developer can do one of three things. They can add features to the application, they can increase performance or they can add security. The trade-off is that they can on do two out of those three things so security usually gets the short shrift. But in a world where there are multiple cores available, we should have the processing power available to make applications more secure without degrading performance or having to cut back on features.
The other area where we should see some tremendous advancement is how we interact with each other on the Web. Parallelism should lead to an explosion of avatars that we can use to represent ourselves on the Web. Furthermore, those avatars might be able to interact with others and take actions on our behalf without us having to by physically be on line.
Beyond that the whole way we think about search might be transformed as well. As search engines become smarter about who we are and what are interests are, they can leverage multiple cores to gain the processing power that might be needed to search for things that we're interesting in on an ongoing basis. At the very least, they should be able to provide more context around our searches so that when a technology searches for a Windows expert in New York City he doesn't get a long list of things that include a whole bunch of window washers.
Meanwhile, there are a host of business issues that will drive developers to embrace parallelism. As the business continues to be more global in nature, we're going to need applications that can process data 24 hours a day, seven days a week. Secondarily, there is a whole field known as quants in the financial services sector that is used to establish the financial relationships between different types of stocks. Many of those same theories can be applied to retail and other sectors once the underlying hardware needed to power those types of applications becomes more affordable. In short, this could dramatically transform the way we think about business intelligence applications.
There are a lot of other areas where parallelism seems to add a lot of value. Up until now it's been a technique largely applied to mathematical and scientific applications. But as multicore processors become more common we may on the verge of a new Renaissance period in application development that could change just about every aspect of enterprise computing. The only real problem with that scenario is the lack of knowledge about parallelism, which isn't easy, among developers. But when you think about all the possibilities, it becomes pretty clear that demand for all kinds of applications that have the potential to give companies a major competitive advantage is going to push developers to master the intricacies of parallelism a lot sooner than most people might think
|