Uint MergedParallelDistribution::subhash_of_obj(const Uint obj) const
{
  Uint part = part_of_obj(obj);
  Uint start_idx_of_obj_part = start_idx_in_part( part );
  Uint offset = obj - start_idx_of_obj_part;

  Uint psize = 0;
  Uint i=0;
  boost_foreach(Handle< ParallelDistribution > hash, m_subhash)
  {
    psize += hash->nb_objects_in_part(part);
    if (offset < psize)
      return i;
    ++i;
  }
Ejemplo n.º 2
0
Uint CMixedHash::subhash_of_obj(const Uint obj) const
{
  Uint part = part_of_obj(obj);
  Uint start_idx_of_obj_part = start_idx_in_part( part );
  Uint offset = obj - start_idx_of_obj_part;

  Uint psize = 0;
  Uint i=0;
  boost_foreach(CHash::ConstPtr hash, m_subhash)
  {
    psize += hash->nb_objects_in_part(part);
    if (offset < psize)
      return i;
    ++i;
  }
Uint MergedParallelDistribution::start_idx_in_proc(const Uint proc) const
{
  Uint part_begin = m_nb_parts/PE::Comm::instance().size()*proc;
  return start_idx_in_part(part_begin);
}
Uint MergedParallelDistribution::nb_objects_in_part(const Uint part) const
{
  return end_idx_in_part(part) - start_idx_in_part(part);
}
Ejemplo n.º 5
0
Uint CMixedHash::start_idx_in_proc(const Uint proc) const
{
  Uint part_begin = m_nb_parts/Comm::PE::instance().size()*proc;
  return start_idx_in_part(part_begin);
}
Ejemplo n.º 6
0
Uint CMixedHash::nb_objects_in_part(const Uint part) const
{
  return end_idx_in_part(part) - start_idx_in_part(part);
}