25 #include "openPMD/benchmark/mpi/DatasetFiller.hpp" 26 #include "openPMD/Dataset.hpp" 35 typename T =
typename Distr::result_type
43 std::default_random_engine engine;
44 std::shared_ptr< T > buffered;
51 Extent::value_type numOfItems = 0
64 auto res = std::shared_ptr< T > {
65 new T[this->m_numberOfItems],
71 auto ptr = res.get( );
72 for(
typename Extent::value_type i = 0;
73 i < this->m_numberOfItems;
76 ptr[i] = this->distr( this->engine );
93 template<
typename X = Distr >
98 Extent::value_type numberOfItems,
99 typename X::result_type lower,
100 typename X::result_type upper
113 void setSeed( std::default_random_engine::result_type seed )
115 this->engine = std::default_random_engine( seed );
121 std::random_device rd;
122 this->engine = std::default_random_engine( rd( ) );
132 if( !this->buffered )
141 this->m_numberOfItems = numItems;
An abstract class to create one iteration of data per thread.
Definition: DatasetFiller.hpp:37
Definition: RandomDatasetFiller.hpp:37
static RandomDatasetFiller< X, T > makeRandomDatasetFiller(Extent::value_type numberOfItems, typename X::result_type lower, typename X::result_type upper)
Definition: RandomDatasetFiller.hpp:97
void setNumberOfItems(Extent::value_type numItems) override
Set number of items to be produced.
Definition: RandomDatasetFiller.hpp:139
Public definitions of openPMD-api.
Definition: Date.cpp:29
void bufferMode()
Activate buffer mode.
Definition: RandomDatasetFiller.hpp:130
std::shared_ptr< T > produceData() override
Create a shared pointer of m_numberOfItems items of type T.
Definition: RandomDatasetFiller.hpp:58