Esempio n. 1
0
void connect_to_server()
{
    /// recv addr and port from server
    int server_rank = cfio_map_get_server_of_client(rank);
    char server_ip[NI_MAXHOST];
    unsigned short server_port_int;
    char server_port[11];
    MPI_Status sta;
    MPI_Recv(server_ip, NI_MAXHOST, MPI_CHAR, server_rank, rank, MPI_COMM_WORLD, &sta);
    MPI_Recv(&server_port_int, 1, MPI_UNSIGNED_SHORT, server_rank, rank + 1, MPI_COMM_WORLD, &sta);
    sprintf(server_port, "%hu", server_port_int);

    struct addrinfo *addr;
    TEST_NZ(getaddrinfo(server_ip, server_port, NULL, &addr));
    TEST_Z(ec = rdma_create_event_channel());
    TEST_NZ(rdma_create_id(ec, &cm_id, NULL, RDMA_PS_TCP));
    TEST_NZ(rdma_resolve_addr(cm_id, NULL, addr->ai_addr, TIMEOUT_IN_MS));
    freeaddrinfo(addr);
}
Esempio n. 2
0
int cfio_msg_get_max_size(int proc_id)
{   
    int client_num_of_server, max_msg_size, client_amount, server_id; 
    
    if (cfio_map_proc_type(proc_id) == CFIO_MAP_TYPE_CLIENT) {
	server_id = cfio_map_get_server_of_client(proc_id);
	client_num_of_server = cfio_map_get_client_num_of_server(server_id);
    } else if (cfio_map_proc_type(proc_id) == CFIO_MAP_TYPE_SERVER) {
	client_num_of_server = cfio_map_get_client_num_of_server(proc_id);
    }
    client_amount = cfio_map_get_client_amount();

    max_msg_size = MSG_BUF_SIZE;
    max_msg_size = min(max_msg_size, RECV_BUF_SIZE / client_num_of_server / 2);
    max_msg_size = min(max_msg_size, SEND_BUF_SIZE / 2);
    max_msg_size = max(max_msg_size, SEND_MSG_MIN_SIZE / client_amount);
    
    //printf("max_msg_size = %d\n", max_msg_size);

    return max_msg_size;
}