Intel® Array Building Blocks (Archived)

Parallelizing with a nested regular and dynamicaly sized data structure


I am very interested in ArBB as it is to my knowledge the only industrial product providing an abstraction over the memory architecture of the computer.
I am working on a very complex linear algebra solver (used to solve the neutron transport equation in nuclear reactor cores).
The algorithm has been optimized a long time ago for vector machines and completely reimplemented for multicore superscalar processors.
In the current implementation, data locality has been optimized but the code do not use SSE/AVX units.

gdb support

Hi All,

Using the gdb pretty print support I get the following error trying to icorporate the gdb debugger:

Reading symbols from /home/snirgaz/Code/WORM_ALG_PT/Debug/WORM_ALG_PT...(no debugging symbols found)...done.
File "/opt/intel/arbb/", line 114
class container_info():
SyntaxError: invalid syntax

Any suggestions?



Hi All,

I have got somthing that puzzles me about the definition and use of operator [].

Suppose I have a 1D array A={a,b,c,d}

And I wish to genrate a 2D array of the form B={b,a,d,c}

Then I would gusess that I should create a 2D indices array, where each index consists of a single value:


Such that


But the documentation says:

map() with nested containers

Will you give an example (perhaps trivial) of using map() with nested containers? I have been unsuccessful, getting MSVC complier errors:

...\\include\\arbb\\cpp\\detail\\map_closure_template.hpp(97): error C2440: 'static_cast' : cannot convert...


...\\include\\arbb\\cpp\\detail\\map_closure_template.hpp(137): error C2078: too many initializers

Thank you,
- paul


The nested container resize_as() function misbehaves, in beta 4 and beta 5, Sandy Bridge or Core 2, Debug or Release modes in MSVC 10. Consider this code (pretty print code below):

dense dat = dense::parse("{1.,2.,3.,4.}");
nested idx = nested::parse("{{3},{2},{1,1},{0,0}}");
nested out = reshape_as(dat, idx);

...from which I expected this result, reading the docs:

out: {{4},{3},{2,2},{1,1}}
flat: 4 3 2 2 1 1

...instead the result is:

out: {{1},{2},{3,4},{0,0}}
flat:1 2 3 4

Simple array difference problem


I`m developing some examples with ArBB. One of these examples is a
simple array difference. I'm using sizes like 2000x2000, 8000x8000 but
when I try execute the code with 16384*16384 the aplicattion crashes.
However, I can execute the code for 14500*14500 for example.

My code allocates three vectors:

intsize = width * height;

unsigned char*frame = static_cast
char*>(arbb::aligned_malloc(sizeof(unsigned char)*size));

Broken capture() example

Beta 5 broke my beta 4 code involving capture of a static member function, so it took a while to tease it out and simplify. Run the following in MSVC Debug or Release modes to obtain different output, this function:

void bar(dense& Out, dense& Arg, usize& Len)
Out = scatter(fill(usize(1), Arg.length()), Arg, Len);

...and this snip:

Does IntelArBB allow user to create applications targeteed for HPP, inculding GPU?

I understood that previously the RapidMind Development Platform allows developers to use standard C++ programming to easily create applications targeted for highperformance
processors, including GPUs, the CellBE, and multi-core CPUs. In the case of the GPU the RapidMind platform
can be used for both shaders and general purpose processing.

Suscribirse a Intel® Array Building Blocks (Archived)