Hi Tom,

Yes, there is a possibility to change the number of tasks per locale  
within the source code. I thought this was only possible via  
complicated command lines or environment variable changes. Thank you  
very much.

One more question (something different but let's keep the e-mail subject):
Is it somehow possible to measure the remote accesses of a Chapel program?
I'm experimenting with a distributed array on which a lot of remote  
accesses are done. Of course a faster execution is a sign of less  
access but I would like to get a more exact result.
Maybe even a notification in the console for every access (for this I  
will have to keep my array very small of course)?

bye


Zitat von Tom Hildebrandt <[email protected]>:

> Herr Dietrich:
>
> The progression of your thinking is correct.  The "for" statement  
> executes serially; the "coforall" statement launches a separate task  
> for each iteration.  The "forall" statement is in-between, launching  
> a suitable number of tasks on the locales available.
>
> The behavior of "forall" can be controlled through configuration  
> constants described in Section 25.6 (Configuration Constants for  
> Default Data Parallelism) in the specification.  There are some  
> additional environment symbols described in README.executing which  
> you may find helpful.
>
> Let me know if you have additional questions.
>
> Tom Hildebrandt
> Chapel Team
> ________________________________________
> From: Michael Dietrich [[email protected]]
> Sent: Monday, November 24, 2014 3:20 PM
> To: [email protected]
> Subject: One Task per Locale
>
> Hi,
>
> I have a basic question about working on multiple Locales.
> Let's say I have this (quite senseless but only for testing) code...
>
> for bla in BlockFeld do
>      on Locales(bla.locale.id) do
>          for i in 0..20000000 do
>              bla*=2;
>
> ... where BlockFeld is a block distributed array (size of about 100 or 1000).
> If I write it like this it won't actually be parallel, right?
>
> So I tried this:
> coforall bla in BlockFeld do
>          on Locales(bla.locale.id) do
>              for i in 0..20000000 do
>                  bla*=2;
>
> Now it starts a new task, but for EVERY iteration. If I have a lot of
> array entries it may not be a good solution.
>
> Maybe a forall loop is more useful, but what I want to do is starting
> exactly one task per locale which does the for-loops for its' chunk of
> the array. Is there any possibility?
>
> bye
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
> _______________________________________________
> Chapel-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/chapel-users




------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Chapel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-users

Reply via email to