diff --git a/idg/Imager.cc b/idg/Imager.cc index 0511ecd25b2ad603aec1a8f7caf3170678347b6f..98da748c47a296bc313cd647fc05f2a0ffe4446b 100644 --- a/idg/Imager.cc +++ b/idg/Imager.cc @@ -1,7 +1,7 @@ // Copyright (C) 2023 ASTRON (Netherlands Institute for Radio Astronomy) // SPDX-License-Identifier: GPL-3.0-or-later -#include <aocommon/parallelfor.h> +#include <aocommon/staticfor.h> #include <fftw3.h> #include <algorithm> @@ -108,7 +108,7 @@ void WeighVisibilities(size_t n_threads, assert(uv_pixels.shape()[1] == n_baselines); assert(uv_pixels.shape()[2] == n_channels); - aocommon::ParallelFor<size_t> loop(n_threads); + aocommon::StaticFor<size_t> loop(n_threads); loop.Run(0, n_baselines, [&](size_t bl, size_t /*thread*/) { for (size_t chan = 0; chan < n_channels; ++chan) { for (size_t cor = 0; cor < n_correlations; ++cor) { @@ -160,7 +160,7 @@ void VisibilitiesToSubgrids( const xt::xtensor<float, 1> wavenumbers = ComputeWavenumbers(frequencies); - aocommon::ParallelFor<size_t> loop(n_threads); + aocommon::StaticFor<size_t> loop(n_threads); loop.Run(0, n_baselines, [&](size_t bl, size_t /*thread*/) { // Load metadata const SubgridMetadata m = metadata(bl); @@ -226,7 +226,7 @@ void ApplySubgridFFT(size_t n_threads, fftwf_complex* out = in; plan = fftwf_plan_dft_2d(size, size, in, out, sign, FFTW_ESTIMATE); - aocommon::ParallelFor<size_t> loop(n_threads); + aocommon::StaticFor<size_t> loop(n_threads); loop.Run(0, n_subgrids, [&](size_t i, size_t /*thread*/) { fftwf_complex* subgrid = reinterpret_cast<fftwf_complex*>(&subgrids(i, 0, 0)); @@ -247,7 +247,7 @@ void SubgridsToGrid(size_t n_threads, size_t subgrid_size, size_t grid_size, const xt::xtensor<SubgridMetadata, 1>& metadata, const xt::xtensor<std::complex<float>, 3>& subgrids, xt::xtensor<std::complex<float>, 2>& grid) { - aocommon::ParallelFor<size_t> loop(n_threads); + aocommon::StaticFor<size_t> loop(n_threads); const size_t nr_subgrids = metadata.size(); @@ -279,7 +279,7 @@ void SubgridsToTiles(size_t n_threads, size_t tile_size, size_t grid_size, const size_t subgrid_size = subgrids.shape()[1]; assert(subgrid_size == subgrids.shape()[2]); - aocommon::ParallelFor<size_t> loop(n_threads); + aocommon::StaticFor<size_t> loop(n_threads); // Precompute phasor xt::xtensor<float, 2> phase({subgrid_size, subgrid_size}); @@ -440,7 +440,7 @@ void ApplyGridFFT(size_t n_threads, xt::xtensor<std::complex<float>, 2>& in, fftwf_plan plan = fftwf_plan_dft_1d(size, nullptr, nullptr, sign, FFTW_ESTIMATE); - aocommon::ParallelFor<size_t> loop(n_threads); + aocommon::StaticFor<size_t> loop(n_threads); xt::xtensor<std::complex<float>, 2> temp({size, size}, 0); @@ -502,7 +502,7 @@ void ApplyPhasor(size_t tile_idx, float image_size, float w_step, float tile_z, } // end for y } // end ApplyPhasor -void PaddedTilesToGrid(aocommon::ParallelFor<size_t>& loop, size_t n_tiles, +void PaddedTilesToGrid(aocommon::StaticFor<size_t>& loop, size_t n_tiles, size_t tile_offset, const xt::xtensor<TileMetadata, 1>& metadata, const xt::xtensor<std::complex<float>, 3>& tiles, @@ -554,7 +554,7 @@ void TilesToGrid(size_t n_threads, float image_size, float w_step, fftwf_plan plan_backward = fftwf_plan_dft_1d( padded_tile_size, nullptr, nullptr, FFTW_BACKWARD, FFTW_ESTIMATE); - aocommon::ParallelFor<size_t> loop(n_threads); + aocommon::StaticFor<size_t> loop(n_threads); const size_t n_tiles = tiles.shape()[0]; size_t current_n_tiles = 0; @@ -632,7 +632,7 @@ void Imager::Initialize(const xt::xtensor<double, 1>& frequencies, // Initialize per baseline metadata subgrid_metadata_.resize({n_baselines}); uv_pixels_.resize({2, n_baselines, n_channels}); - aocommon::ParallelFor<size_t> loop(1); + aocommon::StaticFor<size_t> loop(1); loop.Run(0, n_baselines, [&](size_t bl, size_t /*thread*/) { const double u_meters = uvw(bl, 0); const double v_meters = uvw(bl, 1); @@ -824,7 +824,7 @@ xt::xtensor<float, 2> Imager::GetImage() { const size_t x_start = y_start; const size_t x_end = y_end; - aocommon::ParallelFor<size_t> loop(n_threads_); + aocommon::StaticFor<size_t> loop(n_threads_); loop.Run(y_start, y_end, [&](size_t y, size_t /*thread*/) { for (size_t x = x_start; x < x_end; ++x) { const size_t y_src = (y + (padded_grid_size_ / 2)) % padded_grid_size_;