Добрый день!
Какая разница между этими библиотеками?
Я читаю документы MPI и имею небольшой опыт работы с asio.Для меня это разные реализации сетевого взаимодействия и не более.
Но каждая из них вводит разные абстракции (я не уверен насчет одинакового уровня этих абстракций), что приводит к разному дизайну приложения.
Когда я должен использовать одну библиотеку или другую?Что я должен знать для выбора правильного решения в каждой отдельной ситуации?
Да, Asio хорош для нескольких узлов (и в целом очень общей структуры), но почему MPI менее подходит для таких задач?Я не думаю, что зависимость от библиотеки MPI C является ограничительной или MPI трудно понять, а как насчет масштабируемости?С помощью Asio мы можем реализовать такие вещи, как вещание и другие, и, с другой стороны, MPI не запрещает писать простые сетевые приложения.Является ли концептуально трудным переписать специфичную для Asio логику с MPI, если это необходимо?
Как насчет сокетоподобных коммуникаций: если это обязательно, мы можем инкапсулировать такую в модуле на Asio или любой другой платформе и все еще использовать MPI длядругие коммуникации.
Для меня сокеты и стандарт MPI - это разные сетевые сервисы, и неясно, что является фундаментальным в реальном мире, где расстояние от простой пары клиент-сервер до некоторых средних вычислений - это один шаг.Также я не думаю, что MPI имеет значительные издержки по сравнению с Asio.
Может быть, это плохой вопрос, и все, что нам нужно, это что-то вроде ICE (Internet Communications Engine)?Поддержка различных языков и опять-таки (как уверяет ZeroC) отличная производительность.
И, конечно, я никогда не видел ни одной темы документации, такой как «не используйте эту библиотеку для нее!».
Я просто не могу принять такое разобщение: в одном случае это сокеты, в другом - асинхронные сообщения и, наконец, тяжелая платформа промежуточного программного обеспечения.Где ясность в жизненном цикле разработки?Может быть, это не честный вопрос, но для того, чтобы начать сокращать этот зоопарк, нам нужен какой-то момент.