Hi Tomasz On Sun, Aug 22, 2010 at 3:29 PM, Tomasz Janeczko <[email protected]>wrote:
> > > Hello, > evolves.) As to technical reasons - among other things - to do actual > tests. 4 years ago I have written portions of AFL engine using OpenMP > (parallel library) to test actual, real-world performance of parallel > (multi-core) code vs single-core on AMD Athlon64x2 (2core) Last year, I > bought i7 to re-run those tests on latest hardware. The conclusion is the > same, fine-grain parallelism (the one that OpenMP supports) with 3:1 memory > to FPU ratio makes no sense performance-wise. You need much more FPU/CPU > calcs per single memory access to make it worthwhile. > Have you taken a look at Intel's Threading Building Blocks library? It is strictly C++ (unless they have released versions for other languages since last I looked), and I doubt it would provide benefit for either the presentation layer or data layer, but it may prove useful for the business layer. As I understand it, it provides a form of parallelism complementary to that provided by OpenMP (the two can be used together). It is written to mirror the normal usage of the containers in STL, and saves the programmer from having to worry about threading strategies, or the detail work involved in creating, managing and freeing threads. Better, the library itself has logic built in to determine, within limits, the optimal threading strategy (the programmer can reset these limits should he see a need to do so), and it does so based on the hardware it finds itself running on. This means that once you have built your program, you need not rebuild it for each different architecture. The studies I have read indicate it has respectable scaling properties. The downside is that for an existing application, good usage means a lot of code has to be rewritten, and some optimization options for single threaded code are not possible, or at least extremely difficult, to use. If you have looked at Intel's TBB library, I'd be interested in hearing what your experience with it was. Cheers Ted
