18 #ifndef STK_UTIL_PARALLEL_mpih_h
19 #define STK_UTIL_PARALLEL_mpih_h
26 #include <MPIH_Include.h>
41 void Keyval_delete(MPI_Comm comm);
57 void Sub_Communicator (MPI_Comm old_comm,
66 void Register_Handles ();
78 void Add_Handle (
const ExParallel &X);
85 void Delete_Handles ();
99 void Bcast(
void * buffer,
101 MPI_Datatype datatype,
104 void Allreduce(
void * in_buffer,
107 MPI_Datatype datatype,
110 void Gather(
void * send_buf,
112 MPI_Datatype send_datatype,
115 MPI_Datatype recv_datatype,
118 void Reduce(
void * in_buffer,
121 MPI_Datatype datatype,
125 void Reduce_Scatter(
void * in_buffer,
128 MPI_Datatype datatype,
131 void Scatter(
void * send_buf,
133 MPI_Datatype send_datatype,
136 MPI_Datatype recv_datatype,
139 void Map_Free(MPIH_Map * map);
145 std::vector<int> *sendlist ,
146 std::vector<int> *sendlength ,
147 std::vector<int> *sendbuflen ,
149 std::vector<int> *recvlist ,
150 std::vector<int> *recvlength ,
151 std::vector<int> *recvbuflen );
155 MPI_Datatype sendtype ,
157 MPI_Datatype recvtype ,
172 void Initialize_Sparse
174 MPI_Datatype sendtype ,
176 MPI_Datatype recvtype ,
184 (
const std::vector<int> &lengths ,
185 const std::vector<int> &buflens ,
186 const std::vector<int> &sendlist ,
189 void Sparse_Symmetric_Map
190 (
const std::vector<int> &lengths ,
191 const std::vector<int> &buflens ,
192 const std::vector<int> &sendlist ,
195 inline void ParallelExceptionCheck()
198 Bcast(&dummy, 0, MPI_INT, 0);
225 void Activate_Handles ();
226 void Deactivate_Handles ();
228 void Get_Handles (ExParallel **handles);
230 ExParallel *Get_Local_Handle ();
231 void Set_Local_Handle (ExParallel &handle);
232 void Reset_Local_Handle ();
234 void Get_Global_Handles (ExParallel ** handles);
235 int Get_Global_Status ();
237 void Set_Status_Check ();
238 void Reset_Status_Check ();
239 int Get_Status_Check ();
241 void Get_Tags (
int *active,
246 void Get_Functions (MPIH_Handler_compete *handler_compete_fn ,
247 MPIH_Handler_execute *handler_execute_fn );
249 int Get_Control_Message();
252 const char *get_product_name();
253 const char *get_product_version();
254 const char *get_product_qualifier();
255 void register_product();
260 #endif // STK_UTIL_PARALLEL_mpih_h