Changeset 1515 for XIOS/dev/branch_openmp/extern/ep_dev/main.cpp
- Timestamp:
- 05/31/18 16:32:39 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/ep_dev/main.cpp
r1511 r1515 67 67 68 68 if(rank == 0) printf(" \t test MPI_Comm_dup \t OK \n"); 69 /* 69 70 70 // TIMING SYCHRONIZATION 71 71 { … … 112 112 std::cout << "proc "<< mpi_rank <<" for_loop "<< time_span.count() << " seconds."<<std::endl; 113 113 }// END TIMING SYCHRONIZATION 114 */114 115 115 // TEST of p2p blocking communication 116 116 { … … 762 762 MPI_Comm_rank(comm, &rank); 763 763 MPI_Comm_size(comm, &size); 764 765 int tab_color[16] = {2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1}; 766 int tab_key[16] = {2, 1, 4, 1, 0, 4, 3, 3, 4, 3, 4, 4, 4, 0, 0, 2}; 764 765 int config = 1; 766 if(config=1) 767 { 768 assert(size == 16 && omp_get_num_threads()==4); 769 } 770 771 int tab_color[16] = {2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1}; // used for config 1 772 int tab_key[16] = {2, 1, 4, 1, 0, 4, 3, 3, 4, 3, 4, 4, 4, 0, 0, 2}; // used for config 1 767 773 768 774 int color = tab_color[rank]; … … 779 785 780 786 781 printf("rank = %d, color = %d, key = %d, split_rank = %d, local_rank=%d\n", rank, color, key, split_rank, split_comm->ep_comm_ptr->size_rank_info[1].first);787 782 788 783 789 MPI_Barrier(comm); … … 794 800 795 801 int local_leader = 0; 796 int remote_leader = color==2? 13: 4; 802 int remote_leader = color==2? 13: 4; // used for config 1 797 803 798 804 MPI_Comm peer_comm = comm; … … 800 806 MPI_Comm inter_comm; 801 807 MPI_Intercomm_create(split_comm, local_leader, peer_comm, remote_leader, 99, &inter_comm); 802 808 809 int inter_rank, inter_size, remote_size; 810 MPI_Comm_rank(inter_comm, &inter_rank); 811 MPI_Comm_size(inter_comm, &inter_size); 812 MPI_Comm_remote_size(inter_comm, &remote_size); 813 814 815 MPI_Barrier(comm); 816 MPI_Barrier(comm); 817 818 if(rank == 0) printf(" \t MPI_Intercomm_create \t OK\n"); 819 820 printf("rank = %d, split_rank = %d, split_size = %d, inter_rank=%d, inter_size=%d, remote_size=%d\n", rank, split_rank, split_size, inter_rank, inter_size, remote_size); 821 822 823 MPI_Barrier(comm); 824 MPI_Barrier(comm); 825 826 if(color==2 && split_rank==1) 827 { 828 double sendbuf[9]={1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9}; 829 MPI_Request send_request; 830 MPI_Status send_status; 831 MPI_Isend(sendbuf, 9, MPI_DOUBLE, 5, 10, inter_comm, &send_request); 832 MPI_Wait(&send_request, &send_status); 833 } 834 835 if(color==1 && split_rank==5) 836 { 837 double recvbuf[9]; 838 MPI_Request recv_request; 839 MPI_Status recv_status; 840 MPI_Irecv(recvbuf, 9, MPI_DOUBLE, 1, 10, inter_comm, &recv_request); 841 MPI_Wait(&recv_request, &recv_status); 842 for(int i=0; i<9; i++) 843 { 844 printf("recvbuf[%d] = %lf\n", i, recvbuf[i]); 845 } 846 } 847 848 MPI_Barrier(comm); 849 MPI_Barrier(comm); 850 851 if(rank == 0) printf(" \t Test iP2P for intercomm \t OK\n"); 803 852 804 853 … … 809 858 MPI_Comm_free(&split_comm); 810 859 860 MPI_Barrier(comm); 861 MPI_Barrier(comm); 862 863 MPI_Comm_free(&inter_comm); 864 811 865 812 866 /*
Note: See TracChangeset
for help on using the changeset viewer.