int MPID_Comm_connect(const char *port_name, MPID_Info *info_ptr, int root, MPID_Comm *comm_ptr, MPID_Comm **newcomm) { MPID_abort(); return 0; }
void MPIDI_WinAtomicCB(pami_context_t context, void * cookie, const void * _hdr, size_t size, const void * sndbuf, size_t sndlen, pami_endpoint_t sender, pami_recv_t * recv) { MPIDI_AtomicHeader_t *ahdr = (MPIDI_AtomicHeader_t *) _hdr; MPID_assert (ahdr != NULL); MPID_assert (sizeof(MPIDI_AtomicHeader_t) == size); MPIDI_AtomicHeader_t ack_hdr = *ahdr; void *dest_addr = ahdr->remote_addr; int len; len = MPID_Datatype_get_basic_size (ahdr->datatype); if (ahdr->atomic_type == MPIDI_WIN_REQUEST_COMPARE_AND_SWAP) { //overwrite value with result in ack_hdr MPIU_Memcpy(ack_hdr.buf, dest_addr, len); if (MPIR_Compare_equal (&ahdr->test, dest_addr, ahdr->datatype)) MPIU_Memcpy(dest_addr, ahdr->buf, len); } else if (ahdr->atomic_type == MPIDI_WIN_REQUEST_FETCH_AND_OP) { //overwrite value with result MPIU_Memcpy(ack_hdr.buf, dest_addr, len); MPI_User_function *uop; int one = 1; uop = MPIR_OP_HDL_TO_FN(ahdr->op); if (ahdr->op == MPI_REPLACE) MPIU_Memcpy(dest_addr, ahdr->buf, len); else if (ahdr->op == MPI_NO_OP); else (*uop) ((void *)ahdr->buf, dest_addr, &one, &ahdr->datatype); } else MPID_abort(); pami_send_immediate_t params = { .dispatch = MPIDI_Protocols_WinAtomicAck, .dest = sender, .header = { .iov_base = &ack_hdr, .iov_len = sizeof(MPIDI_AtomicHeader_t), }, .data = { .iov_base = NULL, .iov_len = 0, }, .hints = {0},
int MPIDO_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, MPID_Comm * comm_ptr) { MPID_abort(); }
int MPID_Comm_spawn_multiple(int count, char *array_of_commands[], char* *array_of_argv[], const int array_of_maxprocs[], MPID_Info *array_of_info[], int root, MPID_Comm *comm_ptr, MPID_Comm **intercomm, int array_of_errcodes[]) { MPID_abort(); return 0; }
int MPID_Comm_group_failed(MPID_Comm *comm_ptr, MPID_Group **failed_group_ptr) { MPID_abort(); return 0; }
int MPID_Comm_reenable_anysource(MPID_Comm *comm, MPID_Group **failed_group_ptr) { MPID_abort(); return 0; }
int MPID_Comm_disconnect(MPID_Comm *comm_ptr) { MPID_abort(); return 0; }
int MPID_Open_port(MPID_Info *info_ptr, char *port_name) { MPID_abort(); return 0; }
int MPID_Close_port(const char *port_name) { MPID_abort(); return 0; }