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

Class intercommunicator

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 intercommunicator

boost::mpi::intercommunicator — Communication facilities among processes in different groups.

Synopsis

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

class intercommunicator : public boost::mpi::communicator {
public:
  // construct/copy/destruct
  intercommunicator(const MPI_Comm &, comm_create_kind);
  intercommunicator(const communicator &, int, const communicator &, int);
  // public member functions
  int local_size() const;
  boost::mpi::group local_group() const;
  int local_rank() const;
  int remote_size() const;
  boost::mpi::group remote_group() const;
  communicator merge(bool) const;
};

Description

Класс<intercommunicator>обеспечивает средства связи между процессами из разных групп. Интеркоммуникатор всегда связан с двумя группами процессов: одна «локальная» группа процессов, содержащая процесс, который инициирует операцию MPI (например, отправитель в операции<send>), и одна «удаленная» группа процессов, содержащая процесс, который является целью операции MPI.

В то время как интеркоммуникаторы имеют по существу те же операции «точка-точка», что и интракоммуникаторы (последние общаются только в пределах одной группы процессов), вся связь с интеркоммуникаторами происходит между процессами в локальной группе и процессами в удаленной группе; связь внутри группы должна использовать другой (внутри) коммуникатор.

intercommunicator public construct/copy/destruct

  1. <
    intercommunicator(constMPI_Comm&comm,comm_create_kindkind);
    >

    Построй новый буст. MPI интеркоммуникатор на основе MPI интеркоммуникатор<comm>.

    <comm>может быть любым действительным MPI интеркоммуникатор. Если<comm>является MPI_COMM_NULL, создается пустой коммуникатор (который не может быть использован для связи), и параметр<kind>игнорируется. В противном случае,<kind>параметр определяет, как увеличить. MPI коммуникатор будет связан с<comm:>

    • Если<kind><comm_duplicate>, дубликат<comm>для создания нового коммуникатора. Этот новый коммуникатор будет освобожден, когда буст. Уничтожается MPI-коммуникатор (и все его копии). Этот вариант допускается только в том случае, если базовая реализация MPI поддерживает MPI 2.0; в MPI 1.x дублирование межкоммуникаторов недоступно.

    • Если<kind>является<comm_take_ownership>, возьмите на себя<comm>. Она будет освобождена автоматически, когда все усилится. Коммуникаторы MPI выходят за рамки.

    • Если<kind>это<comm_attach>, то этот рост. MPI-коммуникатор будет ссылаться на существующий MPI-коммуникатор<comm>, но не будет освобождать<comm>при увеличении. MPI коммуникатор выходит за рамки. Эта опция должна использоваться только тогда, когда коммуникатором управляет пользователь.

  2. <
    intercommunicator(constcommunicator&local,intlocal_leader,
                     constcommunicator&peer,intremote_leader);
    >

    Конструирует новый интеркоммуникатор, локальная группа которого<local>и удаленная группа которого<peer>. Затем интеркоммуникатор может использоваться для связи между процессами в двух группах. Этот конструктор эквивалентен вызову<MPI_Intercomm_create>.

    Параметры:

    Интракоммуникатор, содержащий все процессы, которые будут идти в локальную группу.

    <local_leader>

    Ряд внутри<local>интракоммуникатора, который будет служить его лидером.

    <peer>

    Интракоммуникатор, содержащий все процессы, которые пойдут в удаленную группу.

    <remote_leader>

    В группе<peer>, которая будет его лидером.

intercommunicator public member functions

  1. <
    intlocal_size()const;
    >

    Возвращает размер локальной группы, т.е. количество локальных процессов, входящих в группу.

  2. <
    boost::mpi::grouplocal_group()const;
    >

    Возвращает локальную группу, содержащую все локальные процессы в этом интеркоммуникаторе.

  3. <
    intlocal_rank()const;
    >

    Возвращает ранг этого процесса внутри местной группы.

  4. <
    intremote_size()const;
    >

    Возвращает размер удаленной группы, т.е. число процессов, входящих в удаленную группу.

  5. <
    boost::mpi::groupremote_group()const;
    >

    Возвращает удаленную группу, содержащую все удаленные процессы в этом интеркоммуникаторе.

  6. <
    communicatormerge(boolhigh)const;
    >

    Объединение локальных и удаленных групп в этом интеркоммуникаторе в новый интракоммуникатор, содержащий объединение процессов в обеих группах. Этот способ эквивалентен<MPI_Intercomm_merge>.

    <high><high>

    Параметры:

    Должны ли процессы в этой группе иметь более высокий ранг, чем процессы в другой группе? Каждый из процессов в пределах определенной группы должен иметь одинаковое "высокое" значение.

Возврат:

новый, объединенный внутрикоммуникатор


PrevUpHomeNext

Статья Class intercommunicator раздела 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 03:16:28/0.0043201446533203/0