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"
|
#include "mpi.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HYPRE_USING_OPENMP
|
||||||
|
#include <omp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -41,6 +41,8 @@ install: all
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -f *.o
|
@rm -f *.o
|
||||||
|
@rm -f *.prj
|
||||||
|
@rm -f *.kdd
|
||||||
|
|
||||||
veryclean: clean
|
veryclean: clean
|
||||||
@rm -f libHYPRE_*.a
|
@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);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
MPI_LOR( MPI_Datatype *datatype )
|
||||||
|
{
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* this is used only to eliminate compiler warnings */
|
/* 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_hvector hypre_MPI_Type_hvector
|
||||||
#define MPI_Type_struct hypre_MPI_Type_struct
|
#define MPI_Type_struct hypre_MPI_Type_struct
|
||||||
#define MPI_Type_free hypre_MPI_Type_free
|
#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.
|
* Types, etc.
|
||||||
|
|||||||
@ -122,7 +122,8 @@ extern "C" {
|
|||||||
#define MPI_Type_hvector hypre_MPI_Type_hvector
|
#define MPI_Type_hvector hypre_MPI_Type_hvector
|
||||||
#define MPI_Type_struct hypre_MPI_Type_struct
|
#define MPI_Type_struct hypre_MPI_Type_struct
|
||||||
#define MPI_Type_free hypre_MPI_Type_free
|
#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.
|
* Types, etc.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user