source: CIVL/examples/mpi-omp/AMG2013/utilities/hypre_smp_forloop.h

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*BHEADER**********************************************************************
2 * Copyright (c) 2008, Lawrence Livermore National Security, LLC.
3 * Produced at the Lawrence Livermore National Laboratory.
4 * This file is part of HYPRE. See file COPYRIGHT for details.
5 *
6 * HYPRE is free software; you can redistribute it and/or modify it under the
7 * terms of the GNU Lesser General Public License (as published by the Free
8 * Software Foundation) version 2.1 dated February 1999.
9 *
10 * $Revision: 2.4 $
11 ***********************************************************************EHEADER*/
12
13/*****************************************************************************
14 * Wrapper code for SMP compiler directives. Translates
15 * hypre SMP directives into the appropriate Open MP,
16 * IBM, SGI, or pgcc (Red) SMP compiler directives.
17 ****************************************************************************/
18
19#ifdef HYPRE_USING_OPENMP
20#ifndef HYPRE_SMP_REDUCTION_OP
21#pragma omp parallel for private(HYPRE_SMP_PRIVATE) \
22schedule(static)
23#endif
24#ifdef HYPRE_SMP_REDUCTION_OP
25#pragma omp parallel for private(HYPRE_SMP_PRIVATE) \
26reduction(HYPRE_SMP_REDUCTION_OP: HYPRE_SMP_REDUCTION_VARS) \
27schedule(static)
28#endif
29#endif
30
31#ifdef HYPRE_USING_SGI_SMP
32#pragma parallel
33#pragma pfor
34#pragma schedtype(gss)
35#pragma chunksize(10)
36#endif
37
38#ifdef HYPRE_USING_IBM_SMP
39#pragma parallel_loop
40#pragma schedule (guided,10)
41#endif
42
43#ifdef HYPRE_USING_PGCC_SMP
44#ifndef HYPRE_SMP_REDUCTION_OP
45#pragma parallel local(HYPRE_SMP_PRIVATE) pfor
46#endif
47#ifdef HYPRE_SMP_REDUCTION_OP
48#endif
49#endif
50
51#undef HYPRE_SMP_PRIVATE
52#undef HYPRE_SMP_REDUCTION_OP
53#undef HYPRE_SMP_REDUCTION_VARS
Note: See TracBrowser for help on using the repository browser.