Thanks Rob very much,

Jialin

On Fri, Oct 17, 2014 at 9:45 AM, Rob Latham <robl@mcs.anl.gov> wrote:


On 10/16/2014 10:07 PM, Jaln wrote:
Hi,
How can I know the aggregator's rank in the collective I/O?

fd->hints->ranklist[] contains an array of MPI ranks assigned to an aggregator.


I also feel difficult to distinguish the aggregator and non-aggregator
in the ad_read_coll.c,
for example, in function ADIOI_R_Exchange_data,
how can I know it is executed by a process or an aggregator?
I can only see how 'nprocs_for_coll' is used in partitioning the file
domain,
but couldn't see how it is used to tell the certain number of aggregator
to do the collective I/O.

I think you want to look at ADIOI_Calc_aggregator, which will report which MPI-IO aggregator is responsible for which regions of a file, and how much.

ADIOI_R_Exchange_data is called by every process.  Some processes are receiving data from an aggregator, and aggregators are sending read data, but everyone participates.

Take a look earlier on:  ADIOI_Calc_my_req and ADIOI_Calc_others_req are two of the routines responsible for generating the schedule of requests.

==rob

--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA
_______________________________________________
discuss mailing list     discuss@mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss