Hi Soumen --
Unless I'm missing something (and I don't think I am), by default, the two
forall loops ought to use four tasks/threads without any effort on your part
(i.e., no special flags or switches or anything). The for loop and the
writeln() would only use 1 task/thread. Depending on what your functions are,
it may be that these are short-enough running threads that the OS doesn't move
them around to use all four cores, but that would surprise me slightly (in
particular, I'd think that the threads would spread out pretty quickly, if not
be created in a spread-out manner).
That leads me to ask: What technique are you using to determine whether or not
four cores are being used?
I'll note that we have some current work going on to better map specific tasks
to specific numa domains within a node, a prototype of which was released in
the 1.8.0 release, but I don't think that should be necessary to end up using
all of your cores.
Thanks,
-Brad
________________________________
From: Soumen [[email protected]]
Sent: Wednesday, January 29, 2014 6:15 AM
To: [email protected]
Subject: forall loop not using all cores.
Hi,
I have chapel 1.8.0 installed with default settings in my desktop having config:
OS: Ubuntu 12.04.04
Ram: 4gb
Processor: i5 2320 @ 3.00 Ghz x 4
The code I am trying to run is:
var d : domain(1) int = {1..2048};
var A : [d] int;
forall i in d {
doSomethingOnAElements(i);
}
for i in 1..40 {
doSomething();
}
forall i in d {
doSomethingOnAElements(i);
}
writeln(A);
The problem is till writeln(A); the code is running only on single core. But
after displaying A chapel uses all the four cores for a period more than it
took to display A.
The problem is same if coforall is used or for is used in substitute to forall.
So how can I make chapel use all the four cores every time?
Below are options(all default) used for chapel:
Parallelism Control Options:
--[no-]local Target one [many] locale[s]
currently: --local
--[no-]serial [Don't] Serialize parallel constructs
currently: --no-serial
--[no-]serial-forall [Don't] Serialize forall constructs
currently: --no-serial-forall
Optimization Control Options:
--fast Use fast default settings
currently: not selected
--[no-]fast-followers Enable [disable] fast followers
currently: --fast-followers
--[no-]optimize-loop-iterators Enable [disable] optimization of
iterators composed of a single loop
currently: --optimize-loop-iterators
Waiting for reply.
Soumen
------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable
security intelligence. It gives you real-time visual feedback on key
security issues and trends. Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
Chapel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-users