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

Class environment

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 environment

boost::mpi::environment — Initialize, finalize, and query the MPI environment.

Synopsis

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

class environment : private noncopyable {
public:
  // construct/copy/destruct
  explicit environment(bool = true);
  explicit environment(threading::level, bool = true);
  environment(int &, char **&, bool = true);
  environment(int &, char **&, threading::level, bool = true);
  ~environment();
  // public static functions
  static void abort(int);
  static bool initialized();
  static bool finalized();
  static int max_tag();
  static int collectives_tag();
  static optional< int > host_rank();
  static optional< int > io_rank();
  static std::string processor_name();
  static threading::level thread_level();
  static bool is_main_thread();
};

Description

Класс<environment>используется для инициализации, завершения и запроса среды MPI. Обычно он используется в функции<main()>программы, которая создает единый экземпляр<environment>, инициализированный с помощью аргументов, переданных программе:

int main(int argc, char* argv[])
{
  mpi::environment env(argc, argv);
}

Пример<environment>инициализирует MPI (путем вызова<MPI_Init>) в его конструкторе и завершает MPI (путем вызова<MPI_Finalize>для нормального прекращения или<MPI_Abort>для непойманного исключения) в его деструкторе.

Использование<environment>не является обязательным. Пользователи могут использовать<MPI_Init>и<MPI_Finalize>вручную. В этом случае<environment>объект не нужен. Однако, если человек создан, он ничего не сделает ни на строительстве, ни на разрушении.

environment public construct/copy/destruct

  1. <
    explicitenvironment(boolabort_on_exception=true);
    >

    Инициирование среды MPI.

    Если среда MPI еще не была инициализирована, инициализирует MPI с призывом к<MPI_Init>. Поскольку этот конструктор не принимает аргументы командной строки<argc>и<argv>, он доступен только тогда, когда лежащая в основе реализация MPI поддерживает вызов<MPI_Init>с<NULL>аргументами, указанными макросом<BOOST_MPI_HAS_NOARG_INITIALIZATION>.

    Параметры:

    <abort_on_exception>

    Когда это правда, этот объект прервет программу, если она будет уничтожена из-за непойманного исключения.

  2. <
    explicitenvironment(threading::levelmt_level,
                        boolabort_on_exception=true);
    >

    Инициирование среды MPI.

    Если среда MPI еще не была инициализирована, инициализирует MPI с вызовом<MPI_Init_thread>. Поскольку этот конструктор не принимает аргументы командной строки<argc>и<argv>, он доступен только тогда, когда лежащая в основе реализация MPI поддерживает вызов<MPI_Init>с<NULL>аргументами, указанными макросом<BOOST_MPI_HAS_NOARG_INITIALIZATION>.

    Параметры:

    [90 Когда это правда, этот объект прервет программу, если она будет уничтожена из-за непойманного исключения.

    <abort_on_exception>

    <mt_level>

    требуемый уровень поддержки резьбы.

  • <
    environment(int&argc,char**&argv,boolabort_on_exception=true);
    >

    Инициировать среду MPI.

    Если среда MPI еще не была инициализирована, инициализирует MPI с вызовом<MPI_Init>.

    Параметры:

    Когда это правда, этот объект прервет программу, если она будет уничтожена из-за непойманного исключения.

    <argc>

    Количество аргументов, приведенных в<argv>, как перешло в функцию программы<main>.

    <argv>

    Массив строк аргументов передавался программе через<main>

  • <
    environment(int&argc,char**&argv,threading::levelmt_level,
               boolabort_on_exception=true);
    >

    Инициировать среду MPI.

    Если среда MPI еще не была инициализирована, инициализирует MPI с вызовом<MPI_Init_thread>

    Параметры:

    <abort_on_exception>

    Когда это правда, этот объект прервет программу, если она будет уничтожена из-за непойманного исключения.

    <argc>

    Количество аргументов, приведенных в<argv>, как передано в функцию программы<main>.

    <argv>

    Массив строк аргументов передавался программе через<main>.

    <mt_level>

    требуемый уровень поддержки резьбы

  • <
    ~environment();
    >

    Закрывает среду MPI.

    Если этот объект<environment>был использован для инициализации среды MPI, и среда MPI еще не была закрыта (завершена), этот деструктор отключит среду MPI. При нормальных обстоятельствах это включает только призыв<MPI_Finalize>. Однако, если разрушение является результатом непойманного исключения и параметр<abort_on_exception>конструктора имел значение<true>, этот деструктор вызовет<MPI_Abort>с<MPI_COMM_WORLD>, чтобы прервать всю программу MPI с кодом результата -1.

  • environment public static functions

    1. <
      staticvoidabort(interrcode);
      >

      Прекратить все процессы MPI.

      Отменяет все процессы MPI и возвращается в окружающую среду. Точное поведение будет определяться базовой реализацией MPI. Это эквивалентно вызову<MPI_Abort>с<MPI_COMM_WORLD>

      Параметры:

      <errcode>

      Код ошибки возвращается в окружающую среду.

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

      Не вернется

      .
    2. <
      staticboolinitialized();
      >

      Определить, была ли среда MPI уже инициализирована.

      Эта процедура эквивалентна вызову<MPI_Initialized>.

      Возврат:

      <true>, если среда MPI была инициализирована.

    3. <
      staticboolfinalized();
      >

      Определить, была ли среда MPI уже завершена.

      Обыденность эквивалентна вызову<MPI_Finalized>

      Возврат:

      <true>, если среда MPI была завершена.

    4. <
      staticintmax_tag();
      >

      Получает максимальное значение тега.

      Возвращает максимальное значение, которое может быть использовано для<tag>параметра операций отправки/принятия. Это значение будет несколько меньше, чем значение<MPI_TAG_UB>, потому что увеличение. Внедрение MPI оставляет некоторые теги для коллективных операций.

      Возврат:

      максимальное значение метки.

    5. <
      staticintcollectives_tag();
      >

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

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

      Возвращает:

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

    6. <
      staticoptional<int>host_rank();
      >

      Получает ранг хост-процесса, если он существует.

      Если есть хост-процесс, эта рутина возвращает ранг этого процесса. В противном случае он возвращает пустое<optional<int>>. MPI не определяет значение процесса «хозяин»: обратитесь к документации для реализации MPI. Эта процедура рассматривает<MPI_HOST>атрибут<MPI_COMM_WORLD>.

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

      Разряд хост-процесса, если таковой существует.

    7. <
      staticoptional<int>io_rank();
      >

      Получает ранг процесса, который может выполнять ввод/вывод.

      Эта процедура возвращает ранг процесса, который может выполнять ввод/вывод через стандартные средства ввода/вывода C и C++. Если каждый процесс может выполнять ввод/вывод с использованием стандартных средств, эта процедура возвращается<any_source>; если ни один процесс не может выполнять ввод/вывод, эта процедура не возвращает никакого значения (пустое<optional>). Эта процедура рассматривает<MPI_IO>атрибут<MPI_COMM_WORLD>.

      Возвращает:

      ранг процесса, который может выполнять I/O,<any_source>, если каждый процесс может выполнять I/O, или значение, если ни один процесс не может выполнять I/O.

    8. <
      staticstd::stringprocessor_name();
      >

      Восстановите имя этого процессора.

      Эта процедура возвращает имя процессора. Фактическая форма имени не определена, но может быть задокументирована основной реализацией MPI. Эта процедура реализована как вызов к<MPI_Get_processor_name>.

      Возвращает:

      имя этого процессора.

    9. <
      staticthreading::levelthread_level();
      >

      Запросите текущий уровень поддержки потоков.

    10. <
      staticboolis_main_thread();
      >

      Мы в главной нити?


    PrevUpHomeNext

    Статья Class environment раздела 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:57:24/0.0053770542144775/0