LCOV - code coverage report
Current view: top level - utils - omp.cpp (source / functions) Coverage Total Hit
Test: Palace Coverage Report Lines: 72.2 % 18 13
Test Date: 2025-10-23 22:45:05 Functions: 66.7 % 6 4
Legend: Lines: hit not hit

            Line data    Source code
       1              : // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
       2              : // SPDX-License-Identifier: Apache-2.0
       3              : 
       4              : #include "omp.hpp"
       5              : 
       6              : #if defined(MFEM_USE_OPENMP)
       7              : #include <omp.h>
       8              : #endif
       9              : 
      10              : namespace palace::utils
      11              : {
      12              : 
      13           66 : void SetNumThreads(int nt)
      14              : {
      15              : #if defined(MFEM_USE_OPENMP)
      16           66 :   omp_set_num_threads(nt);
      17              : #endif
      18           66 : }
      19              : 
      20            0 : int GetMaxThreads()
      21              : {
      22              : #if defined(MFEM_USE_OPENMP)
      23            0 :   return omp_get_max_threads();
      24              : #else
      25              :   return 1;
      26              : #endif
      27              : }
      28              : 
      29           66 : int GetNumActiveThreads()
      30              : {
      31              : #if defined(MFEM_USE_OPENMP)
      32           66 :   return omp_get_num_threads();
      33              : #else
      34              :   return 1;
      35              : #endif
      36              : }
      37              : 
      38       187469 : int GetThreadNum()
      39              : {
      40              : #if defined(MFEM_USE_OPENMP)
      41       187469 :   return omp_get_thread_num();
      42              : #else
      43              :   return 0;
      44              : #endif
      45              : }
      46              : 
      47            0 : int InParallel()
      48              : {
      49              : #if defined(MFEM_USE_OPENMP)
      50            0 :   return omp_in_parallel();
      51              : #else
      52              :   return 0;
      53              : #endif
      54              : }
      55              : 
      56           66 : int ConfigureOmp()
      57              : {
      58              : #if defined(MFEM_USE_OPENMP)
      59              :   int nt;
      60           66 :   const char *env = std::getenv("OMP_NUM_THREADS");
      61           66 :   if (env)
      62              :   {
      63           66 :     std::sscanf(env, "%d", &nt);
      64              :   }
      65              :   else
      66              :   {
      67            0 :     nt = 1;
      68              :   }
      69           66 :   utils::SetNumThreads(nt);
      70           66 :   return nt;
      71              : #else
      72              :   return 0;
      73              : #endif
      74              : }
      75              : 
      76              : }  // namespace palace::utils
        

Generated by: LCOV version 2.0-1