| 
 | |
|  | 
 
 
 
 
 
 
 
  
B1 Классы языка С++
Ниже представлены классы языка С++ в привязках для MPI-1:
namespace MPI {
  class Comm                             {...};
  class Intracomm : public Comm          {...};
  class Graphcomm : public Intracomm     {...};
  class Cartcomm  : public Intracomm     {...};
  class Intercomm : public Comm          {...};
  class Datatype                         {...};
  class Errhandler                       {...};
  class Exception                        {...};
  class Group                            {...};
  class Op                               {...};
  class Request                          {...};
  class Prequest  : public Request       {...};
  class Status                           {...};
};
Заметим, что некоторые функции, константы и типы данных MPI-1 устарели и поэтому не имеют соответствующих привязок С++. Все устаревшие имена имеют соответствующие новые имена в MPI-2 (хотя, возможно, с новой семантикой).
B2 Константы
Эти константы определены в файлах mpi.h. Для краткости типы констант
определяются в комментариях.
// возвращаемые коды // Тип: const int (или unnamed enum) MPI::SUCCESS MPI::ERR_BUFFER MPI::ERR_COUNT MPI::ERR_TYPE MPI::ERR_TAG MPI::ERR_COMM MPI::ERR_RANK MPI::ERR_REQUEST MPI::ERR_ROOT MPI::ERR_GROUP MPI::ERR_OP MPI::ERR_TOPOLOGY MPI::ERR_DIMS MPI::ERR_ARG MPI::ERR_UNKNOWN MPI::ERR_TRUNCATE MPI::ERR_OTHER MPI::ERR_INTERN MPI::ERR_PENDING MPI::ERR_IN_STATUS MPI::ERR_LASTCODE // различные константы // Тип: const void * MPI::BOTTOM // Тип: константы int (или unnamed enum) MPI::PROC_NULL MPI::ANY_SOURCE MPI::ANY_TAG MPI::UNDEFINED MPI::BSEND_OVERHEAD MPI::KEYVAL_INVALID // описатели для обработки ошибок // Тип: MPI::Errhandler (см. ниже) MPI::ERRORS_ARE_FATAL MPI::ERRORS_RETURN MPI::ERRORS_THROW_EXCEPTIONS // Максимальный размер строки // Тип: const int MPI::MAX_PROCESSOR_NAME MPI::MAX_ERROR_STRING // элементарные типы данных (Си / C++) // Тип: const MPI::Datatype MPI::CHAR MPI::SHORT MPI::INT MPI::LONG MPI::SIGNED_CHAR MPI::UNSIGNED_CHAR MPI::UNSIGNED_SHORT MPI::UNSIGNED MPI::UNSIGNED_LONG MPI::FLOAT MPI::DOUBLE MPI::LONG_DOUBLE MPI::BYTE MPI::PACKED // элементарные типы данных (Фортран) // Тип: const MPI::Datatype MPI::INTEGER MPI::REAL MPI::DOUBLE_PRECISION MPI::F_COMPLEX MPI::F_DOUBLE_COMPLEX MPI::LOGICAL MPI::CHARACTER // типы данных для функций редукции (Си / C++) // Тип: const MPI::Datatype MPI::FLOAT_INT MPI::DOUBLE_INT MPI::LONG_INT MPI::TWOINT MPI::SHORT_INT MPI::LONG_DOUBLE_INT // типы данных для функций редукции (Фортран) // Тип const MPI::Datatype MPI::TWOREAL MPI::TWODOUBLE_PRECISION MPI::TWOINTEGER // дополнительные типы данных данных (Фортран) // Тип: const MPI::Datatype MPI::INTEGER1 MPI::INTEGER2 MPI::INTEGER4 MPI::REAL2 MPI::REAL4 MPI::REAL8 // дополнительные типы данных (Си / C++) // Type: const MPI::Datatype MPI::LONG_LONG MPI::UNSIGNED_LONG_LONG // специальные типы данных для для создания производных типов данных // Тип: const MPI::Datatype MPI::UB MPI::LB // типы данных C++ // Тип: const MPI::Datatype MPI::BOOL MPI::COMPLEX MPI::DOUBLE_COMPLEX MPI::LONG_DOUBLE_COMPLEX // зарезервированные коммуникаторы // Тип: MPI::Intracomm MPI::COMM_WORLD MPI::COMM_SELF // результаты сравнения для коммуникаторов и групп // Тип: const int (или unnamed enum) MPI::IDENT MPI::CONGRUENT MPI::SIMILAR MPI::UNEQUAL // ключи запрсов среды // Тип: const int (или unnamed enum) MPI::TAG_UB MPI::IO MPI::HOST MPI::WTIME_IS_GLOBAL // коллективные операции // Тип: const MPI::Op MPI::MAX MPI::MIN MPI::SUM MPI::PROD MPI::MAXLOC MPI::MINLOC MPI::BAND MPI::BOR MPI::BXOR MPI::LAND MPI::LOR MPI::LXOR // нулевые дескрипторы // Тип: const MPI::Group MPI::GROUP_NULL MPI::COMM_NULL // Тип: const MPI::Datatype MPI::DATATYPE_NULL // Тип: const MPI::Request MPI::REQUEST_NULL // Тип: const MPI::Op MPI::OP_NULL // Тип: MPI::Errhandler MPI::ERRHANDLER_NULL // Пустая группа // Тип: const MPI::Group MPI::GROUP_EMPTY // Топологии // Тип: const int (или unnamed enum) MPI::GRAPH MPI::CART // Предопределенные функции // Тип: MPI::Copy_function MPI::NULL_COPY_FN MPI::DUP_FN // Тип: MPI::Delete_function MPI::NULL_DELETE_FN
B3 Определение типов
Следующее есть типы С++ , также включенные в файл mpi.h.
// Typedef MPI::Aint
Далее в этом приложении используется обозначение пространства имен, поскольку все функции из списка ниже имеют прототипы. Эта нотация не использовалась раньше, поскольку списки констант и типов выше не являются фактическими декларациями.
// прототипы для определенных пользователем функций
namespace MPI {
  typedef void User_function(const void *invec, void* inoutvec, int len, const
Datatype& datatype);
};
B4 Привязки для парных обменов в языке С++
Кроме специально отмеченных случаев, все не статические функции в этом приложении виртуальные. Для краткости ключевое слово virtual пропущено.
namespace MPI{
void Comm::Send(const void* buf, int count,
    const Datatype& datatype, int dest, int tag) const
void Comm::Recv(void* buf, int count, const Datatype& datatype,
    int source, int tag, Status& status) const
void Comm::Recv(void* buf, int count, const Datatype& datatype,
    int source, int tag) const
int Status::Get_count(const Datatype& datatype) const
void Comm::Bsend(const void* buf, int count, const Datatype& datatype,
    int dest, int tag) const
void Comm::Ssend(const void* buf, int count, const Datatype& datatype,
    int dest, int tag) const
void Comm::Rsend(const void* buf, int count, const Datatype& datatype,
    int dest, int tag) const
void Attach_buffer(void* buffer, int size)
int Detach_buffer(void*& buffer)
Request Comm::Isend(const void* buf, int count, const Datatype& datatype,
    int dest, int tag) const
Request Comm::Ibsend(const void* buf, int count, const Datatype& datatype,
   int dest, int tag) const
Request Comm::Issend(const void* buf, int count, const Datatype& datatype,
   int dest, int tag) const
Request Comm::Irsend(const void* buf, int count, const Datatype& datatype,
   int dest, int tag) const
Request Comm::Irecv(void* buf, int count, const Datatype& datatype,
   int source, int tag) const
void Request::Wait(Status& status)
void Request::Wait()
bool Request::Test(Status& status)
bool Request::Test()
void Request::Free()
static int Request::Waitany(int count, Request array_of_requests[], Status&
status)
static int Request::Waitany(int count, Request array_of_requests[])
static bool Request::Testany(int count, Request array_of_requests[],
   int& index, Status& status)
static bool Request::Testany(int count, Request array_of_requests[], int& index)
static void Request::Waitall(int count, Request array_of_requests[],
   Status array_of_statuses[])
static void Request::Waitall(int count, Request array_of_requests[])
static bool Request::Testall(int count, Request array_of_requests[],
   Status array_of_statuses[])
static bool Request::Testall(int count, Request array_of_requests[])
static int Request::Waitsome(int incount, Request array_of_requests[],
   int array_of_indices[], Status array_of_statuses[])
static int Request::Waitsome(int incount, Request array_of_requests[],
   int array_of_indices[]) 
static int Request::Testsome(int incount, Request array_of_requests[],
   int array_of_indices[], Status array_of_statuses[]) 
static int Request::Testsome(int incount, Request array_of_requests[],
   int array_of_indices[])
 
bool Comm::Iprobe(int source, int tag, Status& status) const 
bool Comm::Iprobe(int source, int tag) const 
void Comm::Probe(int source, int tag, Status& status) const
 
void Comm::Probe(int source, int tag) const 
void Request::Cancel() const 
bool Status::Is_cancelled() const 
Prequest Comm::Send_init(const void* buf, int count,
   const Datatype& datatype, int dest, int tag) const 
Prequest Comm::Bsend_init(const void* buf, int count,
   const Datatype& datatype, int dest, int tag) const 
Prequest Comm::Ssend_init(const void* buf, int count,
   const Datatype& datatype, int dest, int tag) const 
Prequest Comm::Rsend_init(const void* buf, int count,
   const Datatype& datatype, int dest, int tag) const 
Prequest Comm::Recv_init(void* buf, int count,
   const Datatype& datatype, int source, int tag) const 
void Prequest::Start() 
static void Prequest::Startall(int count, Prequest array_of_requests[]) 
void Comm::Sendrecv(const void *sendbuf, int sendcount,
   const Datatype& sendtype, int dest, int sendtag, void *recvbuf,
   int recvcount, const Datatype& recvtype, int source, int recvtag,
   Status& status) const
void Comm::Sendrecv(const void *sendbuf, int sendcount,
   const Datatype& sendtype, int dest, int sendtag, void *recvbuf,
   int recvcount, const Datatype& recvtype, int source, int recvtag) const 
void Comm::Sendrecv_replace(void* buf, int count,
   const Datatype& datatype, int dest, int sendtag, int source,
   int recvtag, Status& status) const 
void Comm::Sendrecv_replace(void* buf, int count,
   const Datatype& datatype, int dest, int sendtag, int source, int recvtag) 
const 
Datatype Datatype::Create_contiguous(int count) const 
Datatype Datatype::Create_vector(int count, int blocklength, int stride) const 
Datatype Datatype::Create_indexed(int count, const int array_of_blocklengths[],
   const int array_of_displacements[]) const 
int Datatype::Get_size() const 
void Datatype::Commit() 
void Datatype::Free() 
int Status::Get_elements(const Datatype& datatype) const 
void Datatype::Pack(const void* inbuf, int incount, void *outbuf,
   int outsize, int& position, const Comm &comm) const 
void Datatype::Unpack(const void* inbuf, int insize, void *outbuf,
   int outcount, int& position, const Comm& comm) const 
int Datatype::Pack_size(int incount, const Comm& comm) const 
};
 
B5 Привязки для коллективных обменов в языке С++
namespace MPI {
void Intracomm::Barrier() const 
void Intracomm::Bcast(void* buffer, int count,
   const Datatype& datatype, int root) const 
void Intracomm::Gather(const void* sendbuf, int sendcount,
   const Datatype& sendtype, void* recvbuf, int recvcount,
   const Datatype& recvtype, int root) const 
void Intracomm::Gatherv(const void* sendbuf, int sendcount,
   const Datatype& sendtype, void* recvbuf, const int recvcounts[],
   const int displs[], const Datatype& recvtype, int root) const 
void Intracomm::Scatter(const void* sendbuf, int sendcount,
   const Datatype& sendtype, void* recvbuf, int recvcount,
   const Datatype& recvtype, int root) const 
void Intracomm::Scatterv(const void* sendbuf, const int sendcounts[],
   const int displs[], const Datatype& sendtype, void* recvbuf,
   int recvcount, const Datatype& recvtype, int root) const 
void Intracomm::Allgather(const void* sendbuf, int sendcount,
   const Datatype& sendtype, void* recvbuf, int recvcount,
   const Datatype& recvtype) const 
void Intracomm::Allgatherv(const void* sendbuf, int sendcount,
   const Datatype& sendtype, void* recvbuf, const int recvcounts[],
   const int displs[], const Datatype& recvtype) const 
void Intracomm::Alltoall(const void* sendbuf, int sendcount,
   const Datatype& sendtype, void* recvbuf, int recvcount,
   const Datatype& recvtype) const 
void Intracomm::Alltoallv(const void* sendbuf, const int sendcounts[],
   const int sdispls[], const Datatype& sendtype, void* recvbuf,
   const int recvcounts[], const int rdispls[], const Datatype& recvtype) const 
void Intracomm::Reduce(const void* sendbuf, void* recvbuf, int count,
   const Datatype& datatype, const Op& op, int root) const
void Op::Init(User_function* function, bool commute) 
void Op::Free() 
void Intracomm::Allreduce(const void* sendbuf, void* recvbuf,
   int count, const Datatype& datatype, const Op& op) const 
void Intracomm::Reduce_scatter(const void* sendbuf, void* recvbuf,
   int recvcounts[], const Datatype& datatype, const Op& op) const 
void Intracomm::Scan(const void* sendbuf, void* recvbuf,
   int count, const Datatype& datatype, const Op& op) const 
};
B6 Привязки для групп, контекстов и коммуникаторов в языке С++
По синтаксическим и семантическим причинам функции Dup() в списке ниже не виртуальные. Синтаксически каждая из них обязана иметь различные типы возвращения.
namespace MPI {
int Group::Get_size() const
int Group::Get_rank() const
static void Group::Translate_ranks (const Group& group1, int n,
    const int ranks1[], const Group& group2, int ranks2[])
static int Group::Compare(const Group& group1, const Group& group2)
Group Comm::Get_group() const
static Group Group::Union(const Group& group1, const Group& group2)
static Group Group::Intersect(const Group& group1, const Group& group2)
static Group Group::Difference(const Group& group1, const Group& group2)
Group Group::Incl(int n, const int ranks[]) const
Group Group::Excl(int n, const int ranks[]) const
Group Group::Range_incl(int n, const int ranges[][3]) const
Group Group::Range_excl(int n, const int ranges[][3]) const
void Group::Free()
int Comm::Get_size() const
int Comm::Get_rank() const
static int Comm::Compare(const Comm& comm1, const Comm& comm2)
Intracomm Intracomm::Dup() const
Intercomm Intercomm::Dup() const
Cartcomm Cartcomm::Dup() const
Graphcomm Graphcomm::Dup() const
Comm& Comm::Clone() const = 0
Intracomm& Intracomm::Clone() const
Intercomm& Intercomm::Clone() const
Cartcomm& Cartcomm::Clone() const
Graphcomm& Graphcomm::Clone() const
Intracomm Intracomm::Create(const Group& group) const
Intracomm Intracomm::Split(int color, int key) const
void Comm::Free()
bool Comm::Is_inter() const 
int Intercomm::Get_remote_size() const 
Group Intercomm::Get_remote_group() const 
Intercomm Intracomm::Create_intercomm(int local_leader,
   const Comm& peer_comm, int remote_leader, int tag) const 
Intracomm Intercomm::Merge(bool high) const 
};
B7 Привязки для топологий процессов в языке С++
namespace MPI { 
Cartcomm Intracomm::Create_cart(int ndims, const int dims[],
   const bool periods[], bool reorder) const 
void Compute_dims(int nnodes, int ndims, int dims[]) 
Graphcomm Intracomm::Create_graph(int nnodes, const int index[],
   const int edges[], bool reorder) const 
int Comm::Get_topology() const 
void Graphcomm::Get_dims(int nnodes[], int nedges[]) const 
void Graphcomm::Get_topo(int maxindex, int maxedges, int index[], 
   int edges[]) const 
int Cartcomm::Get_dim() const 
void Cartcomm::Get_topo(int maxdims, int dims[], bool periods[], int coords[]) 
const 
int Cartcomm::Get_cart_rank(const int coords[]) const 
void Cartcomm::Get_coords(int rank, int maxdims, int coords[]) const 
int Graphcomm::Get_neighbors_count(int rank) const 
void Graphcomm::Get_neighbors(int rank, int maxneighbors, int neighbors[]) const 
void Cartcomm::Shift(int direction, int disp, int& rank_source, int& rank_dest) 
const 
Cartcomm Cartcomm::Sub(const bool remain_dims[]) const 
int Cartcomm::Map(int ndims, const int dims[], const bool periods[]) const 
int Graphcomm::Map(int nnodes, const int index[], const int edges[]) const 
};
B8 Привязки для запросов среды в языке С++
namespace MPI { 
void Get_processor_name(char* name, int& resultlen) 
void Errhandler::Free() 
void Get_error_string(int errorcode, char* name, int& resultlen) 
int Get_error_class(int errorcode) 
double Wtime() 
double Wtick() 
void Init(int& argc, char**& argv) 
void Init() 
void Finalize() 
bool Is_initialized() 
void Comm::Abort(int errorcode) 
};
B9 Привязки для профилирования в языке С++
namespace MPI{ 
void Pcontrol(const int level, ...) 
};
B10 Привязки для доступа к статусу в языке С++
namespace MPI{
int Status::Get_source() const
void Status::Set_source(int source)
int Status::Get_tag() const
void Status::Set_tag(int tag)
int Status::Get_error() const
void Status::Set_error(int error)
};
B11 Привязки для новых функций MPI 1.2 в языке С++
namespace MPI{
void Get_version(int& version, int& subversion);
};
B12 Привязки для исключений в языке С++
namespace MPI{
Exception::Exception(int error_code);
int Exception::Get_error_code() const;
int Exception::Get_error_class() const;
const char* Exception::Get_error_string() const;
};
B13 Привязки для всех MPI классов в языке С++
Язык С++ требует, чтобы классы имели четыре специальные функции: конструктор, функцию копирования, деструктор и оператор присваивания. Привязки для этих функций представлены ниже. Два конструктора не являются виртуальными.
B13.1 Создание/Удаление
namespace MPI {
<CLASS>::<CLASS>()
<CLASS>::~<CLASS>()
};
B13.2 Копирование/присваивание
namespace MPI {
<CLASS>::<CLASS>(const <CLASS>& data)
<CLASS>& <CLASS>::operator=(const <CLASS>& data)
};
B13.3 Сравнение
Поскольку экземпляры статуса не являются дескрипторами
для функций более низкого уровня, функции
operator==()  и operator!=() не определены как статусный класс.
namespace MPI {
bool <CLASS>::operator==(const <CLASS>& data) const
bool <CLASS>::operator!=(const <CLASS>& data) const
};
B13.4 Межязыковое взаимодействие
Поскольку не имеется никаких С++ объектов MPI::STATUS_IGNORE и
МPI::STATUSES_IGNORE, результат продвижения Си или  ФОРТРАН дескрипторов (MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE) является
неопределенным .
namespace MPI {
<CLASS>& <CLASS>::operator=(const MPI_<CLASS>& data)
<CLASS>::<CLASS>(const MPI_<CLASS>& data)
<CLASS>::operator MPI_<CLASS>() const
};
B13.5 Перекрестные ссылки для названий функций
Поскольку некоторые привязки в языке С++ слегка отличаются по названию от соответствующих привязок в языках Си и ФОРТРАН в этом разделе каждое нейтральное по отношению к языку имя сопоставляется c привязкой для С++.
Для краткости префикс ``MPI::'' предполагается для всех имен классов.
Для устаревших имен используется слово <нет> в графе "Имя", чтобы указать, что эта функция реализована с новым именем.
Если в графе "Возвращаемое значение" указано значение не void, данное имя соответствует параметру в языковонейтральном описании.
Таблицы ссылок представлены на следующих страницах.
 
=
table
tabular
|p170pt|p50pt|p90pt|p90pt|
| MPI Функция | C++ класс | Имя | Возвращаемое значение | 
|---|---|---|---|
| MPI_ERROR_CLASS | Get_error_class | int errorclass | |
| MPI_ERROR_STRING | Get_error_string | void | |
| MPI_FINALIZE | Finalize | void | |
| MPI_GATHERV | Intracomm | Gatherv | void | 
| MPI_GATHER | Intracomm | Gather | void | 
| MPI_GET_COUNT | Status | Get_count | int count | 
| MPI_GET_ELEMENTS | Status | Get_elements | int count | 
| MPI_GET_PROCESSOR_NAME | Get_processor_name | void | |
| MPI_GRAPHDIMS_GET | Graphcomm | Get_dims | void | 
| MPI_GRAPH_CREATE | Intracomm | Create_graph | Graphcomm newcomm | 
| MPI_GRAPH_GET | Graphcomm | Get_topo | void | 
| MPI_GRAPH_MAP | Graphcomm | Map | int newrank | 
| MPI_GRAPH_NEIGHBORS_COUNT | Graphcomm | Get_neighbors_count | int nneighbors | 
| MPI_GRAPH_NEIGHBORS | Graphcomm | Get_neighbors | void | 
| MPI_GROUP_COMPARE | Group | static Compare | int result | 
| MPI_GROUP_DIFFERENCE | Group | static Difference | Group newgroup | 
| MPI_GROUP_EXCL | Group | Excl | Group newgroup | 
| MPI_GROUP_FREE | Group | Free | void | 
| MPI_GROUP_INCL | Group | Incl | Group newgroup | 
| MPI_GROUP_INTERSECTION | Group | static Intersect | Group newgroup | 
| MPI_GROUP_RANGE_EXCL | Group | Range_excl | Group newgroup | 
| MPI_GROUP_RANGE_INCL | Group | Range_incl | Group newgroup | 
| MPI_GROUP_RANK | Group | Get_rank | int rank | 
| MPI_GROUP_SIZE | Group | Get_size | int size | 
| MPI_GROUP_TRANSLATE_RANKS | Group | static Translate_ranks | void | 
| MPI_GROUP_UNION | Group | static Union | Group newgroup | 
| MPI_IBSEND | Comm | Ibsend | Request request | 
| MPI_INITIALIZED | Is_initialized | bool flag | |
| MPI_INIT | Init | void | |
| MPI_INTERCOMM_CREATE | Intracomm | Create_intercomm | Intercomm newcomm | 
| MPI_INTERCOMM_MERGE | Intercomm | Merge | Intracomm newcomm | 
| MPI_IPROBE | Comm | Iprobe | bool flag | 
| MPI_IRECV | Comm | Irecv | Request request | 
| MPI_IRSEND | Comm | Irsend | Request request | 
| MPI_ISEND | Comm | Isend | Request request | 
| MPI_ISSEND | Comm | Issend | Request request | 
| MPI_KEYVAL_CREATE | <нет> | ||
| MPI_KEYVAL_FREE | <нет> | ||
| MPI_OP_CREATE | Op | Init | void | 
| MPI_OP_FREE | Op | Free | void | 
| MPI_PACK_SIZE | Datatype | Pack_size | int size | 
| MPI_PACK | Datatype | Pack | void | 
| MPI_PCONTROL | Pcontrol | void | |
| MPI_PROBE | Comm | Probe | void | 
| MPI_RECV_INIT | Comm | Recv_init | Prequest request | 
| MPI_RECV | Comm | Recv | void | 
| MPI_REDUCE_SCATTER | Intracomm | Reduce_scatter | void | 
| MPI_REDUCE | Intracomm | Reduce | void | 
| MPI_REQUEST_FREE | Request | Free | void | 
| MPI Функция | C++ класс | Имя | Возвращаемое значение | 
|---|---|---|---|
| MPI_RSEND_INIT | Comm | Rsend_init | Prequest request | 
| MPI_RSEND | Comm | Rsend | void | 
| MPI_SCAN | Intracomm | Scan | void | 
| MPI_SCATTERV | Intracomm | Scatterv | void | 
| MPI_SCATTER | Intracomm | Scatter | void | 
| MPI_SENDRECV_REPLACE | Comm | Sendrecv_replace | void | 
| MPI_SENDRECV | Comm | Sendrecv | void | 
| MPI_SEND_INIT | Comm | Send_init | Prequest request | 
| MPI_SEND | Comm | Send | void | 
| MPI_SSEND_INIT | Comm | Ssend_init | Prequest request | 
| MPI_SSEND | Comm | Ssend | void | 
| MPI_STARTALL | Prequest | static Startall | void | 
| MPI_START | Prequest | Start | void | 
| MPI_TESTALL | Request | static Testall | bool flag | 
| MPI_TESTANY | Request | static Testany | bool flag | 
| MPI_TESTSOME | Request | static Testsome | int outcount | 
| MPI_TEST_CANCELLED | Status | Is_cancelled | bool flag | 
| MPI_TEST | Request | Test | bool flag | 
| MPI_TOPO_TEST | Comm | Get_topo | int status | 
| MPI_TYPE_COMMIT | Datatype | Commit | void | 
| MPI_TYPE_CONTIGUOUS | Datatype | Create_contiguous | Datatype | 
| MPI_TYPE_EXTENT | <нет> | ||
| MPI_TYPE_FREE | Datatype | Free | void | 
| MPI_TYPE_HINDEXED | <нет> | ||
| MPI_TYPE_HVECTOR | <нет> | ||
| MPI_TYPE_INDEXED | Datatype | Create_indexed | Datatype | 
| MPI_TYPE_LB | <нет> | ||
| MPI_TYPE_SIZE | Datatype | Get_size | int | 
| MPI_TYPE_STRUCT | <нет> | ||
| MPI_TYPE_UB | <нет> | ||
| MPI_TYPE_VECTOR | Datatype | Create_vector | Datatype | 
| MPI_UNPACK | Datatype | Unpack | void | 
| MPI_WAITALL | Request | static Waitall | void | 
| MPI_WAITANY | Request | static Waitany | int index | 
| MPI_WAITSOME | Request | static Waitsome | int outcount | 
| MPI_WAIT | Request | Wait | void | 
| MPI_WTICK | Wtick | double wtick | |
| MPI_WTIME | Wtime | double wtime | 
 
 
 
 
 
 
 
  
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |