Next:
alm distribution    Previous: Data distribution


Map distribution

The maps (or map-like objects) are (and have to be) distributed in such a way that each processor contains a subset of consecutive, complete iso-latitude pixel rings. Moreover, the rings stored in the memory of the ith proc need to precede those stored in the memory of the i+1th proc. No overlaps are allowed. Due to the assumed equatorial symmetry of the pixelization schemes permitted by s2hat, only rings from one hemisphere (typically assumed to be the Northern one) plus the equatorial ring are explicitly considered in the distribution process. However, the ring is considered "observed" if at least one pixel of the ring or of its symmetric counterpart is included in the map.

The range of rings assigned to a processor is defined is defined by two numbers: first_ring and last_ring defining the first and last ring (both inclusive) assigned to the proc. Therefore all the rings with numbers first_ringjlast_ring will be processed by this processor. There must be at least one ring assigned to each proc. If the total number of rings is given by n then,

  • 1first_ringlast_ringn/2 for the pixelizations, which do not have the equatorial row;

or
  • 1first_ringlast_ringn/2+1 for the pixelizations, which have the equatorial row.


N.B.,
  • The parameter nringsall, equal either to n/2 in the case with no equatorial ring or n/2+1 otherwise, is stored as one of the fields of the s2hat_pixeltype structure (see Sections on S2HAT parameters and structures).
  • For the load-balanced distribution, one can use the get_local_data_sizes routine to compute the ring ranges for each processor.
  • The rings are always numbered from 1 to nringsall for both Fortran 90 and C routines. Indices of the S2HAT structures holding the ring related info will however run from either from 1 to nringsall, in Fortran 90, or from 0 to nringsall-1, in C.
  • On the other hand the pixel numbers will go always from 0 to npix-1 and the map-like objects will have pixels indices running always from 0 to npix-1, where npix is either global or local number of pixels.

  • In Fortran 90 the local submap is stored as a three-dimensional array of double precision numbers and sizes,
    (0:map_size-1,1:nstokes,1:nmaps).

    In C those arrays are stored as a vector in the column-wise order, i.e., the last index varies the last.

    See the Sections of the manual describing S2HAT Data Objects for more details.



    Next: alm distribution    Previous: Data distribution

    radek stompor 2009-10-15