Hello all,
im using native X10 2.3.1
I have the following code and would ask if you can help me for some
performance tuning tips
for(val dim in (0..(dimension-1)){
for(var i:int = maxLevel -1; i>0;i--){
val l = i;
finish for(val p in Place.places()) async at(p){
val size = (values(l).size / Place.MAX_PLACES) +
((values(l).size%Place.MAX_PLACES==0)?0:1);
val rangeStart = Math.min(values(l).size,p.id*size);
val rangeStop = Math.min(values(l).size,((p.id+1)*size));
val rSize = rangeStop - rangeStart;
val sizePerThread = (rSize / numThreads) +
((rSize%numThreads==0)?0:1);
finish for(val t:int in (0..(numThreads-1))) async {
val threadStart = rangeStart + Math.min(rSize,t*sizePerThread);
val threadStop =
Math.min(rangeStop,rangeStart+(t+1)*sizePerThread);
for(var j:int=threadStart; j<threadStop; j++){
val lParent:double = parent(l, j, dim, -1);
val rParent:double = parent(l, j, dim, 1);
values(l)(j) -= (lParent + rParent) * 0.5;
}
//broadcast results to all places
if(threadStop-threadStart>0){
for(val pl in Place.places()){
if(pl!=here)
Array.asyncCopy(values(l),threadStart,at (pl) (new
RemoteArray(values(l))),threadStart,threadStop-threadStart);
}
}
}
}
}
}
"values" is a two dimensional array of type
static val values = new Array[Array[Double]](maxLevel);
the method "parent" returns only elements of one of the arrays in
values(k), k<l
Thanks in advance,
Thomas
------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
X10-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/x10-users