Dear,

I would like to put a buffer `shared(char[])` into a shared memory ( L2 cache ) and provide a start and end index to multiple thread in order to perform computation on a piece of original buffer.

I read doc from std.concurrency, std.parallelism, core.thead (druntime) and vectorization (simd) . But I found any example or unittest which perform such calculus.

1/ So did you have an example somewhere ?
2/ about shared keyword do we ensure that its size is lower than L2 or L3 cache using :

```
core.sys.posix.unistd: sysconf, _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL3_CACHE_SIZE; immutable size_t L2_CACHE_SIZE = cast(size_t) sysconf(_SC_LEVEL2_CACHE_SIZE); immutable size_t L3_CACHE_SIZE = cast(size_t) sysconf(_SC_LEVEL3_CACHE_SIZE);

```
3/ variable flagged as `shared` does at mean the variable is put into L2 cache ?

thanks for your help

best regards

Reply via email to