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

Parallel BGL MPI BSP Process Group

Boost , ,

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

Parallel BGL MPI BSP Process Group

Introduction

MPImpi_process_group- реализация интерфейсагруппы процессовс использованием интерфейса передачи сообщений (MPI). Это основная группа процессов, используемая в параллельном BGL.

Where Defined

Заголовок

Reference

namespace boost { namespace graph { namespace distributed {
class mpi_process_group
{
public:
  typedef boost::mpi::communicator communicator_type;
  // Process group constructors
  mpi_process_group(communicator_type comm = communicator_type());
  mpi_process_group(std::size_t num_headers, std::size_t buffer_size,
                    communicator_type comm = communicator_type());
  mpi_process_group();
  mpi_process_group(const mpi_process_group&, boost::parallel::attach_distributed_object);
  // Triggers
  template<typename Type, typename Handler>
    void trigger(int tag, const Handler& handler);
  template<typename Type, typename Handler>
    void trigger_with_reply(int tag, const Handler& handler);
  trigger_receive_context trigger_context() const;
  // Helper operations
  void poll();
  mpi_process_group base() const;
};
// Process query
int process_id(const mpi_process_group&);
int num_processes(const mpi_process_group&);
// Message transmission
template<typename T>
  void send(const mpi_process_group& pg, int dest, int tag, const T& value);
template<typename T>
  void receive(const mpi_process_group& pg, int source, int tag, T& value);
optional<std::pair<int, int> > probe(const mpi_process_group& pg);
// Synchronization
void synchronize(const mpi_process_group& pg);
// Out-of-band communication
template<typename T>
  void send_oob(const mpi_process_group& pg, int dest, int tag, const T& value);
template<typename T, typename U>
  void
  send_oob_with_reply(const mpi_process_group& pg, int dest, int
                      tag, const T& send_value, U& receive_value);
template<typename T>
  void receive_oob(const mpi_process_group& pg, int source, int tag, T& value);
} } }

Посколькуmpi_process_groupявляется реализацией интерфейсагруппы процессов, мы опускаем описание большинства функций в прототипе. Два строителя нуждаются в особом упоминании:

mpi_process_group(communicator_type comm = communicator_type());

Конструктор может использовать дополнительный коммуникатор MPI. По умолчанию используется коммуникатор, построенный из MPI_COMM_WORLD.

mpi_process_group(std::size_t num_headers, std::size_t buffer_size,
                  communicator_type comm = communicator_type());

Для точной настройки производительности может быть указано максимальное количество заголовков в пакете сообщений (num_headers) и максимальный комбинированный размер пакетных сообщений (buffer_size). Максимальный размер сообщения партии составляет 16*num_headers+buffer_size. Чувствительные значения по умолчанию были найдены путем оптимизации типичного приложения в кластере с сетью Ethernet и являются num_header=64k и buffer_size=1MB для общего максимального размера пакетов сообщений 2MB.


Авторское право (C) 2007 Дуглас Грегор

Авторское право (C) 2007 Маттиас Тройер

Статья Parallel BGL MPI BSP Process Group раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 17:23:26/0.0062599182128906/0