we are trying to speed up a parallel program using the Intel Compiler and the OpenMP library.
We have observed that the program hangs after running ok for 3-4 days, in one of the parallel loops. The binary keeps running but stays in a permanent waiting state. Here is the gdb stack trace:
I am running a hybrid MPI/OpenMP code which is:
call MPI_Init( ierr )
call MPI_Comm_rank( MPI_COMM_WORLD, rank, ierr )
call MPI_Comm_size( MPI_COMM_WORLD, size, ierr )
t1 = MPI_Wtime( )
!$omp parallel do private(i, x) reduction(+ : pi_partial)
do i = rank, N-1, size
x = (dble( i ) + 0.5_DP) * dx
pi_partial = pi_partial + f( x )
I have studied the openmp reduction function kmp_reduce and the conclusion is :
if (lck!=NULL) ==> we can do CRITICAL version
if (reduce_data!=NULL && reduce_func!=NULL) ==> we can do TREE version
if ((loc->flags & KMP_IDENT_ATOMIC_REDUCE) == KMP_IDENT_ATOMIC_REDUCE) ==> we can do ATOMIC version
So i have created 3 flags which tests the conditions above (CRITICAL, TREE, ATOMIC)
I have done some tests of openmp reductions to look at the results of these flags, but it seems to be always at 1.
Intel has just launched the Intel® Modern Code Developer Community to help HPC developers code for maximum performance on current and future hardware. The initiative is targeted to more than 400,000 HPC-focused developers and partners.
Use these parallel programming resources to optimize with your Intel® Xeon® processor and Intel® Xeon Phi™ coprocessor.
I am working HPC and trying to install NWchem but finding some error while compiling...
the following are the commands I have done in the node:
source /opt/intel/impi/4.1.3.048/bin64/mpivars.sh intel64
source /opt/intel/composer_xe_2013_sp1/bin/compilervars.sh intel64
- Página 1