Build: #1 failed

Job: Tag Casa6 was successful

Code commits

Casa6

  • Rui Xue <rx.astro@gmail.com>

    Rui Xue <rx.astro@gmail.com> 826c31e116218750e0d4bd9668df49796f903cfe

    CAS-14756: Align image tile shape to MPI channel boundaries and disable explicit file locks
    The default casacore TiledShape could produce tiles that are
    small spatially but span many spectral channels. When mpicasa workers
    write to disjoint channel ranges of shared .residual/.psf/.sumwt images,
    their writes collide on the same physical disk tiles, causing Lustre
    table.lock contention that serializes all I/O (observed: ~22.5h on a
    29,861-channel dataset).

    SIImageStore::buildImage():
    - When chnchnks > 1 in itsMiscInfo, override PagedImage tile shape with
      TiledShape(min(Nx,256), min(Ny,256), Npol, Nchan/chnchnks), ensuring
      each MPI worker's channel range maps to independent tile blocks.
    - Serial mode (chnchnks absent or 1) falls back to the original
      PagedImage(shape, csys, name) constructor with casacore defaults.

    CubeMajorCycleAlgorithm:
    - subImageStore(): disable sumwt.lock(FileLocker::Write) — sumwt is only
      read for its shape, never written here.
    - getSubImage(): disable im->lock(FileLocker::Read) and im->unlock() —
      data is copied into a TempImage; no persistent write occurs.
    - writeBackToFullImage(): disable LatticeLocker and im->unlock() —
      workers write non-overlapping SubImage channel slices; tile alignment
      guarantees no shared disk blocks.

    Anticipate no metadata race risk: workers never call setImageInfo/setMiscInfo on
    disk images. All normalization operates on in-memory TempImage copies.
    Beam sets are serialized via MPI returnRec and merged by Rank 0 after
    all workers complete.