I have been following the trend in CPU architecture for a long time. We have been using multi-core processor desktops and servers for over a year now. My interest is to know how legacy software applications are leveraging this new architecture for performance. Until recently, I did not hear much about enabling software programs for multi-core, why? I asked one of my friend who is an expert in parallel programming. He told me that there are a couple of reason majority of applications are not being touched. First, parallel programming is NOT easy and second, for now multi-core is limited to dual core in majority of places. Most you can get by enabling application is two fold performance gain on a dual core. This may not be worth overhauling the software, cost can be the problem. He explained that, once 8 and 16 core processor become common, then vendors will be forced to redisgn/rewrite/enable application for multi-core.
So, the next big question is how are the myriad of applications are going to be enabled for multi-core? Are there any tool/libraries available to do that?
I did some research and found out that indeed, a lot of efforts are going in developing standards and tools to enable multi-core programming.
- Intel's Threading Building Block (TBB) is an Open Source Library to enable multi-core parallelism in C++ program. TBB threaded applications automatically scale to fully utilize available cores on the system. TBB documentation including a tutorial and Getting started guide can be found here. The open source binaries for Windows, Linux and other platforms can be downloaded here.
- The OpenMP API for parallel programming supports C++ and fortran languages. The overview of OpenMP API can be downloaded here. I also found a nice exercise which I am going to try ..
- Microsoft provides a set of tools for parallel programming and concurrency testing at it's parallel computing portal.
I will keep my eye open and acquire some skills on the subject. Please post any comment / resources related to this here.
No comments:
Post a Comment