Intel® Array Building Blocks (Archived)

PDE Stencil and efficiency of the treament of boundary conditions.


Solving PDE, the stencil possibility in arbb is useful. My question is about the vectorization/parallelization of the boundary conditions where the stencil doesn't apply.

For example i use the stencil in that way :

// first the stencil

// ********************

ARBB and classes

HiIn order to parallelize function in class member i'd like to use this kind of structure :class toto{public : toto() {}; void valuate(arbb::f64 & ret) { ret =0. ; }; void values( arbb::dense & ret ) { arbb::map(toto::valuate)(ret); } void paral_call( arbb::dense & ret) { arbb::call(toto::values)(ret); }}Why is it impossible. Of course no problem if used outside class.Is there a workaround to achieve the parallelizationThank you

Manipulating row, columns of dense<f32,2>

HiI am using dense vector and i try to fill row or columns without _for nest in order to get parallelization:For exemple is it possible to fill a row or column with a given value :dense a;a(0, all) = val ; // all for all elements of row 0If yes is it possible for a section :a(0,[1:3])= val ; //This possibility is available in all C++ libraries i use (eigen, blitz++).Thank you very much

Excessively long error messages

I recently started utilize ArBB in a computer vision project. The performance improvement is amazing.However, there is an annoying issue that I would like to see a way to address. When doing arbb::call or arbb::map, if there is a minor error in the argument, it would produce error messages of a mile length (I am using gcc 4.6.0), such as

Big kernel with internal error

HiI developped a kernel with ARBB for solving Partial Differentiel Equation in 2D with stencil.Everything is fine with the emulator (ARBB_EMULATE=1)though being very slow comparing with a pure C++ version.Without the emulator, even withARBB_OPT_LEVL=O0, the code runs a long time ending with aLow level optimization (LLO) got the exceptions:ILLEGAL_MEM_OP: Access the illegal memory address => Accessing not mapped address [0x50] at IP[0x7fd6736ffad5].

Invalid scope 'function' to arbb_end_loop: invalid control pairs

HiI still have another example where i get an error due to the boolean data in the code below :// pay off class to valuate optionclass PayOffSimple2{public : arbb::f64 strike ; arbb::boolean bVendeur; PayOffSimple2() : strike(0.),bVendeur(true){} PayOffSimple2( arbb::f64 strike_, arbb::boolean bVendeur_):strike(strike_),bVendeur(bVendeur_){} arbb::f64 operator()( const arbb::f64 & x) const { _if (bVendeur) { return arbb::max(arbb::exp(x)-strike,0.); } _end_if; return -arbb::max(arbb::exp(x)-strike,0.); }};// arbb wrappervoid caller2( const arbb::usize & N, const arbb::f6

Intel® Array Building Blocks (Archived) abonnieren