SLIDE 15 !$OMP PARALLEL PRIVATE(ti, tlo, thi, reglo, reghi, i, j, ptrA) ti = tileItr_build(abstractAB, logtilesize) do while(next_tile(ti)) ptrA =>dataptr(A, ti) tlo = get_lwb(ti) thi = get_upb(ti) !Option 1: process a tile within a loop do j = tlo(2), thi(2) do i = tlo(1), thi(1) ptrA(i,j) = compute(i,j) ... end do end do !Option 2: process a tile within a function reglo = get_lwb(get_region(A, ti))
reghi = get_upb(get_region(A, ti)) ! call compute_a_tile(ptrA, tlo, thi, reglo, reghi) end do !$OMP END PARALLEL
OperaGon ¡on ¡TiDA ¡Arrays ¡
Original ¡loop ¡ nest ¡
Tiling ¡iterator ¡and ¡ its ¡loop ¡ Get ¡Gle ¡ and ¡its ¡ range ¡