libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits Namespace Reference

Enumerations

enum class  creation_cost { sequential_creation , expensive_to_create , cheap_to_create }
 
enum class  destruction_cost { sequential_destruction , expensive_to_destroy , cheap_to_destroy }
 
enum class  synchronisation_cost { sequential_sync , expensive_to_synchronise , cheap_to_synchronise }
 
enum class  return_data { joinable , nonjoinable }
 
enum class  api_type { no_api , MS_Win32 , posix_pthreads , IBM_cyclops }
 
enum class  memory_access_modes { erew_memory_access , crew_memory_access }
 The various memory access modes that the assorted locks may support. More...
 

Functions

tostream &__fastcall FORCE_INLINE operator<< (tostream &os, api_type const &api)
 

Detailed Description

These parameters allow the users to choose a thread pool that has the properties they would like. Note that not all combinations make sense, so will give compilation errors, as they are not implemented, and of the rest, some of those may not be implemented. Contact the author if you need a specific specialisation!

Enumeration Type Documentation

◆ api_type

Enumerator
no_api 

For sequential operation. i.e. no threading. Usually one would use the constant platform_api, which is suitably declared as one of the threading models, below.

MS_Win32 

Usually "heavy-weight" threads, e.g. x86, alpha.

posix_pthreads 

Usually "heavy-weight" threads, e.g. x86, alpha, SPARC. On Solaris, Linux, etc.

IBM_cyclops 

IBM BlueGene/[C|P] (or Cyclops), ~10^6-~10^9 lightweight threads, NUMA architecture.

Definition at line 63 of file thread_params_traits.hpp.

◆ creation_cost

Enumerator
sequential_creation 
expensive_to_create 

E.g. x86 ISA & Win32.

cheap_to_create 

E.g. IBM BlueGene/[C|P] (or Cyclops)

Definition at line 44 of file thread_params_traits.hpp.

◆ destruction_cost

Enumerator
sequential_destruction 
expensive_to_destroy 

E.g. x86 ISA & Win32.

cheap_to_destroy 

E.g. IBM BlueGene/[C|P] (or Cyclops)

Definition at line 49 of file thread_params_traits.hpp.

◆ memory_access_modes

The various memory access modes that the assorted locks may support.

To assist in allowing compile-time computation of the algorithmic order of the threading model.

Enumerator
erew_memory_access 

Exclusive-Read, Exclusive-Write memory access.

crew_memory_access 

Concurrent-Read, Exclusive-Write memory access.

Definition at line 92 of file thread_params_traits.hpp.

◆ return_data

Enumerator
joinable 

The work has a return value.

nonjoinable 

The work does not have a return value.

Definition at line 59 of file thread_params_traits.hpp.

◆ synchronisation_cost

Enumerator
sequential_sync 

The cost of the base read-modify-write operation used to implement a mutex.

expensive_to_synchronise 

E.g. x86 ISA & Win32.

cheap_to_synchronise 

E.g. IBM BlueGene/[C|P] (or Cyclops)

Definition at line 54 of file thread_params_traits.hpp.

Function Documentation

◆ operator<<()

tostream& __fastcall FORCE_INLINE jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::generic_traits::operator<< ( tostream os,
api_type const &  api 
)
inline

Definition at line 70 of file thread_params_traits.hpp.

References IBM_cyclops, MS_Win32, no_api, and posix_pthreads.