Up: Size/memory estimation routines    Previous: local_map_size


get_local_data_sizes

subroutine get_local_data_sizes( int precompute_plms, pixeltype pixelization, scandef scan, int nmmax, int myid, int numprocs, int *nmvals, int *first_ring, int *last_ring, int *map_size, long int *nplm, int root, MPI_Comm comm)

Purpose:

Given the pixelization, pixelization, and the scan, scan, the routine estimates the sizes of all the local data objects for a work-load balanced data distribution. It is just a wrapper performing all the calls explained in this section (with an exception of find_mvals, which still need to follow once the appropriate vector is allocated). Its output suffices to perform all the allocations needed for the transforms.
To be called by each proc.

Parameters:

input:
precompute_plms- [int], if non-zero estimates the number of l,m coeffs to be stored on a proc, in fact it may somewhat overestimate on a proc root;

pixelization- [type(pixeltype)], a S2HAT structure storing the info about the pixelization;

scan- [type(scandef)], a S2HAT structure storing the info about the sky coverage;

nlmax- [int], maximum value of l considered (included);

nmmax- [int], maximum value of m considered (included);

numprocs- [int], total number of procs used;

myid- [int], proc id (0,...,numprocs-1);

root(*)-- [int], defines root processor on which the alm coefficients are stored in a non-distributed form;

comm(*)-- [MPI_Comm], an mpi communicator for the numprocs procs.
output:
nmvals- [int], a number of m values to be stored on a given proc. (see also nummvals.)

first_ring, last_ring- [int], numbers of a first and last ring of the Northern hemisphere which define a sub map (both included) to be stored on a given proc. (see also find_scan_ring_range.)

map_size- [int[, a number of pixels in a submap stored on a given proc and corresponding to a set of rings defined by first_ring and last_ring above. Both Northern and corresponding Southern hemisphere rings are included and all the pixels of rings even only partially observed are counted. (see also local_map_size).

nplm- [long int], a total number of Plm of a single type to be stored on a proc, irrelevant if precompute_plms == 0. (see also nummmodes.)



Up: Size/memory estimation routines    Previous: local_map_size

radek stompor 2009-10-15