Skip to content

Commit 48044ef

Browse files
author
Marcus Walther
committed
- moved sorting of hpcom sim equations to the HpcOmSimCodeMain-module
- fixed memory optimization for fixed level scheduler git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@23539 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 3ff7ddc commit 48044ef

File tree

3 files changed

+74
-45
lines changed

3 files changed

+74
-45
lines changed

Compiler/BackEnd/HpcOmMemory.mo

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,7 @@ encapsulated package HpcOmMemory
430430
list<PartlyFilledCacheLine> partlyFilledCacheLines; //cache lines that are shared between all threads -- SHARED variables -- but not fully filled
431431
algorithm
432432
print("createCacheMapLevelFixedOptimized: started \n");
433+
printNodeSimCodeVarMapping(iNodeSimCodeVarMapping);
433434
cacheMap := CACHEMAP(iCacheLineSize,{},{});
434435
scVarCLMapping := arrayCreate(arrayLength(iAllSCVarsMapping),(-1,-1));
435436
numCL := 0;
@@ -438,7 +439,7 @@ encapsulated package HpcOmMemory
438439
cacheMapMeta := CACHEMAPMETA(iAllSCVarsMapping, iSimCodeVarTypes, scVarCLMapping);
439440
//Iterate over levels
440441
((threadCacheLines,partlyFilledCacheLines,cacheMap as CACHEMAP(cacheVariables=cacheVariables, cacheLinesFloat=cacheLinesFloat),cacheMapMeta,numCL,_)) := List.fold(iTasksOfLevels, function createCacheMapLevelFixedOptimized0(iTaskGraph=iTaskGraph, iTaskGraphMeta=iTaskGraphMeta, iNumberOfThreads=iNumberOfThreads, iSchedulerInfo=iSchedulerInfo, iNodeSimCodeVarMapping=iNodeSimCodeVarMapping), (threadCacheLines, partlyFilledCacheLines,cacheMap,cacheMapMeta,numCL,1));
441-
cacheLinesFloat := List.map(partlyFilledCacheLines, getCacheLineMapOfPartlyFilledCacheLine);
442+
cacheLinesFloat := listAppend(cacheLinesFloat, List.map(partlyFilledCacheLines, getCacheLineMapOfPartlyFilledCacheLine));
442443
oCacheMap := CACHEMAP(iCacheLineSize, cacheVariables, Array.fold(threadCacheLines, listAppend, cacheLinesFloat));
443444
CACHEMAPMETA(scVarCLMapping=oScVarCLMapping) := cacheMapMeta;
444445
printCacheMap(oCacheMap);
@@ -474,22 +475,6 @@ encapsulated package HpcOmMemory
474475
CACHEMAP(cacheLinesFloat=cacheLinesFloat,cacheLineSize=cacheLineSize) := cacheMap;
475476
//print("createCacheMapLevelFixedOptimized0: Handling new level. Shared CL: " + stringDelimitList(List.map(sharedCacheLines,intString), ",") + " Number of CL: " + intString(numCL) + "\n");
476477
((cacheMap,cacheMapMeta,createdCL,partlyFilledCacheLines)) := List.fold(getTaskListTasks(iLevelTasks), function createCacheMapLevelFixedOptimizedForTask(iTaskGraph=iTaskGraph, iTaskGraphMeta=iTaskGraphMeta, iSchedulerInfo=iSchedulerInfo, iNumberOfThreads=iNumberOfThreads, iLevel=level, iNodeSimCodeVarMapping = iNodeSimCodeVarMapping, iThreadCacheLines = threadCacheLines), (cacheMap,cacheMapMeta,numCL,partlyFilledCacheLines));
477-
/*
478-
availableCLold := List.setDifferenceIntN(allCL,cacheLinesPrevLevel,numCL);
479-
//append free space to available cache lines and remove full cache lines
480-
detailedCacheLineInfo := createDetailedCacheMapInformations(availableCLold, cacheLinesFloat, cacheLineSize);
481-
detailedCacheLineInfo := listReverse(detailedCacheLineInfo);
482-
//print("createCacheMapLevelOptimized0: clCandidates: " + stringDelimitList(List.map(List.map(detailedCacheLineInfo,Util.tuple21),intString), ",") + "\n");
483-
availableCL := List.map(detailedCacheLineInfo, Util.tuple21);
484-
//append the used cachelines to the writtenCL-list
485-
//print("createCacheMapLevelOptimized0: New cacheLines created: " + intString(createdCL) + "\n");
486-
writtenCL := List.setDifferenceIntN(availableCLold,availableCL,numCL);
487-
//print("createCacheMapLevelOptimized0: Written CL_0: " + stringDelimitList(List.map(writtenCL,intString), ",") + " -- numCL: " + intString(numCL) + "\n");
488-
writtenCL := listAppend(writtenCL, if intLe(numCL+1, numCL+createdCL) then List.intRange2(numCL+1, numCL+createdCL) else {});
489-
//print("createCacheMapLevelOptimized0: Written CL_1: " + stringDelimitList(List.map(writtenCL,intString), ",") + "\n");
490-
//print("======================================\n");
491-
//printCacheMap(cacheMap);
492-
//print("======================================\n"); */
493478
oInfo := (threadCacheLines,partlyFilledCacheLines,cacheMap,cacheMapMeta,createdCL,level+1);
494479
end createCacheMapLevelFixedOptimized0;
495480

@@ -511,22 +496,25 @@ encapsulated package HpcOmMemory
511496
CacheMapMeta cacheMapMeta;
512497
tuple<CacheMap,CacheMapMeta,Integer,list<PartlyFilledCacheLine>> tmpInfo;
513498
Integer threadIdx, varType, numNewCL;
499+
array<Option<SimCodeVar.SimVar>> allSCVarsMapping;
514500
list<PartlyFilledCacheLine> partlyFilledCacheLines; //map each non full Cachline to: PrefetchLevel, WriteLevel (LevelIdx, ThreadIdx)
515501
algorithm
516502
oInfo := match(iTask, iTaskGraph, iTaskGraphMeta, iSchedulerInfo, iNumberOfThreads, iNodeSimCodeVarMapping, iInfo)
517-
case(HpcOmSimCode.CALCTASK_LEVEL(nodeIdc=nodeIdc,threadIdx=SOME(threadIdx)),_,_,_,_,_,(cacheMap,cacheMapMeta,numNewCL,partlyFilledCacheLines))
503+
case(HpcOmSimCode.CALCTASK_LEVEL(nodeIdc=nodeIdc,threadIdx=SOME(threadIdx)),_,_,_,_,_,(cacheMap,cacheMapMeta as CACHEMAPMETA(allSCVarsMapping=allSCVarsMapping),numNewCL,partlyFilledCacheLines))
518504
equation
519-
//print("\t\tcreateCacheMapLevelFixedOptimizedForTask: handling task with node-indices: " + stringDelimitList(List.map(nodeIdc, intString), ",") + "\n");
505+
print("\t\tcreateCacheMapLevelFixedOptimizedForTask: handling task with node-indices: " + stringDelimitList(List.map(nodeIdc, intString), ",") + "\n");
520506
//Get successor tasks
521507
successorTasks = List.flatten(List.map(nodeIdc, function arrayGet(arr=iTaskGraph)));
522508
nodeVars = List.flatten(List.map(nodeIdc, function arrayGet(arr=iNodeSimCodeVarMapping)));
523509
nodeVars = List.sortedUnique(nodeVars,intEq);
524510
varType = getCacheLineVarTypeBySuccessorList(successorTasks, iSchedulerInfo, iNumberOfThreads, threadIdx);
525511
if(intEq(varType,1)) then
526-
print("\t\t\tcreateCacheMapLevelFixedOptimizedForTask: Handling variables " + stringDelimitList(List.map(nodeVars, intString), ",") + " as THREAD_ONLY\n");
512+
print("\t\t\tcreateCacheMapLevelFixedOptimizedForTask: Handling variables " + stringDelimitList(List.map(nodeVars, intString), ",") + " as THREAD_ONLY by Thread " + intString(threadIdx) + "\n");
513+
print("\t\t\t " + stringDelimitList(List.map(nodeVars, function dumpScVarsByIdx(iAllSCVarsMapping=allSCVarsMapping)), "\n\t\t\t ") + "\n");
527514
((cacheMap,cacheMapMeta,numNewCL)) = addFixedLevelVarToThreadCL(nodeVars,threadIdx,iThreadCacheLines,(cacheMap,cacheMapMeta,numNewCL));
528515
else
529-
print("\t\t\tcreateCacheMapLevelFixedOptimizedForTask: Handling variables " + stringDelimitList(List.map(nodeVars, intString), ",") + " as SHARED\n");
516+
print("\t\t\tcreateCacheMapLevelFixedOptimizedForTask: Handling variables " + stringDelimitList(List.map(nodeVars, intString), ",") + " as SHARED by Thread " + intString(threadIdx) + "\n");
517+
print("\t\t\t " + stringDelimitList(List.map(nodeVars, function dumpScVarsByIdx(iAllSCVarsMapping=allSCVarsMapping)), "\n\t\t\t ") + "\n");
530518
((cacheMap,cacheMapMeta,numNewCL,partlyFilledCacheLines)) = addFixedLevelVarToSharedCL(nodeVars,threadIdx,iLevel,(cacheMap,cacheMapMeta,numNewCL,partlyFilledCacheLines));
531519
print("\t\t\tcreateCacheMapLevelFixedOptimizedForTask: Number of partly filled CLs: " + intString(listLength(partlyFilledCacheLines)) + "\n");
532520
end if;
@@ -714,7 +702,7 @@ encapsulated package HpcOmMemory
714702
algorithm
715703
oInfo := match(iMatchedCacheLine, iThreadIdx, iVarIdx, iLevelIdx, iInfo)
716704
case(SOME((partlyFilledCacheLine as PARTLYFILLEDCACHELINE(cacheLineMap, prefetchLevel, writeLevel),listIndex)),_,_,_,(CACHEMAP(cacheLineSize=cacheLineSize,cacheVariables=cacheVariables,cacheLinesFloat=cacheLinesFloat),CACHEMAPMETA(allSCVarsMapping=allSCVarsMapping,simCodeVarTypes=simCodeVarTypes,scVarCLMapping=scVarCLMapping),numNewCL,partlyFilledCLs))
717-
equation
705+
equation //this case is used if the partly filled cache line has enough space to store the variable
718706
CACHELINEMAP(idx,numBytesFree,entries) = cacheLineMap;
719707
((varType,varSize)) = arrayGet(simCodeVarTypes, iVarIdx);
720708
numBytesFree = numBytesFree - varSize;
@@ -733,25 +721,30 @@ encapsulated package HpcOmMemory
733721

734722
scVarCLMapping = arrayUpdate(scVarCLMapping, iVarIdx, (idx,varType));
735723

736-
if(intEq(numBytesFree - varSize, 0)) then //CL is now full - remove it from partly filled CL list and at it to cachemap
724+
if(intEq(numBytesFree, 0)) then //CL is now full - remove it from partly filled CL list and at it to cachemap
737725
partlyFilledCLs = listDelete(partlyFilledCLs, listIndex);
726+
print("addFixedLevelVarToSharedCL0: Cache line with index " + intString(idx) + " is now fully filled\n");
738727
cacheLinesFloat = cacheLineMap::cacheLinesFloat;
728+
numNewCL = numNewCL - 1;
729+
else
730+
partlyFilledCLs = List.set(partlyFilledCLs, listIndex, partlyFilledCacheLine);
739731
end if;
732+
print("addFixedLevelVarToSharedCL0: Used existing cache line with index " + intString(idx) + " to store the variable\n");
740733
then ((CACHEMAP(cacheLineSize,cacheVariables,cacheLinesFloat),CACHEMAPMETA(allSCVarsMapping,simCodeVarTypes,scVarCLMapping),numNewCL,partlyFilledCLs));
741734
case(NONE(),_,_,_,(CACHEMAP(cacheLineSize=cacheLineSize,cacheVariables=cacheVariables,cacheLinesFloat=cacheLinesFloat),CACHEMAPMETA(allSCVarsMapping=allSCVarsMapping,simCodeVarTypes=simCodeVarTypes,scVarCLMapping=scVarCLMapping),numNewCL,partlyFilledCLs))
742735
equation
743736
((varType,varSize)) = arrayGet(simCodeVarTypes, iVarIdx);
744737

745738
numNewCL = numNewCL + 1;
746739
idx = listLength(cacheLinesFloat) + numNewCL;
747-
numBytesFree = cacheLineSize;
740+
numBytesFree = cacheLineSize - varSize;
748741
entries = {};
749742
prefetchLevel = {};
750743
writeLevel = {};
751744

752745
SOME(cacheVariable) = arrayGet(allSCVarsMapping, iVarIdx);
753746
cacheVariables = cacheVariable::cacheVariables;
754-
entry = CACHELINEENTRY(cacheLineSize - numBytesFree, varType, varSize, listLength(cacheVariables));
747+
entry = CACHELINEENTRY(0, varType, varSize, listLength(cacheVariables));
755748
cacheLineMap = CACHELINEMAP(idx,numBytesFree,entry::entries);
756749

757750
if(intGt(iLevelIdx - 1, 0)) then
@@ -768,7 +761,7 @@ encapsulated package HpcOmMemory
768761
else //Add new CL as partly filled CL
769762
partlyFilledCLs = partlyFilledCacheLine::partlyFilledCLs;
770763
end if;
771-
print("addFixedLevelVarToSharedCL0: New CL added\n");
764+
print("addFixedLevelVarToSharedCL0: Created a new cache line with index " + intString(idx) + " to store the variable\n");
772765
then ((CACHEMAP(cacheLineSize,cacheVariables,cacheLinesFloat),CACHEMAPMETA(allSCVarsMapping,simCodeVarTypes,scVarCLMapping),numNewCL,partlyFilledCLs));
773766
end match;
774767
end addFixedLevelVarToSharedCL0;
@@ -1883,6 +1876,25 @@ encapsulated package HpcOmMemory
18831876
print("Scc " + intString(iIdx) + " is solved by node " + intString(iMappingEntry) + "\n");
18841877
oIdx := iIdx + 1;
18851878
end printSccNodeMapping0;
1879+
1880+
protected function dumpScVarsByIdx
1881+
input Integer iSimCodeVarIdx;
1882+
input array<Option<SimCodeVar.SimVar>> iAllSCVarsMapping;
1883+
output String oString;
1884+
protected
1885+
String tmpString;
1886+
SimCodeVar.SimVar simVar;
1887+
algorithm
1888+
oString := matchcontinue(iSimCodeVarIdx, iAllSCVarsMapping)
1889+
case(_,_)
1890+
equation
1891+
SOME(simVar) = arrayGet(iAllSCVarsMapping, iSimCodeVarIdx);
1892+
tmpString = dumpSimCodeVar(simVar);
1893+
then tmpString;
1894+
else
1895+
then "NONE";
1896+
end matchcontinue;
1897+
end dumpScVarsByIdx;
18861898

18871899
// -------------------------------------------
18881900
// SUSAN

Compiler/BackEnd/HpcOmScheduler.mo

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ algorithm
194194

195195
//print("Eq idc: " + stringDelimitList(List.map(eqIdc, intString), ",") + "\n");
196196
simEqIdc = List.map(List.map1(eqIdc,getSimEqSysIdxForComp,iSccSimEqMapping), List.last);
197-
simEqIdc = List.sort(simEqIdc,intGt);
197+
//simEqIdc = List.sort(simEqIdc,intGt);
198198

199199
newTask = HpcOmSimCode.CALCTASK(weighting,index,calcTime,threadFinishTime,threadId,simEqIdc);
200200
threadTasks = newTask::threadTasks;
@@ -231,7 +231,7 @@ algorithm
231231
simEqIdc = List.flatten(List.map1(eqIdc,getSimEqSysIdxForComp,iSccSimEqMapping));
232232
//print("\tEq idc: " + stringDelimitList(List.map(eqIdc, intString), ",") + "\n");
233233
//print("\tSimcodeeq idc: " + stringDelimitList(List.map(simEqIdc, intString), ",") + "\n");
234-
simEqIdc = List.sort(simEqIdc,intGt);
234+
//simEqIdc = List.sort(simEqIdc,intGt);
235235
newTask = HpcOmSimCode.CALCTASK(weighting,index,calcTime,threadFinishTime,threadId,simEqIdc);
236236
allThreadTasks = arrayUpdate(allThreadTasks,threadId,newTask::threadTasks);
237237
//!print("\n\tZeile 243\t" + stringDelimitList(List.map(listGet(arrayList(allThreadTasks), threadId), dumpTask), "\t\t"));
@@ -381,7 +381,7 @@ algorithm
381381
threadTasks = listAppend(lockTasks, threadTasks);
382382

383383
simEqIdc = List.map(List.map1(eqIdc, getSimEqSysIdxForComp, iSccSimEqMapping), List.last);
384-
simEqIdc = List.sort(simEqIdc,intGt);
384+
//simEqIdc = List.sort(simEqIdc,intGt);
385385

386386

387387
//! Add task to thread
@@ -422,7 +422,7 @@ algorithm
422422
threadTasks = arrayGet(allThreadTasks, threadId);
423423

424424
simEqIdc = List.flatten(List.map1(eqIdc, getSimEqSysIdxForComp, iSccSimEqMapping));
425-
simEqIdc = List.sort(simEqIdc,intGt);
425+
//simEqIdc = List.sort(simEqIdc,intGt);
426426

427427
newTask = HpcOmSimCode.CALCTASK(weighting, index, calcTime, threadFinishTime, threadId, simEqIdc);
428428
allThreadTasks = arrayUpdate(allThreadTasks, threadId, newTask::threadTasks);
@@ -1367,12 +1367,15 @@ protected
13671367
String lockId, s;
13681368
HpcOmSimCode.Schedule taskSchedule;
13691369
Boolean outgoing;
1370+
Integer threadIdx;
13701371
algorithm
13711372
oString := match(iTask)
13721373
case(HpcOmSimCode.CALCTASK(weighting=weighting,timeFinished=timeFinished, index=index, eqIdc=eqIdc))
13731374
then ("Calculation task with index " + intString(index) + " including the equations: "+stringDelimitList(List.map(eqIdc,intString),", ")+ " is finished at " + realString(timeFinished) + "\n");
1374-
case(HpcOmSimCode.CALCTASK_LEVEL(eqIdc=eqIdc, nodeIdc=nodeIdc))
1375+
case(HpcOmSimCode.CALCTASK_LEVEL(eqIdc=eqIdc, nodeIdc=nodeIdc, threadIdx=NONE()))
13751376
then ("Calculation task ("+stringDelimitList(List.map(nodeIdc,intString),", ")+") including the equations: "+stringDelimitList(List.map(eqIdc,intString),", ")+"\n");
1377+
case(HpcOmSimCode.CALCTASK_LEVEL(eqIdc=eqIdc, nodeIdc=nodeIdc, threadIdx=SOME(threadIdx)))
1378+
then ("Calculation task ("+stringDelimitList(List.map(nodeIdc,intString),", ")+") including the equations: "+stringDelimitList(List.map(eqIdc,intString),", ")+" by thread " + intString(threadIdx) + "\n");
13761379
case(HpcOmSimCode.DEPTASK(sourceTask=HpcOmSimCode.CALCTASK(index=sourceIndex), targetTask=HpcOmSimCode.CALCTASK(index=targetIndex),outgoing=outgoing))
13771380
equation
13781381
s = "Dependency task ";
@@ -1636,7 +1639,7 @@ algorithm
16361639
// generate a serial section
16371640
compLst = List.flatten(List.map1(section,Array.getIndexFirst,inComps));
16381641
simEqSysIdcs = getSimEqSysIdcsForCompLst(compLst,iSccSimEqMapping);
1639-
simEqSysIdcs = List.sort(simEqSysIdcs,intGt);
1642+
//simEqSysIdcs = List.sort(simEqSysIdcs,intGt);
16401643
task = makeCalcLevelTask(simEqSysIdcs,section);
16411644
taskLst = HpcOmSimCode.SERIALTASKLIST({task}, true);
16421645
then taskLst;
@@ -1647,7 +1650,7 @@ algorithm
16471650
sectionComps = List.mapList1_1(sectionComps,List.sort,intGt);
16481651
sectionSimEqSys = List.map1(sectionComps,getSimEqSysIdcsForNodeLst,iSccSimEqMapping);
16491652
sectionSimEqSysIdcs = List.map(sectionSimEqSys,List.flatten);
1650-
sectionSimEqSysIdcs = List.map1(sectionSimEqSysIdcs,List.sort,intGt);
1653+
//sectionSimEqSysIdcs = List.map1(sectionSimEqSysIdcs,List.sort,intGt);
16511654
taskLst = makeCalcLevelParTaskLst(sectionSimEqSysIdcs,level);
16521655
then taskLst;
16531656
end matchcontinue;
@@ -1954,7 +1957,7 @@ algorithm
19541957
print("number of level: "+intString(listLength(level))+"\nnumber of processors :"+intString(Flags.getConfigInt(Flags.NUM_PROC))+"\n");
19551958
end if;
19561959
levelComps := List.mapList1_1(level,Array.getIndexFirst,inComps);
1957-
levelComps := List.mapList1_1(levelComps,List.sort,intGt);
1960+
//levelComps := List.mapList1_1(levelComps,List.sort,intGt);
19581961
SCCs := List.map1(levelComps,getSimEqSysIdcsForNodeLst,iSccSimEqMapping);
19591962
levelTasks := List.threadMap(SCCs,List.mapList(level,List.create),makeCalcLevelParTaskLst);
19601963
oSchedule := HpcOmSimCode.LEVELSCHEDULE(levelTasks, false);
@@ -2126,15 +2129,28 @@ protected
21262129
list<HpcOmSimCode.Task> taskList;
21272130
HpcOmSimCode.Task newTask;
21282131
list<Integer> components, simEqs;
2132+
Integer taskIdx;
21292133
algorithm
21302134
(threadIdx, taskList) := iIdxTaskList;
2131-
components := List.flatten(List.map1(iTaskList, Array.getIndexFirst, iComps)); //Components of each task
2132-
simEqs := List.flatten(List.map(List.map1(components,Array.getIndexFirst,iSccSimEqMapping), listReverse));
2133-
print("createFixedLevelScheduleForLevel0: eqs=" + stringDelimitList(List.map(simEqs, intString), ",") + "\n");
2134-
simEqs := listReverse(simEqs);
2135-
print("createFixedLevelScheduleForLevel0: eqs=" + stringDelimitList(List.map(simEqs, intString), ",") + "\n");
2136-
newTask := HpcOmSimCode.CALCTASK_LEVEL(simEqs, iTaskList, SOME(threadIdx));
2137-
taskList := newTask :: taskList;
2135+
for taskIdx in iTaskList loop
2136+
components := arrayGet(iComps, taskIdx); //Components of the task
2137+
print("createFixedLevelScheduleForLevel0: Handling task with idx: " + intString(taskIdx) + "\n");
2138+
simEqs := List.flatten(List.map(List.map1(components,Array.getIndexFirst,iSccSimEqMapping), listReverse));
2139+
if(intGt(listLength(simEqs), 0)) then
2140+
simEqs := simEqs;
2141+
newTask := HpcOmSimCode.CALCTASK_LEVEL(simEqs, {taskIdx}, SOME(threadIdx));
2142+
taskList := newTask :: taskList;
2143+
end if;
2144+
end for;
2145+
2146+
//This code merges all tasks handled by the same thread -- makes efficient memory management more complicated
2147+
//components := List.flatten(List.map1(iTaskList, Array.getIndexFirst, iComps)); //Components of each task
2148+
//simEqs := List.flatten(List.map(List.map1(components,Array.getIndexFirst,iSccSimEqMapping), listReverse));
2149+
//if(intGt(listLength(simEqs), 0)) then
2150+
// simEqs := listReverse(simEqs);
2151+
// newTask := HpcOmSimCode.CALCTASK_LEVEL(simEqs, iTaskList, SOME(threadIdx));
2152+
// taskList := newTask :: taskList;
2153+
//end if;
21382154
oIdxTaskList := (threadIdx+1,taskList);
21392155
end createFixedLevelScheduleForLevel0;
21402156

@@ -2851,7 +2867,7 @@ algorithm
28512867
//print("Eq idc: " + stringDelimitList(List.map(eqIdc, intString), ",") + "\n");
28522868
simEqIdc = List.map(List.map1(eqIdc,getSimEqSysIdxForComp,iSccSimEqMapping), List.last);
28532869
//print("Simcodeeq idc: " + stringDelimitList(List.map(simEqIdc, intString), ",") + "\n");
2854-
simEqIdc = List.sort(simEqIdc,intGt);
2870+
//simEqIdc = List.sort(simEqIdc,intGt);
28552871

28562872
newTask = HpcOmSimCode.CALCTASK(weighting,index,calcTime,threadFinishTime,threadId,simEqIdc);
28572873
threadTasks = newTask::threadTasks;
@@ -2877,7 +2893,7 @@ algorithm
28772893
threadTasks = arrayGet(allThreadTasks,threadId);
28782894

28792895
simEqIdc = List.flatten(List.map1(eqIdc,getSimEqSysIdxForComp,iSccSimEqMapping));
2880-
simEqIdc = List.sort(simEqIdc,intGt);
2896+
//simEqIdc = List.sort(simEqIdc,intGt);
28812897

28822898
newTask = HpcOmSimCode.CALCTASK(weighting,index,calcTime,threadFinishTime,threadId,simEqIdc);
28832899
allThreadTasks = arrayUpdate(allThreadTasks,threadId,newTask::threadTasks);
@@ -4700,7 +4716,7 @@ algorithm
47004716
mark = arrayGet(nodeMark,node);
47014717
((_,exeCost)) = HpcOmTaskGraph.getExeCost(node,taskGraphMetaIn);
47024718
simEqIdc = List.map(List.map1(components,getSimEqSysIdxForComp,SccSimEqMappingIn), List.last);
4703-
simEqIdc = List.sort(simEqIdc,intGt);
4719+
//simEqIdc = List.sort(simEqIdc,intGt);
47044720
task = HpcOmSimCode.CALCTASK(mark,node,exeCost,-1.0,proc,simEqIdc);
47054721
taskLst1 = task::taskLstRel;
47064722
taskLst1 = listAppend(taskLstAss,taskLst1);

0 commit comments

Comments
 (0)