GetFEM  5.4.2
getfem_omp.h File Reference

Tools for multithreaded, OpenMP and Boost based parallelization. More...

#include <atomic>
#include <memory>
#include <set>
#include <vector>
#include "bgeot_config.h"

Go to the source code of this file.

Classes

struct  getfem::true_thread_policy
 Thread policy, where partitioning is based on true threads. More...
 
struct  getfem::global_thread_policy
 Thread policy, regulated by partition_master (can be true thread- or partition-based) More...
 
class  getfem::detail::omp_distribute_impl< std::vector< T >, thread_policy, vector_tag >
 Specialization for std::vector<T>, adds vector indexing operator. More...
 
class  getfem::detail::omp_distribute_impl< bool, thread_policy, bool_tag >
 Specialization for bool, to circumvent the shortcomings of standards library's specialization for std::vector<bool>, we use std::vector<int> instead. More...
 
class  getfem::omp_distribute< T, thread_policy >
 Use this template class for any object you want to distribute to open_MP threads. More...
 
class  getfem::partition_iterator
 Iterator that runs over partitions on the current thread and sets the global (but thread-specific) partition during incrementation. More...
 
class  getfem::partition_master
 A singleton that Manages partitions on individual threads. More...
 
class  getfem::parallel_boilerplate
 Encapsulates open_mp-related initialization and de-initialization. More...
 

Namespaces

 getfem
 GEneric Tool for Finite Element Methods.
 

Macros

#define GETFEM_OMP_PARALLEL(body)   body
 Organizes a proper parallel omp section: More...
 

Functions

void getfem::set_num_threads (int n)
 set maximum number of OpenMP threads
 
bool getfem::me_is_multithreaded_now ()
 is the program running in the parallel section
 
bool getfem::not_multithreaded ()
 is the program is running on a single thread
 
size_type getfem::max_concurrency ()
 Maximum number of threads that can run concurrently.
 

Detailed Description

Tools for multithreaded, OpenMP and Boost based parallelization.

Author
Andriy Andreykiv andri.nosp@m.y.an.nosp@m.dreyk.nosp@m.iv@g.nosp@m.mail..nosp@m.com
Date
May 14th, 2013. This is the kernel of getfem.

Definition in file getfem_omp.h.

Macro Definition Documentation

◆ GETFEM_OMP_PARALLEL

#define GETFEM_OMP_PARALLEL (   body)    body

Organizes a proper parallel omp section:

  • iteration on thread independent partitions
  • passing exceptions to the master thread
  • thread-safe locale

Definition at line 483 of file getfem_omp.h.