removed threading from the block routimes (interp, rap and relax)

This commit is contained in:
baker59 2011-01-19 00:14:04 +00:00
parent aee8513efc
commit 7646a0be56
3 changed files with 27 additions and 130 deletions

View File

@ -151,8 +151,9 @@ hypre_BoomerAMGBuildBlockInterp( hypre_ParCSRBlockMatrix *A,
hypre_MPI_Comm_size(comm, &num_procs); hypre_MPI_Comm_size(comm, &num_procs);
hypre_MPI_Comm_rank(comm,&my_id); hypre_MPI_Comm_rank(comm,&my_id);
num_threads = hypre_NumThreads(); /* num_threads = hypre_NumThreads(); */
num_threads = 1;
#ifdef HYPRE_NO_GLOBAL_PARTITION #ifdef HYPRE_NO_GLOBAL_PARTITION
my_first_cpt = num_cpts_global[0]; my_first_cpt = num_cpts_global[0];
@ -283,8 +284,7 @@ hypre_BoomerAMGBuildBlockInterp( hypre_ParCSRBlockMatrix *A,
jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads); jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads);
fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine); fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1; for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1;
jj_counter = start_indexing; jj_counter = start_indexing;
@ -294,9 +294,7 @@ hypre_BoomerAMGBuildBlockInterp( hypre_ParCSRBlockMatrix *A,
* Loop over fine grid. * Loop over fine grid.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
/* RDF: this looks a little tricky, but doable */
#define HYPRE_SMP_PRIVATE i,j,i1,jj,ns,ne,size,rest
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -443,8 +441,6 @@ hypre_BoomerAMGBuildBlockInterp( hypre_ParCSRBlockMatrix *A,
fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i,j,ns,ne,size,rest,coarse_shift
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
coarse_shift = 0; coarse_shift = 0;
@ -491,16 +487,12 @@ hypre_BoomerAMGBuildBlockInterp( hypre_ParCSRBlockMatrix *A,
if (debug_flag==4) wall_time = time_getWallclockSeconds(); if (debug_flag==4) wall_time = time_getWallclockSeconds();
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt; for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt;
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Loop over fine grid points. * Loop over fine grid points.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i,j,jl,i1,i2,jj1,jj,ns,ne,size,rest,sum_block,diagonal_block,distribute_block,P_marker,P_marker_offd,strong_f_marker,jj_counter,jj_counter_offd,c_num,jj_begin_row,jj_end_row,jj_begin_row_offd,jj_end_row_offd
#include "../utilities/hypre_smp_forloop.h"
for (jl = 0; jl < num_threads; jl++) for (jl = 0; jl < num_threads; jl++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -1120,8 +1112,6 @@ hypre_BoomerAMGBuildBlockInterp( hypre_ParCSRBlockMatrix *A,
{ {
P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < num_cols_A_offd; i++) for (i=0; i < num_cols_A_offd; i++)
P_marker[i] = 0; P_marker[i] = 0;
@ -1145,8 +1135,6 @@ hypre_BoomerAMGBuildBlockInterp( hypre_ParCSRBlockMatrix *A,
col_map_offd_P[i] = index++; col_map_offd_P[i] = index++;
} }
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < P_offd_size; i++) for (i=0; i < P_offd_size; i++)
P_offd_j[i] = hypre_BinarySearch(col_map_offd_P, P_offd_j[i] = hypre_BinarySearch(col_map_offd_P,
P_offd_j[i], P_offd_j[i],
@ -1927,8 +1915,7 @@ hypre_BoomerAMGBuildBlockInterpDiag( hypre_ParCSRBlockMatrix *A,
jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads); jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads);
fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine); fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1; for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1;
jj_counter = start_indexing; jj_counter = start_indexing;
@ -1938,9 +1925,7 @@ hypre_BoomerAMGBuildBlockInterpDiag( hypre_ParCSRBlockMatrix *A,
* Loop over fine grid. * Loop over fine grid.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
/* RDF: this looks a little tricky, but doable */
#define HYPRE_SMP_PRIVATE i,j,i1,jj,ns,ne,size,rest
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -2092,8 +2077,6 @@ hypre_BoomerAMGBuildBlockInterpDiag( hypre_ParCSRBlockMatrix *A,
fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i,j,ns,ne,size,rest,coarse_shift
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
coarse_shift = 0; coarse_shift = 0;
@ -2140,16 +2123,12 @@ hypre_BoomerAMGBuildBlockInterpDiag( hypre_ParCSRBlockMatrix *A,
if (debug_flag==4) wall_time = time_getWallclockSeconds(); if (debug_flag==4) wall_time = time_getWallclockSeconds();
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt; for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt;
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Loop over fine grid points. * Loop over fine grid points.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i,j,jl,i1,i2,jj1,jj,ns,ne,size,rest,sum_block,diagonal_block,distribute_block,P_marker,P_marker_offd,strong_f_marker,jj_counter,jj_counter_offd,c_num,jj_begin_row,jj_end_row,jj_begin_row_offd,jj_end_row_offd
#include "../utilities/hypre_smp_forloop.h"
for (jl = 0; jl < num_threads; jl++) for (jl = 0; jl < num_threads; jl++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -2816,8 +2795,6 @@ hypre_BoomerAMGBuildBlockInterpDiag( hypre_ParCSRBlockMatrix *A,
{ {
P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < num_cols_A_offd; i++) for (i=0; i < num_cols_A_offd; i++)
P_marker[i] = 0; P_marker[i] = 0;
@ -2841,8 +2818,6 @@ hypre_BoomerAMGBuildBlockInterpDiag( hypre_ParCSRBlockMatrix *A,
col_map_offd_P[i] = index++; col_map_offd_P[i] = index++;
} }
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < P_offd_size; i++) for (i=0; i < P_offd_size; i++)
P_offd_j[i] = hypre_BinarySearch(col_map_offd_P, P_offd_j[i] = hypre_BinarySearch(col_map_offd_P,
P_offd_j[i], P_offd_j[i],
@ -3155,8 +3130,7 @@ hypre_BoomerAMGBuildBlockInterpRV( hypre_ParCSRBlockMatrix *A,
jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads); jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads);
fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine); fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1; for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1;
jj_counter = start_indexing; jj_counter = start_indexing;
@ -3166,9 +3140,6 @@ hypre_BoomerAMGBuildBlockInterpRV( hypre_ParCSRBlockMatrix *A,
* Loop over fine grid. * Loop over fine grid.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
/* RDF: this looks a little tricky, but doable */
#define HYPRE_SMP_PRIVATE i,j,i1,jj,ns,ne,size,rest
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -3315,8 +3286,6 @@ hypre_BoomerAMGBuildBlockInterpRV( hypre_ParCSRBlockMatrix *A,
fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i,j,ns,ne,size,rest,coarse_shift
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
coarse_shift = 0; coarse_shift = 0;
@ -3363,16 +3332,12 @@ hypre_BoomerAMGBuildBlockInterpRV( hypre_ParCSRBlockMatrix *A,
if (debug_flag==4) wall_time = time_getWallclockSeconds(); if (debug_flag==4) wall_time = time_getWallclockSeconds();
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt; for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt;
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Loop over fine grid points. * Loop over fine grid points.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i,j,jl,i1,i2,jj1,jj,ns,ne,size,rest,sum_block,diagonal_block,distribute_block,P_marker,P_marker_offd,strong_f_marker,jj_counter,jj_counter_offd,c_num,jj_begin_row,jj_end_row,jj_begin_row_offd,jj_end_row_offd
#include "../utilities/hypre_smp_forloop.h"
for (jl = 0; jl < num_threads; jl++) for (jl = 0; jl < num_threads; jl++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -3954,8 +3919,7 @@ hypre_BoomerAMGBuildBlockInterpRV( hypre_ParCSRBlockMatrix *A,
{ {
P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < num_cols_A_offd; i++) for (i=0; i < num_cols_A_offd; i++)
P_marker[i] = 0; P_marker[i] = 0;
@ -3979,8 +3943,6 @@ hypre_BoomerAMGBuildBlockInterpRV( hypre_ParCSRBlockMatrix *A,
col_map_offd_P[i] = index++; col_map_offd_P[i] = index++;
} }
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < P_offd_size; i++) for (i=0; i < P_offd_size; i++)
P_offd_j[i] = hypre_BinarySearch(col_map_offd_P, P_offd_j[i] = hypre_BinarySearch(col_map_offd_P,
P_offd_j[i], P_offd_j[i],
@ -4288,8 +4250,7 @@ hypre_BoomerAMGBuildBlockInterpRV2( hypre_ParCSRBlockMatrix *A,
jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads); jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads);
fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine); fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1; for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1;
jj_counter = start_indexing; jj_counter = start_indexing;
@ -4299,9 +4260,7 @@ hypre_BoomerAMGBuildBlockInterpRV2( hypre_ParCSRBlockMatrix *A,
* Loop over fine grid. * Loop over fine grid.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
/* RDF: this looks a little tricky, but doable */
#define HYPRE_SMP_PRIVATE i,j,i1,jj,ns,ne,size,rest
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -4448,8 +4407,6 @@ hypre_BoomerAMGBuildBlockInterpRV2( hypre_ParCSRBlockMatrix *A,
fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i,j,ns,ne,size,rest,coarse_shift
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
coarse_shift = 0; coarse_shift = 0;
@ -4496,16 +4453,14 @@ hypre_BoomerAMGBuildBlockInterpRV2( hypre_ParCSRBlockMatrix *A,
if (debug_flag==4) wall_time = time_getWallclockSeconds(); if (debug_flag==4) wall_time = time_getWallclockSeconds();
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt; for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt;
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Loop over fine grid points. * Loop over fine grid points.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i,j,jl,i1,i2,jj,jj1,ns,ne,size,rest,sum_block,diagonal_block,distribute_block,P_marker,P_marker_offd,strong_f_marker,jj_counter,jj_counter_offd,c_num,jj_begin_row,jj_end_row,jj_begin_row_offd,jj_end_row_offd
#include "../utilities/hypre_smp_forloop.h"
for (jl = 0; jl < num_threads; jl++) for (jl = 0; jl < num_threads; jl++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -5087,8 +5042,6 @@ hypre_BoomerAMGBuildBlockInterpRV2( hypre_ParCSRBlockMatrix *A,
{ {
P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < num_cols_A_offd; i++) for (i=0; i < num_cols_A_offd; i++)
P_marker[i] = 0; P_marker[i] = 0;
@ -5112,8 +5065,6 @@ hypre_BoomerAMGBuildBlockInterpRV2( hypre_ParCSRBlockMatrix *A,
col_map_offd_P[i] = index++; col_map_offd_P[i] = index++;
} }
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < P_offd_size; i++) for (i=0; i < P_offd_size; i++)
P_offd_j[i] = hypre_BinarySearch(col_map_offd_P, P_offd_j[i] = hypre_BinarySearch(col_map_offd_P,
P_offd_j[i], P_offd_j[i],
@ -5332,8 +5283,7 @@ hypre_BoomerAMGBuildBlockDirInterp( hypre_ParCSRBlockMatrix *A,
jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads); jj_count_offd = hypre_CTAlloc(HYPRE_Int, num_threads);
fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine); fine_to_coarse = hypre_CTAlloc(HYPRE_Int, n_fine);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1; for (i = 0; i < n_fine; i++) fine_to_coarse[i] = -1;
jj_counter = start_indexing; jj_counter = start_indexing;
@ -5343,9 +5293,7 @@ hypre_BoomerAMGBuildBlockDirInterp( hypre_ParCSRBlockMatrix *A,
* Loop over fine grid. * Loop over fine grid.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
/* RDF: this looks a little tricky, but doable */
#define HYPRE_SMP_PRIVATE i,j,i1,jj,ns,ne,size,rest
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -5491,8 +5439,6 @@ hypre_BoomerAMGBuildBlockDirInterp( hypre_ParCSRBlockMatrix *A,
fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); fine_to_coarse_offd = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i,j,ns,ne,size,rest,coarse_shift
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
coarse_shift = 0; coarse_shift = 0;
@ -5536,16 +5482,13 @@ hypre_BoomerAMGBuildBlockDirInterp( hypre_ParCSRBlockMatrix *A,
if (debug_flag==4) wall_time = time_getWallclockSeconds(); if (debug_flag==4) wall_time = time_getWallclockSeconds();
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt; for (i = 0; i < n_fine; i++) fine_to_coarse[i] -= my_first_cpt;
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Loop over fine grid points. * Loop over fine grid points.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i,j,jl,i1,jj,ns,ne,size,rest,P_marker,P_marker_offd,jj_counter,jj_counter_offd,jj_begin_row,jj_end_row,jj_begin_row_offd,jj_end_row_offd
#include "../utilities/hypre_smp_forloop.h"
for (jl = 0; jl < num_threads; jl++) for (jl = 0; jl < num_threads; jl++)
{ {
size = n_fine/num_threads; size = n_fine/num_threads;
@ -5900,8 +5843,6 @@ hypre_BoomerAMGBuildBlockDirInterp( hypre_ParCSRBlockMatrix *A,
{ {
P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd); P_marker = hypre_CTAlloc(HYPRE_Int, num_cols_A_offd);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < num_cols_A_offd; i++) for (i=0; i < num_cols_A_offd; i++)
P_marker[i] = 0; P_marker[i] = 0;
@ -5925,8 +5866,6 @@ hypre_BoomerAMGBuildBlockDirInterp( hypre_ParCSRBlockMatrix *A,
col_map_offd_P[i] = index++; col_map_offd_P[i] = index++;
} }
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i=0; i < P_offd_size; i++) for (i=0; i < P_offd_size; i++)
P_offd_j[i] = hypre_BinarySearch(col_map_offd_P, P_offd_j[i] = hypre_BinarySearch(col_map_offd_P,
P_offd_j[i], P_offd_j[i],

View File

@ -331,7 +331,9 @@ hypre_ParCSRBlockMatrixRAP(hypre_ParCSRBlockMatrix *RT,
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
hypre_MPI_Comm_size(comm,&num_procs); hypre_MPI_Comm_size(comm,&num_procs);
num_threads = hypre_NumThreads(); /* num_threads = hypre_NumThreads(); */
num_threads = 1;
bnnz = block_size * block_size; bnnz = block_size * block_size;
r_a_products = (double *) malloc(bnnz * sizeof(double)); r_a_products = (double *) malloc(bnnz * sizeof(double));
r_a_p_products = (double *) malloc(bnnz * sizeof(double)); r_a_p_products = (double *) malloc(bnnz * sizeof(double));
@ -496,8 +498,6 @@ hypre_ParCSRBlockMatrixRAP(hypre_ParCSRBlockMatrix *RT,
{ {
jj_count = hypre_CTAlloc(HYPRE_Int, num_threads); jj_count = hypre_CTAlloc(HYPRE_Int, num_threads);
#define HYPRE_SMP_PRIVATE i,ii,ic,i1,i2,i3,jj1,jj2,jj3,ns,ne,size,rest,jj_counter,jj_row_begining,A_marker,P_marker
#include "../utilities/hypre_smp_forloop.h"
for (ii = 0; ii < num_threads; ii++) for (ii = 0; ii < num_threads; ii++)
{ {
size = num_cols_offd_RT/num_threads; size = num_cols_offd_RT/num_threads;
@ -703,8 +703,6 @@ hypre_ParCSRBlockMatrixRAP(hypre_ParCSRBlockMatrix *RT,
* Second Pass: Fill in RAP_int_data and RAP_int_j. * Second Pass: Fill in RAP_int_data and RAP_int_j.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i,ii,ic,i1,i2,i3,jj1,jj2,jj3,ns,ne,size,rest,jj_counter,jj_row_begining,A_marker,P_marker
#include "../utilities/hypre_smp_forloop.h"
for (ii = 0; ii < num_threads; ii++) for (ii = 0; ii < num_threads; ii++)
{ {
size = num_cols_offd_RT/num_threads; size = num_cols_offd_RT/num_threads;
@ -1118,8 +1116,6 @@ hypre_ParCSRBlockMatrixRAP(hypre_ParCSRBlockMatrix *RT,
jj_cnt_diag = hypre_CTAlloc(HYPRE_Int, num_threads); jj_cnt_diag = hypre_CTAlloc(HYPRE_Int, num_threads);
jj_cnt_offd = hypre_CTAlloc(HYPRE_Int, num_threads); jj_cnt_offd = hypre_CTAlloc(HYPRE_Int, num_threads);
#define HYPRE_SMP_PRIVATE i,j,k,jcol,ii,ic,i1,i2,i3,jj1,jj2,jj3,ns,ne,size,rest,jj_count_diag,jj_count_offd,jj_row_begin_diag,jj_row_begin_offd,A_marker,P_marker
#include "../utilities/hypre_smp_forloop.h"
for (ii = 0; ii < num_threads; ii++) for (ii = 0; ii < num_threads; ii++)
{ {
size = num_cols_diag_P/num_threads; size = num_cols_diag_P/num_threads;
@ -1386,8 +1382,6 @@ hypre_ParCSRBlockMatrixRAP(hypre_ParCSRBlockMatrix *RT,
* Second Pass: Fill in RAP_offd_data and RAP_offd_j. * Second Pass: Fill in RAP_offd_data and RAP_offd_j.
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i,j,k,jcol,ii,ic,i1,i2,i3,jj1,jj2,jj3,ns,ne,size,rest,jj_count_diag,jj_count_offd,jj_row_begin_diag,jj_row_begin_offd,A_marker,P_marker
#include "../utilities/hypre_smp_forloop.h"
for (ii = 0; ii < num_threads; ii++) for (ii = 0; ii < num_threads; ii++)
{ {
size = num_cols_diag_P/num_threads; size = num_cols_diag_P/num_threads;

View File

@ -185,8 +185,9 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
one_minus_omega = 1.0 - omega; one_minus_omega = 1.0 - omega;
hypre_MPI_Comm_size(comm, &num_procs); hypre_MPI_Comm_size(comm, &num_procs);
hypre_MPI_Comm_rank(comm, &my_id); hypre_MPI_Comm_rank(comm, &my_id);
num_threads = hypre_NumThreads(); /* num_threads = hypre_NumThreads(); */
num_threads = 1;
res_vec = hypre_CTAlloc(double, block_size); res_vec = hypre_CTAlloc(double, block_size);
out_vec = hypre_CTAlloc(double, block_size); out_vec = hypre_CTAlloc(double, block_size);
tmp_vec = hypre_CTAlloc(double, block_size); tmp_vec = hypre_CTAlloc(double, block_size);
@ -247,8 +248,6 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
* Copy current approximation into temporary vector. * Copy current approximation into temporary vector.
*-----------------------------------------------------------------*/ *-----------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n*block_size; i++) for (i = 0; i < n*block_size; i++)
{ {
Vtemp_data[i] = u_data[i]; Vtemp_data[i] = u_data[i];
@ -265,8 +264,6 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (relax_points == 0) if (relax_points == 0)
{ {
#define HYPRE_SMP_PRIVATE i,ii,jj,res_vec
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
@ -315,8 +312,6 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
else else
{ {
#define HYPRE_SMP_PRIVATE i,ii,jj,res_vec
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
@ -413,8 +408,7 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
* Copy current approximation into temporary vector. * Copy current approximation into temporary vector.
*-----------------------------------------------------------------*/ *-----------------------------------------------------------------*/
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n*block_size; i++) for (i = 0; i < n*block_size; i++)
{ {
Vtemp_data[i] = u_data[i]; Vtemp_data[i] = u_data[i];
@ -443,12 +437,10 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;
@ -563,12 +555,10 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;
@ -701,12 +691,8 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;
@ -843,12 +829,8 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;
@ -1070,12 +1052,8 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;
@ -1285,12 +1263,8 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;
@ -1515,8 +1489,6 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
prod = (1.0-relax_weight*omega); prod = (1.0-relax_weight*omega);
res0_vec = hypre_CTAlloc(double, block_size); res0_vec = hypre_CTAlloc(double, block_size);
res2_vec = hypre_CTAlloc(double, block_size); res2_vec = hypre_CTAlloc(double, block_size);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
Vtemp_data[i] = u_data[i]; Vtemp_data[i] = u_data[i];
@ -1527,12 +1499,8 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;
@ -1787,12 +1755,8 @@ HYPRE_Int hypre_BoomerAMGBlockRelax( hypre_ParCSRBlockMatrix *A,
if (num_threads > 1) if (num_threads > 1)
{ {
tmp_data = hypre_CTAlloc(double,n); tmp_data = hypre_CTAlloc(double,n);
#define HYPRE_SMP_PRIVATE i
#include "../utilities/hypre_smp_forloop.h"
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
tmp_data[i] = u_data[i]; tmp_data[i] = u_data[i];
#define HYPRE_SMP_PRIVATE i,ii,j,jj,ns,ne,res_vec,rest,size
#include "../utilities/hypre_smp_forloop.h"
for (j = 0; j < num_threads; j++) for (j = 0; j < num_threads; j++)
{ {
size = n/num_threads; size = n/num_threads;