These files contain the OpenMP #pragmas and other routines. They are
included throughout other directories.
This commit is contained in:
parent
0c7c200fca
commit
64c2d0cfbc
@ -19,6 +19,10 @@
|
||||
#include "mpi.h"
|
||||
#endif
|
||||
|
||||
#ifdef HYPRE_USING_OPENMP
|
||||
#include <omp.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@ -41,6 +41,8 @@ install: all
|
||||
|
||||
clean:
|
||||
@rm -f *.o
|
||||
@rm -f *.prj
|
||||
@rm -f *.kdd
|
||||
|
||||
veryclean: clean
|
||||
@rm -f libHYPRE_*.a
|
||||
|
||||
50
utilities/hypre_smp_forloop.h
Normal file
50
utilities/hypre_smp_forloop.h
Normal file
@ -0,0 +1,50 @@
|
||||
/*BHEADER**********************************************************************
|
||||
* (c) 1998 The Regents of the University of California
|
||||
*
|
||||
* See the file COPYRIGHT_and_DISCLAIMER for a complete copyright
|
||||
* notice, contact person, and disclaimer.
|
||||
*
|
||||
* $Revision$
|
||||
*********************************************************************EHEADER*/
|
||||
/*****************************************************************************
|
||||
* Wrapper code for SMP compiler directives. Translates
|
||||
* hypre SMP directives into the appropriate Open MP,
|
||||
* IBM, SGI, or pgcc (Red) SMP compiler directives.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef HYPRE_SMP_PRIVATE
|
||||
#define HYPRE_SMP_PRIVATE
|
||||
#endif
|
||||
|
||||
#ifdef HYPRE_USING_OPENMP
|
||||
#include "hypre_smp_setup.h"
|
||||
#ifndef HYPRE_SMP_REDUCTION_OP
|
||||
#pragma omp parallel for private(HYPRE_SMP_PRIVATE) schedule(static)
|
||||
#endif
|
||||
#ifdef HYPRE_SMP_REDUCTION_OP
|
||||
#pragma omp parallel for private(HYPRE_SMP_PRIVATE) \
|
||||
reduction(HYPRE_SMP_REDUCTION_OP: HYPRE_SMP_REDUCTION_VARS) \
|
||||
schedule(static)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HYPRE_USING_SGI_SMP
|
||||
#pragma parallel
|
||||
#pragma pfor
|
||||
#pragma schedtype(gss)
|
||||
#pragma chunksize(10)
|
||||
#endif
|
||||
|
||||
#ifdef HYPRE_USING_IBM_SMP
|
||||
#pragma parallel_loop
|
||||
#pragma schedule (guided,10)
|
||||
#endif
|
||||
|
||||
#ifdef HYPRE_USING_PGCC_SMP
|
||||
#pragma parallel
|
||||
#pragma pfor
|
||||
#endif
|
||||
|
||||
#undef HYPRE_SMP_PRIVATE
|
||||
#undef HYPRE_SMP_REDUCTION_OP
|
||||
#undef HYPRE_SMP_REDUCTION_VARS
|
||||
23
utilities/hypre_smp_setup.h
Normal file
23
utilities/hypre_smp_setup.h
Normal file
@ -0,0 +1,23 @@
|
||||
/*BHEADER**********************************************************************
|
||||
* (c) 1998 The Regents of the University of California
|
||||
*
|
||||
* See the file COPYRIGHT_and_DISCLAIMER for a complete copyright
|
||||
* notice, contact person, and disclaimer.
|
||||
*
|
||||
* $Revision$
|
||||
*********************************************************************EHEADER*/
|
||||
/*****************************************************************************
|
||||
* Wrapper code for SMP compiler directives. Translates
|
||||
* hypre SMP directives into the appropriate Open MP,
|
||||
* IBM, SGI, or pgcc (Red) SMP compiler directives.
|
||||
****************************************************************************/
|
||||
#ifdef HYPRE_USING_OPENMP
|
||||
omp_set_num_threads(4);
|
||||
#endif
|
||||
|
||||
#ifdef HYPRE_USING_IBM_SMP
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@ -389,6 +389,12 @@ MPI_Type_commit( MPI_Datatype *datatype )
|
||||
return(0);
|
||||
}
|
||||
|
||||
int
|
||||
MPI_LOR( MPI_Datatype *datatype )
|
||||
{
|
||||
return(0);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* this is used only to eliminate compiler warnings */
|
||||
|
||||
@ -79,7 +79,8 @@ extern "C" {
|
||||
#define MPI_Type_hvector hypre_MPI_Type_hvector
|
||||
#define MPI_Type_struct hypre_MPI_Type_struct
|
||||
#define MPI_Type_free hypre_MPI_Type_free
|
||||
#define MPI_Type_commit hypre_MPI_Type_commit
|
||||
#define MPI_Type_commit hypre_MPI_Type_commit
|
||||
#define MPI_LOR hypre_MPI_LOR
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* Types, etc.
|
||||
|
||||
@ -122,7 +122,8 @@ extern "C" {
|
||||
#define MPI_Type_hvector hypre_MPI_Type_hvector
|
||||
#define MPI_Type_struct hypre_MPI_Type_struct
|
||||
#define MPI_Type_free hypre_MPI_Type_free
|
||||
#define MPI_Type_commit hypre_MPI_Type_commit
|
||||
#define MPI_Type_commit hypre_MPI_Type_commit
|
||||
#define MPI_LOR hypre_MPI_LOR
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* Types, etc.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user