Opened 10 years ago
#3350 new defect
ParModelica: parkernel and scalar output doesn't work
Reported by: | Gustaf Thorslund | Owned by: | Mahder Alemseged Gebremedhin |
---|---|---|---|
Priority: | high | Milestone: | Future |
Component: | ParModelica | Version: | trunk |
Keywords: | Cc: |
Description
setCommandLineOptions("-v=1 +g=ParModelica +d=noevalfunc"); loadString(" package ParScalarOutput constant Integer arrayCnt = 2; parkernel function f parglobal input Real A[arrayCnt]; output Real B; parglobal output Real C; algorithm if oclGetGlobalId(1) == 1 and oclGetGlobalId(2) == 1 and oclGetGlobalId(3) == 1 then B := A[arrayCnt]; C := A[1]; end if; end f; function test input Real d; output Real a; output Real b; protected parglobal Real pResult[arrayCnt]; Real tmp[arrayCnt]; parglobal Real pTmp[arrayCnt]; parglobal Real pB; algorithm for i loop tmp[i] := i; end for; pTmp := tmp; (a,pB) := f(pTmp); b := pB; end test; end ParScalarOutput; "); (x,y):=ParScalarOutput.test(4); x; y;
- Select your device: 2 :Using flags -I"/home/gusth/src/OpenModelica/build/include/omc/c/" OpenCL initialization : 5836.392000 ms Kernel Execution : 0.035000 ms Kernel calls: 1, time 0.000035 s, avg 0.035000 ms 6.95326731319017e-310 0.0
Tested using my ParModelicaFixes branch on github containing fixes from Mahder, so it may or may not be related to those fixes.
Workaround is to use a parglobal array as output, assign it to a parglobal array, copy to an ordinary array, and finally read the value.
Note:
See TracTickets
for help on using tickets.