Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class group

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class group

boost::mpi::group — A group is a representation of a subset of the processes within a communicator.

Synopsis

// In header: <boost/mpi/group.hpp>

class group {
public:
  // construct/copy/destruct
  group();
  group(const MPI_Group &, bool);
  // public member functions
  optional< int > rank() const;
  int size() const;
  template<typename InputIterator, typename OutputIterator> 
    OutputIterator 
    translate_ranks(InputIterator, InputIterator, const group &, 
                    OutputIterator);
  operator bool() const;
  operator MPI_Group() const;
  template<typename InputIterator> group include(InputIterator, InputIterator);
  template<typename InputIterator> group exclude(InputIterator, InputIterator);
};

Description

Класс<group>позволяет создавать произвольные подмножества процессов внутри коммуникатора. Можно вычислить союз, пересечение или различие двух групп, или создать новые группы, включив или исключив определенные процессы. При наличии группы можно создать новый коммуникатор, содержащий только процессы в этой группе.

group public construct/copy/destruct

  1. <
    group();
    >Построение пустой группы.
  2. <
    group(constMPI_Group&in_group,booladopt);
    >Построение группы из<MPI_Group>.

    Эта рутина позволяет построить буст. MPI<group>из C<MPI_Group>.<group>объект может (необязательно) принять<MPI_Group>, после чего<group>объект становится ответственным за освобождение<MPI_Group>, когда последняя копия<group>исчезает.

    Параметры:

    <adopt>

    Должны ли<group>принять<MPI_Group>? Если это правда, то<group>объект (или одна из его копий) освободит группу (через<MPI_Comm_free>), когда последняя копия будет уничтожена. В противном случае, пользователь несет ответственность за вызов<MPI_Group_free>.

    <in_group>

    <MPI_Group>, используемый для построения этого<group>.

group public member functions

  1. <
    optional<int>rank()const;
    >Определить ранг вызывающего процесса в группе.

    Эта рутина эквивалентна<MPI_Group_rank>.

    Возвращение:

    Ранг процесса вызова в группе, который будет значением в [0, размер()]. Если процесс вызова не находится в группе, возвращает пустое значение.

  2. <
    intsize()const;
    >Определить количество процессов в группе.

    Эта рутина эквивалентна<MPI_Group_size>.

    Возвращение:

    Количество процессов в группе.

  3. <
    template<typenameInputIterator,typenameOutputIterator>
     OutputIterator
     translate_ranks(InputIteratorfirst,InputIteratorlast,
                     constgroup&to_group,OutputIteratorout);
    >Переводит ряды из одной группы в ряды тех же процессов в другой группе.

    Эта процедура переводит каждое из целых значений ранга в диапазоне итераторов<>[первый, последний] из текущей группы в значения ранга соответствующих процессов в<to_group>. Соответствующие значения ранга записываются через выходной итератор<out>. Когда нет соответствия между рангом в текущей группе и рангом в<to_group>, значение<MPI_UNDEFINED>записывается на выходной итератор.

    Параметры:

    Начало диапазона итераторов рангов в текущей группе.

    <last>

    После окончания итератора диапазон рангов в текущей группе.

    <out>

    Выходной итератор, на который будут написаны переведенные ранги.

    <to_group>

    Группа, на которую мы переводим ранги.

Возвращает:

выходной итератор, который указывает один шаг за последним написанным рангом.

  • <
    operatorbool()const;
    >Определяет, является ли группа непустой.

    Возвращение:

    Правда, если группа не пуста, ложь, если она пуста.

  • <
    operatorMPI_Group()const;
    >Извлекает лежащее в основе<MPI_Group>, связанное с этой группой.

    Возвращение:

    264 манипулируют этим объектом. Если этот объект представляет пустую группу, возвращается<MPI_GROUP_EMPTY>.

  • <
    template<typenameInputIterator>
     groupinclude(InputIteratorfirst,InputIteratorlast);
    >Создает новую группу, включающую подмножество процессов в текущей группе.

    Эта процедура создает новую<group>, которая включает в себя только те процессы в текущей группе, которые перечислены в целочисленном диапазоне итераторов<>[первый, последний].<MPI_Group_incl>

    <first>Начало диапазона итераторов для включения.

    <last>После окончания диапазона итераторов для включения.

    Возвращение:

    Новая группа, содержащая те процессы с рангами<>[первый, последний] в текущей группе.

  • <
    template<typenameInputIterator>
     groupexclude(InputIteratorfirst,InputIteratorlast);
    >Создает новую группу из всех процессов в текущей группе, исключая конкретное подмножество процессов.

    Эта процедура создает новый<group>, который включает в себя все процессы в текущей группе, за исключением тех, чьи ранги перечислены в целочисленном диапазоне итераторов<>[первый, последний].<MPI_Group_excl>

    <first>Начало итератора диапазона рангов исключить.

    <last>После окончания итератора диапазон рангов исключить.

    Возвращение:

    Новая группа, содержащая все процессы в текущей группе, за исключением тех процессов с рангами<>[первый, последний] в текущей группе.


  • PrevUpHomeNext

    Статья Class group раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




    Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



    :: Главная :: Reference ::


    реклама


    ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
    Top.Mail.Ru

    Время компиляции файла: 2024-08-30 11:47:00
    2025-05-20 02:50:56/0.0045731067657471/0