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
