Develop a methodology for the tuning phase of the development cycle. The tuning phase increases performance incrementally where possible.
Identify memory conflicts in a data-decomposition problem to identify data-restructuring requirements. This procedure is part of the design phase for threaded applications that is necessary in order to identify issues that could cause performance degradation.
Due to an issue with the default libthread library on Pardus Linux* version 2011.2, 64-bit, the debugger cannot detect which threading library is being used by the debuggee.
So when using OpenMP* thread commands
idb info <option>
in a debugging session the Intel® IDB Debugger will not provide any OpenMP related thread information. Multithreading debugging however is not affected by this limitation, it's just an issue with displaying the thread info.
Use of Profile Guided Optimization with OpenMP* may substantially increase the execution time for the generation of the profile (.dyn file). This is a known issue which is being addressed. The use of profile guided optimization in conjunction with OpenMP is not recommended.
As part of my focus on software performance, I also support and consult on implementing scalable parallelism in applications. There are many reasons to implement parallelism as well as many methods for doing it - but this blog is not about either of those things. This blog is about the performance advantages of one particular way of implementing parallelism - and, luckily, that way is supported by several models available.