From a8994fc55fa013028d3bd371ed8545a1a0636182 Mon Sep 17 00:00:00 2001 From: Dorian Stoll <dorian.stoll@uni-potsdam.de> Date: Thu, 13 Jun 2024 07:01:42 +0200 Subject: [PATCH] rodinia-srad: julia: Fix iteration loop --- src/benchmarks/rodinia-srad/julia/srad.jl | 78 +++++++++++------------ 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/benchmarks/rodinia-srad/julia/srad.jl b/src/benchmarks/rodinia-srad/julia/srad.jl index 50734a32..a6daba92 100755 --- a/src/benchmarks/rodinia-srad/julia/srad.jl +++ b/src/benchmarks/rodinia-srad/julia/srad.jl @@ -75,58 +75,58 @@ function main(args) sum2 += tmp * tmp end end - end - meanROI::Float32 = sum / size_R - varROI::Float32 = (sum / size_R) - meanROI * meanROI - q0sqr::Float32 = varROI / (meanROI * meanROI) + meanROI::Float32 = sum / size_R + varROI::Float32 = (sum / size_R) - meanROI * meanROI + q0sqr::Float32 = varROI / (meanROI * meanROI) - @sync @parallel for i in 1:size(J,1) - for j in size(J,2) - Jc = J[i,j] + @sync @parallel for i in 1:size(J,1) + for j in size(J,2) + Jc = J[i,j] - # directional derivates - dN[i,j] = J[iN[i],j] - Jc - dS[i,j] = J[iS[i],j] - Jc - dW[i,j] = J[i,jW[j]] - Jc - dE[i,j] = J[i,jE[j]] - Jc + # directional derivates + dN[i,j] = J[iN[i],j] - Jc + dS[i,j] = J[iS[i],j] - Jc + dW[i,j] = J[i,jW[j]] - Jc + dE[i,j] = J[i,jE[j]] - Jc - G2 = (dN[i,j] * dN[i,j] + dS[i,j] * dS[i,j] + dW[i,j] * dW[i,j] + - dE[i,j] * dE[i,j]) / - (Jc * Jc) + G2 = (dN[i,j] * dN[i,j] + dS[i,j] * dS[i,j] + dW[i,j] * dW[i,j] + + dE[i,j] * dE[i,j]) / + (Jc * Jc) - L = (dN[i,j] + dS[i,j] + dW[i,j] + dE[i,j]) / Jc + L = (dN[i,j] + dS[i,j] + dW[i,j] + dE[i,j]) / Jc - num = (0.5 * G2) - ((1.0 / 16.0) * (L * L)) - den = 1 + (0.25 * L) - qsqr = num / (den * den) + num = (0.5 * G2) - ((1.0 / 16.0) * (L * L)) + den = 1 + (0.25 * L) + qsqr = num / (den * den) - # diffusion coefficent (equ 33) - den = (qsqr - q0sqr) / (q0sqr * (1 + q0sqr)) - c[i,j] = 1.0 / (1.0 + den) + # diffusion coefficent (equ 33) + den = (qsqr - q0sqr) / (q0sqr * (1 + q0sqr)) + c[i,j] = 1.0 / (1.0 + den) - # saturate diffusion coefficent - if (c[i,j] < 0) - c[i,j] = 0 - elseif (c[i,j] > 1) - c[i,j] = 1 + # saturate diffusion coefficent + if (c[i,j] < 0) + c[i,j] = 0 + elseif (c[i,j] > 1) + c[i,j] = 1 + end end end - end - @sync @parallel for i in 1:size(J,1) - for j in 1:size(J,2) - # diffusion coefficient - cN = c[i,j] - cS = c[iS[i],j] - cW = c[i,j] - cE = c[i,jE[j]] + @sync @parallel for i in 1:size(J,1) + for j in 1:size(J,2) + # diffusion coefficient + cN = c[i,j] + cS = c[iS[i],j] + cW = c[i,j] + cE = c[i,jE[j]] - # divergence (equ 58) - D = cN * dN[i,j] + cS * dS[i,j] + cW * dW[i,j] + cE * dE[i,j] + # divergence (equ 58) + D = cN * dN[i,j] + cS * dS[i,j] + cW * dW[i,j] + cE * dE[i,j] - # image update (equ 61) - J[i,j] += 0.25 * lambda * D + # image update (equ 61) + J[i,j] += 0.25 * lambda * D + end end end -- GitLab