[mpich2-dev] Hydra 1.4 without HYDU_local_to_global_id(...) function

Cody R. Brown cody at cs.ubc.ca
Wed Aug 3 18:27:30 CDT 2011


Hello;

I am attempting to get the global id (rank) of the starting process in
each proxy in the mpiexec.c (hydra) code, similar to how the
"print_rank_map" function worked in the 1.3.2p1 hydra source. I used
the function: HYDU_local_to_global_id(process_id,proxy->start_pid,proxy->node.core_count,HYD_server_info.global_core_count)
to achieve this in the past.

Upgrading the code to Hydra 1.4, I noticed the HYDU_local_to_global_id
function was removed, and some of the information in the proxy
structure (such as the proxy->start_pid) was removed (or
renamed/moved). The equation the function used is below:
    return ((local_id / core_count) * global_core_count) + (local_id %
core_count) + start_pid;

I managed to use the following equation to get the rank. However I
have to calculate the start_pid along the way:
    return = ((process_id/proxy->filler_processes)*HYD_server_info.pg_list.pg_core_count)+(process_id
% proxy->filler_processes)+start_pid;

My questions are:
 Is the start_pid (use to be stored in proxy->start_pid) somewhere
else? Or should I be calculating it as I go through the proxy list
like I am doing now?
 is the proxy->filler_processes (hydra 1.4) similar to the
proxy->node.core_count? The node structure doesn't seem to be
initialized at the location I am calculating the rank anymore.
 Is the HYD_server_info.pg_list.pg_core_count (1.4) the same as
HYD_server_info.global_core_count (1.3.2p1) which is no longer there?

Thanks for any help you may have.

--
Cody R. Brown, M.Sc. Student
  UBC Department of Computer Science
  201-2366 Main Mall, Vancouver, BC, V6T 1Z4
  Office: ICCS x409      http://www.codybrown.ca/


More information about the mpich2-dev mailing list