Galois
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
galois::chunk_size< SZ > Struct Template Reference

Specify chunk size for do_all_coupled & do_all_choice at compile time or at runtime. More...

#include <Traits.h>

Inheritance diagram for galois::chunk_size< SZ >:
galois::trait_has_value< unsigned > galois::chunk_size_tag

Public Member Functions

 chunk_size (unsigned cs=SZ)
 
- Public Member Functions inherited from galois::trait_has_value< unsigned >
 trait_has_value (const type &v)
 
 trait_has_value (type &&v)
 
unsigned getValue () const
 

Static Public Attributes

static constexpr unsigned value = clamp(SZ)
 

Additional Inherited Members

- Public Types inherited from galois::trait_has_value< unsigned >
typedef unsigned type
 
- Public Types inherited from galois::chunk_size_tag
enum  { MIN = 1, MAX = 4096 }
 
- Public Attributes inherited from galois::trait_has_value< unsigned >
type value
 

Detailed Description

template<unsigned SZ = 32>
struct galois::chunk_size< SZ >

Specify chunk size for do_all_coupled & do_all_choice at compile time or at runtime.

For compile time, use the template argument, e.g., galois::chunk_size<16> () Additionally, user may provide a runtime argument, e.g, galois::chunk_size<16> (8)

Currently, only do_all_coupled can take advantage of the runtime argument. TODO: allow runtime provision/tuning of chunk_size in other loop executors

chunk size is clamped to within [chunk_size_tag::MIN, chunk_size_tag::MAX]

Constructor & Destructor Documentation

template<unsigned SZ = 32>
galois::chunk_size< SZ >::chunk_size ( unsigned  cs = SZ)
inline

Member Data Documentation

template<unsigned SZ = 32>
constexpr unsigned galois::chunk_size< SZ >::value = clamp(SZ)
static

The documentation for this struct was generated from the following file: