Boost :: Инкапсуляция сигналов по сети - PullRequest
1 голос
/ 05 августа 2010

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

Текущий подход - : дюжина потоков работает одновременно на разных (физических) компьютерах. Каждому событию присваивается номер; и каждый поток передает свои обнаруженные события другому и фильтрует соответствующие события из входящего потока.

Я чувствую себя очень плохо по этому поводу, потому что он выглядит ужасно, его трудно поддерживать и может привести к проблемам с производительностью при обновлении системы.

Поэтому я ищу гибкий и элегантный способ обработки этого IPC, и я думаю, что Boost :: Signals кажется хорошим кандидатом; но я никогда не использовал его, и я хотел бы знать, возможно ли обеспечить инкапсуляцию для сетевого взаимодействия.

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Поскольку я не знаю ни одного решения, которое бы это делало, кроме Open MPI, если бы мне пришлось это делать, я бы сначала использовал Protocol Buffer от Google в качестве контейнера сообщений.С его помощью я мог бы просто создать абстрактное базовое сообщение с такими вещами, как source, dest, type, id и т. Д. Затем я бы использовал Boost ASIO для их распространения по сети или по именованной трубеloopback для локальных сообщений.Возможно, на каждом физическом компьютере выделенный процесс может выполняться только для распространения.Каждый поток регистрирует, какие типы сообщений он заинтересовал, и как называется его именованный канал.Этот процесс будет знать IP всех других сервисов.

0 голосов
/ 05 августа 2010

Если вам нужен IPC по сети, то повышение :: сигналы вам не помогут, по крайней мере, не совсем само по себе.

Вы можете попробовать Открыть MPI .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...