Threading Technology
Threading technology was one of the first insights, right after the second key note. Sanjiv Shah, Senior Principle Engineer and Director of Intel Threading Lab, gave an interesting presentation about threading, its various advantages and disadvantages, as well as compilers from Intel that help to make threaded apps.
The presentation started with a general note about Dual Core CPUs, and the importance of having threaded programs to use their full potential. As most of you know, with a multi-core CPU, you can do several things at once without being slowed down - for example, you can quite comfortably run a virus scanner on one core, and assign the second core to Word, in which you are writing a document. Without threaded apps, there is no point in having multi-core CPUs. While companies are doing their best to churn out threaded applications, the process of making a threaded application can be time consuming - with hardware advancing so quickly, we need software right now to use its potential.
There are 2 types of threading: either functional or data decomposition. Functional, as the name implies, means that each core has a function to do, i.e. one core does the physics calculations, another works out the A.I., etc. Data decomposition literally splits the data - each core gets a fraction of the calculation, and it is pieced together at the end. There are of course advantages and disadvantages to both. With functional threading, you can perhaps run a program on an optimized core. However, when you have more cores than functions, you have a problem, as some cores will remain idle. Data decomposition scales well with the amount of cores, but you cannot have certain cores optimized for specific calculations.
To make the coding of threaded applications easier, Intel offers several solutions. For example, they have a software called Intel Building Blocks. This can work as a plug-in for Visual C++, and automatically optimizes your code so that it runs most efficiently on multi-core CPUs.
According to Sanjiv Shah, "Eventually, everybody will be threading". This is an insight into the future, but we all remember how people were proclaiming that GigaHertz is definitely the way to go. Only time will tell.