Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

openmp with pthread_alloc

jnkim
Beginner
442 Views
Hello,

I'm wondering if anyone has used gnu pthread_alloc (A thread-safe allocator that uses a different memory pool for each thread, according to SGI STL site) with stl containers on IA64-2.

Since most of the local data can be created within an OpenMP parallel region, I expect that an allocator that can ensure the data locality will greatly improve the performance.

Any comment or suggestion?

Is there an equivalent allocator intel compiler provides?

Or, can you recommend any STL compliant allocator that can do better that pthread_alloc?
Thanks.
0 Kudos
4 Replies
TimP
Honored Contributor III
442 Views
According to my understanding, the OpenMP incorporated with Intel compilers employs the linux pthreads. It should accomplish the thread local data storage placement for static scheduled parallel regions, when the application is organized so that "first touch" occurs in such a parallel region. On Altix, this requires use of the dplace tool.
In real applications, clearly, a great deal remains to be accomplished in getting this all to work effectively, including efficient placement of shared regions.
The question might be more topical on the Intel Threading forum.
0 Kudos
jnkim
Beginner
442 Views
Thank you for the information.

As you suggested the threading forum, do you recommend submitting questions about intel c++ compiler with openmp to the threading forum in general?

Can you kindly direct me to the threading forum? I see vtune-related discussions and I am not quite sure any question about c++/openmp can be answered without being asked to use vtune. Our system (SGI Altix, running 2.4 linux kernel) does not have vtune and I'm doubtful that the situation will change.

Thanks again.
0 Kudos
TimP
Honored Contributor III
442 Views
Threading forum:
http://softwareforums.intel.com/ids/board?board.id=42

You should be able to find Intel Forum page simply by going up the URL tree.
0 Kudos
TimP
Honored Contributor III
442 Views
I agree that analysis of the thread performance problems you raise requires, at a minimum, some type of thread profiling. I am not familiar with support which Altix may provide for this.
Among the Intel tools, the -openmp_profile compiler link option is a useful start. It produces a file which can be analyzed by a separate installation of Vtune with Thread Profiler on a 32-bit desktop. You can analyze performance by thread, varying the number of threads, and determine which threads may have performance scaling problems, such as those related to non-local data placement.
0 Kudos
Reply