У меня есть исходный код приложения, написанного в 2005 году на C ++ для 32-битной архитектуры, и я использовал библиотеку MPICH-1. Я знаю логику и хочу обновить исходный код для 64-битных машин и с MPICH-2.
Насколько синтаксис / семантика MPICH-1 отличается от MPICH-2? Должен ли я подумать о том, чтобы перепроектировать программное обеспечение или заменить функции MPI на более новую версию?
TL; DR — Просто обновите вашу библиотеку MPICH до последней версии, и все готово
Во-первых, MPICH фактически вышел за пределы MPICH-2. Последняя версия (3.1) была выпущена недавно. Кроме того, проект больше не переименовывает себя с каждым основным выпуском. Теперь это просто MPICH.
Помимо семантики, API, предоставляемый MPICH, определяется не разработчиками MPICH, а стандартом MPI. Начиная с MPICH-1, стандарт прошел две основные версии и теперь находится на версии 3.0. Между сериями 1.x и 3.x произошли некоторые значительные изменения, однако все обратно совместимо, поэтому вы можете просто перекомпилировать с самой последней версией, и все готово.
Однако, если вы хотите взглянуть на новейшие и лучшие версии, в MPI 2.x и MPI 3.0 появились новые дополнения, связанные с односторонней связью, на которые вы могли бы взглянуть. Также появились новые коллективные операции, топологии, динамические процессы, операции ввода-вывода, неблокирующие операции и т. Д. За последние 9 лет был достигнут большой прогресс (безусловно, намного больше, чем можно опубликовать в этом ответе).
Других решений пока нет …