Hi Hui,
You can use the 'ReplicatedDist' distribution to get a copy per locale.
There is a module 'UtilReplicatedVar' to simplify its use.
http://chapel.cray.com/docs/latest/modules/standard/UtilReplicatedVar.html
http://chapel.cray.com/docs/latest/modules/dists/ReplicatedDist.html
use UtilReplicatedVar;
var regularInt = 42;
// rcDomain is declared in UtilReplicatedVar. It maps one value to each
locale
var repVar: [rcDomain] int;
// assign 42 to the replicated var on all locales
rcReplicate(repVar, regularInt);
// access the local copy of the replicated var
// the first form must use 1 as the index
repVar[1] = 0;
writeln(rcLocal(repVar));
// access a remote copy
rcRemote(repVar, remoteLocale);
David
On 8/8/17 10:36 AM, Hui Zhang wrote:
---------- Forwarded message ----------
From: *Hui Zhang* <[email protected]
<mailto:[email protected]>>
Date: Tue, Aug 8, 2017 at 11:36 AM
Subject: Re: [Chapel-developers] question about data distribution
To: Tom MacDonald <[email protected] <mailto:[email protected]>>
Cc: Brad Chamberlain <[email protected] <mailto:[email protected]>>
Hello,
I'm wondering that is there an easy way to make a copy of a global
variable on each locale so that later each locale will directly access
its local copy instead of accessing the original variable stored in
locale0 ?
thanks
On Mon, Aug 7, 2017 at 6:19 PM, Tom MacDonald <[email protected]
<mailto:[email protected]>> wrote:
We have all made this kind of mistake Hui. No need to feel bad.
Happy to hear you discovered the problem.
Tom MacDOnald
*From:*Hui Zhang [mailto:[email protected]
<mailto:[email protected]>]
*Sent:* Monday, August 07, 2017 4:56 PM
*To:* Brad Chamberlain <[email protected] <mailto:[email protected]>>
*Cc:* Chapel Sourceforge Developers List
<[email protected]
<mailto:[email protected]>>
*Subject:* Re: [Chapel-developers] question about data distribution
Sorry, I made a very basic mistake that made me feel so dumm:I
mixed up the name of distributed and non-distributed domains that
I used, which caused all the confusion and proved that
easily-distinguishable naming is such an important thing, again. :P
Thanks Brad, everything works as it should be.
On Mon, Aug 7, 2017 at 4:01 PM, Brad Chamberlain <[email protected]
<mailto:[email protected]>> wrote:
This looks like a bug to me, though maybe someone else will
remember something that I've forgotten (as I mentioned in my
previous message, 'local' clauses are a little surprising
sometimes -- you may have seen that we're actually hoping to
retire them from the language to focus on more data-centric
approaches).
In either case, I think this is worth opening a GitHub issue for.
-Brad
On Mon, 7 Aug 2017, Hui Zhang wrote:
update:
After playing for a little bit, I'm more confused now:
if I have a distributed domain D, and array B declared on
D, the following
code 1 will work and 2 will fail in runtime with an error
"cannot access
remote data in local block", why is that?
1. work
forall b in B {
local {
b = here.locale.id <http://here.locale.id>;
}
}
2. fail
forall d in D {
local {
B[d] = here.locale.id <http://here.locale.id>;
}
}
On Mon, Aug 7, 2017 at 1:06 PM, Hui Zhang
<[email protected]
<mailto:[email protected]>> wrote:
Hello,
I have a question about the data distribution in
Chapel, for example we
have:
const D = {1..8} dmapped Block({1..8});
var B: [D] real;
forall d in D {
var A : 8*real;
foo(A, B[d]);
}
So in multilocale, even though the domain D is
distributed, the variable
A declared in each iteration is still allocated on
node0 right? which means
we can not add "local" clause around the loop body
since foo needs to
access A from other nodes which requires
communication, like:
local {
var A: 8*real;
foo(A, B[d]);
}
or
var A: 8*real;
local {
foo(A, B[d]);
}
Further, is it true that the only ways to put data on
nodes other than 0
are:
1. use explict "on" clause, everything inside it will
be allocated on the
specific locale
2. use distributed domain: piece of the data will be
allocated on each
locale.
?
Thanks
--
Best regards
Hui Zhang
--
Best regards
Hui Zhang
--
Best regards
Hui Zhang
--
Best regards
Hui Zhang
--
Best regards
Hui Zhang
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers