git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@7343 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2011-12-13 17:00:43 +00:00
parent 9b72a103ea
commit 3d36d38a51
4 changed files with 92 additions and 24 deletions

View File

@ -33,7 +33,7 @@ enum{MULTIPLE}; // same as in Comm
ProcMap::ProcMap(LAMMPS *lmp) : Pointers(lmp) {}
/* ----------------------------------------------------------------------
create a 1-level 3d grid of procs via procs2box()
create a one-level 3d grid of procs via procs2box()
------------------------------------------------------------------------- */
int ProcMap::onelevel_grid(int nprocs, int *user_procgrid, int *procgrid,
@ -49,6 +49,18 @@ int ProcMap::onelevel_grid(int nprocs, int *user_procgrid, int *procgrid,
return flag;
}
/* ----------------------------------------------------------------------
create a two-level 3d grid of procs and cores via procs2box()
------------------------------------------------------------------------- */
int ProcMap::twolevel_grid(int nprocs, int *user_procgrid, int *procgrid,
int ncores, int *user_coregrid, int *coregrid,
int otherflag, int other_style_caller,
int *other_procgrid_caller)
{
return 1;
}
/* ----------------------------------------------------------------------
create a 3d grid of procs that does a 2-level hierarchy within a node
auto-detects NUMA sockets within a multi-core node
@ -151,7 +163,8 @@ int ProcMap::numa_grid(int nprocs, int *user_procgrid, int *procgrid,
create a 1-level 3d grid of procs via procs2box()
------------------------------------------------------------------------- */
void ProcMap::custom_grid(int nprocs, int *user_procgrid, int *procgrid)
void ProcMap::custom_grid(char *cfile, int nprocs,
int *user_procgrid, int *procgrid)
{
}
@ -315,6 +328,17 @@ void ProcMap::cart_map(int reorder, int *procgrid,
MPI_Comm_free(&cartesian);
}
/* ----------------------------------------------------------------------
map processors to 3d grid via MPI_Cart routines
respect sub-grid of cores within each node
MPI may do layout in machine-optimized fashion
------------------------------------------------------------------------- */
void ProcMap::cart_map(int reorder, int *procgrid, int *coregrid,
int *myloc, int procneigh[3][2], int ***grid2proc)
{
}
/* ----------------------------------------------------------------------
map processors to 3d grid in XYZ order
------------------------------------------------------------------------- */
@ -362,6 +386,16 @@ void ProcMap::xyz_map(char *xyz, int *procgrid,
procneigh[2][1] = grid2proc[myloc[0]][myloc[1]][plus];
}
/* ----------------------------------------------------------------------
map processors to 3d grid in XYZ order
respect sub-grid of cores within each node
------------------------------------------------------------------------- */
void ProcMap::xyz_map(char *xyz, int *procgrid, int *coregrid,
int *myloc, int procneigh[3][2], int ***grid2proc)
{
}
/* ----------------------------------------------------------------------
map processors to 3d grid in 2-level NUMA ordering
------------------------------------------------------------------------- */