Hi,
> Compiling with --cache-remote will cause the runtime to not only
> cache remote data that is reused, but to:
> - prefetch sequential GETs
> - always GET 64b cache lines at a time
> - perform write-behind for PUTs
>
> While I haven't looked closely at your case, if each locale
> is requesting 8000 values from the other and those values
> are stored next to each other in memory, the cache will
> fetch more than one in each get_nb reported. In this case
> the numbers you describe (cache does 2000 GETs for 8000 reads),
> I would imagine that your elements are 16 bytes... and the
> cache fetches 4 of them at a time (to get up to 64 bytes).
Actually in this case elements are of real type. I recall that default value
for real was 64 bits = 8 bytes. So according to your description I should get
away with only 1000 transfers in this case...
Also I ran into some issues with second order functions.
proc foo(arr: [] 3*uint(8)) {
writeln("bar");
}
proc something(arr: [] 3*uint(8), func) {
func(arr);
}
var A: [{1..400,1..225}] 3*uint(8);
something(A, foo);
gives me error
src/test2.chpl:11: In function 'something':
src/test2.chpl:12: error: illegal access of first class function
[functionResolution.cpp:2448]
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Chapel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-users