Threaded some loops that were previously not.

This commit is contained in:
falgout 2011-01-14 18:45:54 +00:00
parent 2b07c64640
commit e86279b488
2 changed files with 490 additions and 474 deletions

View File

@ -911,15 +911,17 @@ hypre_ZeroDiagonal( hypre_StructMatrix *A )
}
else
{
hypre_BoxLoop1Begin(loop_size, A_dbox, start, stride, Ai);
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,Ai
#define HYPRE_SMP_REDUCTION_OP *
#define HYPRE_SMP_REDUCTION_VARS diag_product
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop1For(loopi, loopj, loopk, Ai)
{
diag_product *= Ap[Ai];
}
hypre_BoxLoop1End(Ai);
}
}
if (diag_product == 0)

View File

@ -1140,15 +1140,17 @@ hypre_PointRelax_core12( void *relax_vdata,
t_data_box, start, stride, ti);
#ifdef USE_ONESTRIDE
#undef hypre_UserOutsideInnerLoop
#define hypre_UserOutsideInnerLoop\
p_tp = &tp[ti];\
p_xp0 = &xp[xi+xoff0];\
p_xp1 = &xp[xi+xoff1];\
p_xp2 = &xp[xi+xoff2];\
p_xp3 = &xp[xi+xoff3];\
p_xp4 = &xp[xi+xoff4];\
p_xp5 = &xp[xi+xoff5];\
#define hypre_UserOutsideInnerLoop \
p_tp = &tp[ti]; \
p_xp0 = &xp[xi+xoff0]; \
p_xp1 = &xp[xi+xoff1]; \
p_xp2 = &xp[xi+xoff2]; \
p_xp3 = &xp[xi+xoff3]; \
p_xp4 = &xp[xi+xoff4]; \
p_xp5 = &xp[xi+xoff5]; \
p_xp6 = &xp[xi+xoff6];
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,xi,ti
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop2For_OneStride(loopi, loopj, loopk, xi, ti)
{
p_tp[loopi] -=
@ -1194,14 +1196,16 @@ hypre_PointRelax_core12( void *relax_vdata,
t_data_box, start, stride, ti);
#ifdef USE_ONESTRIDE
#undef hypre_UserOutsideInnerLoop
#define hypre_UserOutsideInnerLoop\
p_tp = &tp[ti];\
p_xp0 = &xp[xi+xoff0];\
p_xp1 = &xp[xi+xoff1];\
p_xp2 = &xp[xi+xoff2];\
p_xp3 = &xp[xi+xoff3];\
p_xp4 = &xp[xi+xoff4];\
#define hypre_UserOutsideInnerLoop \
p_tp = &tp[ti]; \
p_xp0 = &xp[xi+xoff0]; \
p_xp1 = &xp[xi+xoff1]; \
p_xp2 = &xp[xi+xoff2]; \
p_xp3 = &xp[xi+xoff3]; \
p_xp4 = &xp[xi+xoff4]; \
p_xp5 = &xp[xi+xoff5];
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,xi,ti
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop2For_OneStride(loopi, loopj, loopk, xi, ti)
{
p_tp[loopi] -=
@ -1244,13 +1248,15 @@ hypre_PointRelax_core12( void *relax_vdata,
t_data_box, start, stride, ti);
#ifdef USE_ONESTRIDE
#undef hypre_UserOutsideInnerLoop
#define hypre_UserOutsideInnerLoop\
p_tp = &tp[ti];\
p_xp0 = &xp[xi+xoff0];\
p_xp1 = &xp[xi+xoff1];\
p_xp2 = &xp[xi+xoff2];\
p_xp3 = &xp[xi+xoff3];\
#define hypre_UserOutsideInnerLoop \
p_tp = &tp[ti]; \
p_xp0 = &xp[xi+xoff0]; \
p_xp1 = &xp[xi+xoff1]; \
p_xp2 = &xp[xi+xoff2]; \
p_xp3 = &xp[xi+xoff3]; \
p_xp4 = &xp[xi+xoff4];
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,xi,ti
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop2For_OneStride(loopi, loopj, loopk, xi, ti)
{
p_tp[loopi] -=
@ -1290,12 +1296,14 @@ hypre_PointRelax_core12( void *relax_vdata,
t_data_box, start, stride, ti);
#ifdef USE_ONESTRIDE
#undef hypre_UserOutsideInnerLoop
#define hypre_UserOutsideInnerLoop\
p_tp = &tp[ti];\
p_xp0 = &xp[xi+xoff0];\
p_xp1 = &xp[xi+xoff1];\
p_xp2 = &xp[xi+xoff2];\
#define hypre_UserOutsideInnerLoop \
p_tp = &tp[ti]; \
p_xp0 = &xp[xi+xoff0]; \
p_xp1 = &xp[xi+xoff1]; \
p_xp2 = &xp[xi+xoff2]; \
p_xp3 = &xp[xi+xoff3];
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,xi,ti
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop2For_OneStride(loopi, loopj, loopk, xi, ti)
{
p_tp[loopi] -=
@ -1332,11 +1340,13 @@ hypre_PointRelax_core12( void *relax_vdata,
t_data_box, start, stride, ti);
#ifdef USE_ONESTRIDE
#undef hypre_UserOutsideInnerLoop
#define hypre_UserOutsideInnerLoop\
p_tp = &tp[ti];\
p_xp0 = &xp[xi+xoff0];\
p_xp1 = &xp[xi+xoff1];\
#define hypre_UserOutsideInnerLoop \
p_tp = &tp[ti]; \
p_xp0 = &xp[xi+xoff0]; \
p_xp1 = &xp[xi+xoff1]; \
p_xp2 = &xp[xi+xoff2];
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,xi,ti
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop2For_OneStride(loopi, loopj, loopk, xi, ti)
{
p_tp[loopi] -=
@ -1370,10 +1380,12 @@ hypre_PointRelax_core12( void *relax_vdata,
t_data_box, start, stride, ti);
#ifdef USE_ONESTRIDE
#undef hypre_UserOutsideInnerLoop
#define hypre_UserOutsideInnerLoop\
p_tp = &tp[ti];\
p_xp0 = &xp[xi+xoff0];\
#define hypre_UserOutsideInnerLoop \
p_tp = &tp[ti]; \
p_xp0 = &xp[xi+xoff0]; \
p_xp1 = &xp[xi+xoff1];
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,xi,ti
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop2For_OneStride(loopi, loopj, loopk, xi, ti)
{
p_tp[loopi] -=
@ -1404,9 +1416,11 @@ hypre_PointRelax_core12( void *relax_vdata,
t_data_box, start, stride, ti);
#ifdef USE_ONESTRIDE
#undef hypre_UserOutsideInnerLoop
#define hypre_UserOutsideInnerLoop\
p_tp = &tp[ti];\
#define hypre_UserOutsideInnerLoop \
p_tp = &tp[ti]; \
p_xp0 = &xp[xi+xoff0];
#define HYPRE_BOX_SMP_PRIVATE loopk,loopi,loopj,xi,ti
#include "hypre_box_smp_forloop.h"
hypre_BoxLoop2For_OneStride(loopi, loopj, loopk, xi, ti)
{
p_tp[loopi] -=