SkePU(integratedwithStarPU)
0.8.1
|
A vector container class, implemented as a wrapper for std::vector. It is configured to use StarPU DSM as its backend, which means that it does not do lazy memory copying in this translation. More...
#include <vector.h>
Classes | |
class | iterator |
An vector iterator class. More... | |
class | proxy_elem |
A proxy class representing one element of Vector. More... | |
Public Member Functions | |
void | randomize (int min=0, int max=RAND_MAX) |
Randomizes the vector. More... | |
void | save (const std::string &filename) |
Saves content of vector to a file. More... | |
void | load (const std::string &filename, int numElements=0) |
Loads the vector from a file. More... | |
void | unregisterVector (bool update=true) |
starpu_data_handle_t | registerPartitions (int _parts) |
To register and partition Vector with StarPU runtime. More... | |
Vector () | |
Vector (const Vector &vec) | |
Vector (size_type num, const T &val=T(), bool redVec=false) | |
template<typename input_iterator > | |
Vector (input_iterator start, input_iterator end) | |
~Vector () | |
proxy_elem | operator[] (const size_type index) |
const T & | operator[] (const size_type index) const |
Vector< T > & | operator= (const Vector< T > &other) |
bool | operator== (const Vector< T > &c1) |
bool | operator!= (const Vector< T > &c1) |
bool | operator< (const Vector< T > &c1) |
bool | operator> (const Vector< T > &c1) |
bool | operator<= (const Vector< T > &c1) |
bool | operator>= (const Vector< T > &c1) |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
size_type | capacity () const |
size_type | size () const |
size_type | max_size () const |
void | resize (size_type num, T val=T()) |
bool | empty () const |
void | reserve (size_type size) |
proxy_elem | at (size_type loc) |
const T & | at (size_type loc) const |
proxy_elem | back () |
const T & | back () const |
proxy_elem | front () |
const T & | front () const |
void | assign (size_type num, const T &val) |
template<typename input_iterator > | |
void | assign (input_iterator start, input_iterator end) |
void | clear () |
void | pop_back () |
void | push_back (const T &val) |
void | swap (Vector< T > &from) |
void | flush () |
T & | operator() (const size_type index) |
void | acquireRead () const |
Ensure that data is most updated for reading purpose on CPU. | |
void | acquireReadWrite () |
Ensure that data is available for reading and writing purpose on CPU First updates the vector from its device allocations. Then invalidates the data allocated on devices. | |
template<typename T> | |
Vector< T >::iterator | insert (typename Vector< T >::iterator loc, const T &val) |
template<typename T> | |
void | insert (typename Vector< T >::iterator loc, size_type num, const T &val) |
template<typename input_iterator > | |
void | insert (typename Vector< T >::iterator loc, input_iterator start, input_iterator end) |
Friends | |
std::ostream & | operator<< (std::ostream &output, Vector< T > &vec) |
Overloaded stream operator, for testing purposes. More... | |
A vector container class, implemented as a wrapper for std::vector. It is configured to use StarPU DSM as its backend, which means that it does not do lazy memory copying in this translation.
A skepu::Vector
is a container of vector/array type and is implemented as a wrapper for std::vector
. Its interface and behaviour is largely compatible with std::vector
but with some additions and variations.
Please refer to C++ STL vector documentation for more information about CPU side implementation.
skepu::Vector< T >::Vector | ( | ) |
Please refer to the documentation of std::vector
.
skepu::Vector< T >::Vector | ( | const Vector< T > & | c | ) |
Please refer to the documentation of std::vector
.
Updates vector c
before copying.
References skepu::Vector< T >::acquireRead().
|
explicit |
Please refer to the documentation of std::vector
.
skepu::Vector< T >::Vector | ( | input_iterator | start, |
input_iterator | end | ||
) |
Please refer to the documentation of std::vector
.
skepu::Vector< T >::~Vector | ( | ) |
Releases all allocations made on device.
void skepu::Vector< T >::assign | ( | size_type | num, |
const T & | val | ||
) |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::assign | ( | input_iterator | start, |
input_iterator | end | ||
) |
Please refer to the documentation of std::vector
.
Vector< T >::proxy_elem skepu::Vector< T >::at | ( | size_type | loc | ) |
Please refer to the documentation of std::vector
.
Returns a proxy_elem
instead of an ordinary element. The proxy_elem
usually behaves like an ordinary, but there might be exceptions.
const T & skepu::Vector< T >::at | ( | size_type | loc | ) | const |
Please refer to the documentation of std::vector
.
Vector< T >::proxy_elem skepu::Vector< T >::back | ( | ) |
Please refer to the documentation of std::vector
.
Returns a proxy_elem
instead of an ordinary element. The proxy_elem
usually behaves like an ordinary, but there might be exceptions.
const T & skepu::Vector< T >::back | ( | ) | const |
Please refer to the documentation of std::vector
.
Vector< T >::iterator skepu::Vector< T >::begin | ( | ) |
Please refer to the documentation of std::vector
.
Vector< T >::const_iterator skepu::Vector< T >::begin | ( | ) | const |
Please refer to the documentation of std::vector
.
Vector< T >::size_type skepu::Vector< T >::capacity | ( | ) | const |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::clear | ( | ) |
Please refer to the documentation of std::vector
.
bool skepu::Vector< T >::empty | ( | ) | const |
Please refer to the documentation of std::vector
.
Vector< T >::iterator skepu::Vector< T >::end | ( | ) |
Please refer to the documentation of std::vector
.
Vector< T >::const_iterator skepu::Vector< T >::end | ( | ) | const |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::flush | ( | ) |
Flushes the vector, synchronizing it with the device then release all device allocations.
Vector< T >::proxy_elem skepu::Vector< T >::front | ( | ) |
Please refer to the documentation of std::vector
.
Returns a proxy_elem
instead of an ordinary element. The proxy_elem
usually behaves like an ordinary, but there might be exceptions.
const T & skepu::Vector< T >::front | ( | ) | const |
Please refer to the documentation of std::vector
.
Vector<T>::iterator skepu::Vector< T >::insert | ( | typename Vector< T >::iterator | loc, |
const T & | val | ||
) |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::insert | ( | typename Vector< T >::iterator | loc, |
size_type | num, | ||
const T & | val | ||
) |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::insert | ( | typename Vector< T >::iterator | loc, |
input_iterator | start, | ||
input_iterator | end | ||
) |
Please refer to the documentation of std::vector
.
|
inline |
Loads the vector from a file.
Reads a variable nuimber of elements from a file. In the file, all elemets should be in ASCII on one line with whitespace between each element. Mainly for testing purposes.
filename | Name of file to save to. |
numElements | The number of elements to load. Default value 0 means all values. |
References skepu::Vector< T >::clear(), and skepu::Vector< T >::push_back().
Vector< T >::size_type skepu::Vector< T >::max_size | ( | ) | const |
Please refer to the documentation of std::vector
.
bool skepu::Vector< T >::operator!= | ( | const Vector< T > & | c1 | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::acquireRead().
T & skepu::Vector< T >::operator() | ( | const size_type | index | ) |
Behaves like operator
[] but does not care about synchronizing with device. Can be used when accessing many elements quickly so that no synchronization overhead effects performance. Make sure to properly synch with device by calling acquireRead etc before use.
index | Index to a specific element of the vector. |
bool skepu::Vector< T >::operator< | ( | const Vector< T > & | c1 | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::acquireRead().
bool skepu::Vector< T >::operator<= | ( | const Vector< T > & | c1 | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::acquireRead().
Vector< T > & skepu::Vector< T >::operator= | ( | const Vector< T > & | other | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::acquireRead().
bool skepu::Vector< T >::operator== | ( | const Vector< T > & | c1 | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::acquireRead().
bool skepu::Vector< T >::operator> | ( | const Vector< T > & | c1 | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::acquireRead().
bool skepu::Vector< T >::operator>= | ( | const Vector< T > & | c1 | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::acquireRead().
Vector< T >::proxy_elem skepu::Vector< T >::operator[] | ( | const size_type | index | ) |
Please refer to the documentation of std::vector
.
Returns a proxy_elem instead of an ordinary element. The proxy_elem usually behaves like an ordinary, but there might be exceptions.
const T & skepu::Vector< T >::operator[] | ( | const size_type | index | ) | const |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::pop_back | ( | ) |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::push_back | ( | const T & | val | ) |
Please refer to the documentation of std::vector
.
|
inline |
Randomizes the vector.
Sets each element of the vector to a random number between min
and max
. The numbers are generated as integers
but are cast to the type of the vector.
min | The smallest number an element can become. |
max | The largest number an element can become. |
References skepu::Vector< T >::unregisterVector().
Vector< T >::reverse_iterator skepu::Vector< T >::rbegin | ( | ) |
Please refer to the documentation of std::vector
.
Vector< T >::const_reverse_iterator skepu::Vector< T >::rbegin | ( | ) | const |
Please refer to the documentation of std::vector
.
|
inline |
To register and partition Vector with StarPU runtime.
_parts | number of partitions to create of this matrix (block-wise). |
Vector< T >::reverse_iterator skepu::Vector< T >::rend | ( | ) |
Please refer to the documentation of std::vector
.
Vector< T >::const_reverse_iterator skepu::Vector< T >::rend | ( | ) | const |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::reserve | ( | size_type | size | ) |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::resize | ( | size_type | num, |
T | val = T() |
||
) |
Please refer to the documentation of std::vector
.
|
inline |
Saves content of vector to a file.
Outputs the vector as text on one line with space between elements to the specified file. Mainly for testing purposes.
filename | Name of file to save to. |
References skepu::Vector< T >::at(), and skepu::Vector< T >::size().
Vector< T >::size_type skepu::Vector< T >::size | ( | ) | const |
Please refer to the documentation of std::vector
.
void skepu::Vector< T >::swap | ( | Vector< T > & | from | ) |
Please refer to the documentation of std::vector
.
References skepu::Vector< T >::unregisterVector().
|
inline |
/brief Used to unregister data handle with StarPU (pass "false" to not ensure most updated value is returned back)
|
friend |
Overloaded stream operator, for testing purposes.
Outputs the vector on one line with space between elements to the chosen stream.