The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
next up previous contents
Next: Приложение С. Версия 1.2 Up: Библиография Previous: Приложение А. Языковые привязки   Contents

Приложение B. Языковые привязки в MPI-1 для языка С++

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


next up previous contents
Next: Приложение С. Версия 1.2 Up: Библиография Previous: Приложение А. Языковые привязки   Contents
Alex Otwagin 2002-12-10



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру