Ряд глав ссылается на нерекомендуемые или замененные конструкции MPI-
1. Это конструкции, которые продолжают быть частью стандарта MPI, но
от использования которых пользователям рекомендуют отказаться, так как
MPI-2 обеспечивает лучшие решения. Например, привязка языкаФОРТРАН для функций MPI-1, которые имеют аргументом адреса, использует
INTEGER
. Это не совместимо с привязкой Си, и вызывает проблемы
на машинах с 32-разрядными INTEGER
и 64-разрядными адресами. В
MPI-2 эти функции имеют новые имена и новые привязки для аргументов
адреса. Использование старых функций не рекомендуется. Для постоянства в
таких и в некоторых других случаях также предусматриваются новые функции
Си несмотря на то, что новые функции эквивалентны старым функциям. Старые
имена не рекомендуются. Другой пример обеспечивает MPI-1 предопределенными
типами данных MPI_UB
и MPI_LB
. Они не рекомендуются, так как их
использование неуклюже и подвержено ошибкам, в то время как MPI-2 функция
MPI_TYPE_CREATE_RESIZED
обеспечивает более удобный механизм,
чтобы достичь того же эффекта.
Далее приведен список всех нерекомендуемых конструкций. Обратите внимание,
что константы MPI_LB
и MPI_UB
заменены функцией
MPI_TYPE_CREATE_RESIZED
; это потому, что их основное
использование - входные типы данных к MPI_TYPE_STRUCT
для создания
измененных типов данных. Также обратите внимание, что
некоторые значения по умолчанию языка Си и имена подпрограмм языка
ФОРТРАН включены в этот список; они - типы функций повторного вызова.
Нерекомендуемые | Замена MPI-2 |
1emMPI_ADDRESS |
MPI_GET_ADDRESS |
MPI_TYPE_HINDEXED |
MPI_TYPE_CREATE_HINDEXED |
MPI_TYPE_HVECTOR |
MPI_TYPE_CREATE_HVECTOR |
MPI_TYPE_STRUCT |
MPI_TYPE_CREATE_STRUCT |
1emMPI_TYPE_EXTENT |
MPI_TYPE_GET_EXTENT |
MPI_TYPE_UB |
MPI_TYPE_GET_EXTENT |
MPI_TYPE_LB |
MPI_TYPE_GET_EXTENT |
MPI_LB |
MPI_TYPE_CREATE_RESIZED |
MPI_UB |
MPI_TYPE_CREATE_RESIZED |
1emMPI_ERRHANDLER_CREATE |
MPI_COMM_CREATE_ERRHANDLER |
MPI_ERRHANDLER_GET |
MPI_COMM_GET_ERRHANDLER |
MPI_ERRHANDLER_SET |
MPI_COMM_SET_ERRHANDLER |
MPI_Handler_function |
MPI_Comm_errhandler_fn |
1emMPI_KEYVAL_CREATE |
MPI_COMM_CREATE_KEYVAL |
MPI_KEYVAL_FREE |
MPI_COMM_FREE_KEYVAL |
MPI_DUP_FN |
MPI_COMM_DUP_FN |
MPI_NULL_COPY_FN |
MPI_COMM_NULL_COPY_FN |
MPI_NULL_DELETE_FN |
MPI_COMM_NULL_DELETE_FN |
MPI_Copy_function |
MPI_Comm_copy_attr_function |
COPY_FUNCTION |
COMM_COPY_ATTR_FN |
MPI_Delete_function |
MPI_Comm_delete_attr_function |
DELETE_FUNCTION |
COMM_DELETE_ATTR_FN |
1emMPI_ATTR_DELETE |
MPI_COMM_DELETE_ATTR |
MPI_ATTR_GET |
MPI_COMM_GET_ATTR |
MPI_ATTR_PUT |
MPI_COMM_SET_ATTR |