Changeset 1209
- Timestamp:
- 07/11/17 17:57:38 (7 years ago)
- Location:
- XIOS/dev/branch_openmp
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/bld.cfg
r1203 r1209 34 34 #bld::target generate_fortran_interface.exe 35 35 #bld::target xios_server.exe 36 bld::target test_remap.exe37 36 #bld::target test_regular.exe 38 37 #bld::target test_expand_domain.exe 39 #bld::target test_new_features.exe test_unstruct_complete.exe 40 bld::target test_omp.exe test_complete_omp.exe test_remap_omp.exe test_unstruct_omp.exe 41 #bld::target test_client.exe test_complete.exe #test_xios2_cmip6.exe 38 #bld::target test_new_features.exe 39 #bld::target test_unstruct_complete.exe 40 bld::target test_omp.exe 41 bld::target test_complete_omp.exe 42 bld::target test_remap_omp.exe 43 bld::target test_unstruct_omp.exe 44 bld::target test_netcdf_omp.exe 45 #bld::target test_client.exe 46 #bld::target test_complete.exe 47 #bld::target test_remap.exe 48 #bld::target test_unstruct.exe 49 #bld::target test_xios2_cmip6.exe 42 50 #bld::target test_connectivity_expand.exe 43 51 #bld::target toy_cmip6.exe -
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_gatherv.cpp
r1203 r1209 70 70 } 71 71 72 for(int j=0; j<count; j+=BUFFER_SIZE)72 for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE) 73 73 { 74 74 for(int k=1; k<num_ep; k++) … … 78 78 #pragma omp critical (write_to_buffer) 79 79 { 80 copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);80 if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer); 81 81 #pragma omp flush 82 82 } … … 114 114 } 115 115 116 for(int j=0; j<count; j+=BUFFER_SIZE)116 for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE) 117 117 { 118 118 for(int k=1; k<num_ep; k++) … … 122 122 #pragma omp critical (write_to_buffer) 123 123 { 124 copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);124 if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer); 125 125 #pragma omp flush 126 126 } … … 158 158 } 159 159 160 for(int j=0; j<count; j+=BUFFER_SIZE)160 for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE) 161 161 { 162 162 for(int k=1; k<num_ep; k++) … … 166 166 #pragma omp critical (write_to_buffer) 167 167 { 168 copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);168 if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer); 169 169 #pragma omp flush 170 170 } … … 202 202 } 203 203 204 for(int j=0; j<count; j+=BUFFER_SIZE)204 for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE) 205 205 { 206 206 for(int k=1; k<num_ep; k++) … … 210 210 #pragma omp critical (write_to_buffer) 211 211 { 212 copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);212 if(count!=0)copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer); 213 213 #pragma omp flush 214 214 } … … 246 246 } 247 247 248 for(int j=0; j<count; j+=BUFFER_SIZE)248 for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE) 249 249 { 250 250 for(int k=1; k<num_ep; k++) … … 254 254 #pragma omp critical (write_to_buffer) 255 255 { 256 copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);256 if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer); 257 257 #pragma omp flush 258 258 } … … 290 290 } 291 291 292 for(int j=0; j<count; j+=BUFFER_SIZE)292 for(int j=0; count!=0? j<count: j<count+1; j+=BUFFER_SIZE) 293 293 { 294 294 for(int k=1; k<num_ep; k++) … … 298 298 #pragma omp critical (write_to_buffer) 299 299 { 300 copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer);300 if(count!=0) copy(send_buf+j, send_buf + min(BUFFER_SIZE, count-j) , buffer); 301 301 #pragma omp flush 302 302 } … … 520 520 num_ep = comm.ep_comm_ptr->size_rank_info[1].second; 521 521 mpi_size = comm.ep_comm_ptr->size_rank_info[2].second; 522 523 //printf("size of recvbuf = %lu\n", sizeof(recvbuf));524 //printf("size of (char*)recvbuf = %lu\n", sizeof((char*)recvbuf));525 522 526 if(ep_size == mpi_size)527 return ::MPI_Allgatherv(sendbuf, sendcount, static_cast< ::MPI_Datatype>(datatype), recvbuf, recvcounts, displs,528 static_cast< ::MPI_Datatype>(datatype), static_cast< ::MPI_Comm>(comm.mpi_comm));529 530 523 531 524 int recv_plus_displs[ep_size]; -
XIOS/dev/branch_openmp/inputs/Unstruct/iodef.xml
r1203 r1209 15 15 <!-- <field field_ref="field_A_expand" name="field"/> --> 16 16 <field field_ref="field_A_srf" name="field_A"/> 17 <field field_ref="field_A_srf" name="field_rect" grid_ref="grid_rect" enabled=". FALSE." />17 <field field_ref="field_A_srf" name="field_rect" grid_ref="grid_rect" enabled=".TRUE." /> 18 18 <field field_ref="field_A_srf" name="field_rect2" grid_ref="grid_rect2" enabled=".TRUE." /> 19 19 <field field_ref="field_A_srf" name="field_rect3" grid_ref="grid_rect3" enabled=".TRUE."/> … … 40 40 </domain> 41 41 42 <domain id="dst_domain_regular_pole" ni_glo=" 90" nj_glo="45" type="rectilinear">42 <domain id="dst_domain_regular_pole" ni_glo="80" nj_glo="40" type="rectilinear"> 43 43 <generate_rectilinear_domain id="domain_regular_pole"/> 44 44 <interpolate_domain write_weight="false" order="1" renormalize="true"/> … … 53 53 <generate_rectilinear_domain id="domain_regular_pole3"/> 54 54 <interpolate_domain write_weight="false" order="1" renormalize="true"/> 55 <zoom_domain ibegin="0" ni=" 65" jbegin="0" nj="65" />55 <zoom_domain ibegin="0" ni="70" jbegin="0" nj="70" /> 56 56 </domain> 57 57 -
XIOS/dev/branch_openmp/src/client_client_dht_template_impl.hpp
r1203 r1209 105 105 int clientRank; 106 106 MPI_Comm_rank(commLevel,&clientRank); 107 ep_lib::MPI_Barrier(commLevel);107 //ep_lib::MPI_Barrier(commLevel); 108 108 int groupRankBegin = this->getGroupBegin()[level]; 109 109 int nbClient = this->getNbInGroup()[level]; … … 434 434 MPI_Comm_rank(commLevel,&clientRank); 435 435 computeSendRecvRank(level, clientRank); 436 ep_lib::MPI_Barrier(commLevel);436 //ep_lib::MPI_Barrier(commLevel); 437 437 438 438 int groupRankBegin = this->getGroupBegin()[level]; -
XIOS/dev/branch_openmp/src/node/field.cpp
r1205 r1209 26 26 namespace xios{ 27 27 28 /// ////////////////////// D éfinitions ////////////////////// ///28 /// ////////////////////// Dfinitions ////////////////////// /// 29 29 30 30 CField::CField(void) … … 716 716 if (context->hasClient) 717 717 { 718 printf("proc %d begein transformation\n", myRank);719 718 solveTransformedGrid(); 720 printf("proc %d end transformation\n", myRank);721 MPI_Barrier(context->client->intraComm);722 719 } 723 720 -
XIOS/dev/branch_openmp/src/test/test_unstruct_omp.f90
r1203 r1209 55 55 if(mpi_rank < mpi_size-2) then 56 56 57 !$omp parallel default( private) firstprivate(dtime)57 !$omp parallel default(firstprivate) firstprivate(dtime) 58 58 59 59 CALL xios_initialize(id,return_comm=comm) … … 79 79 ALLOCATE(field_A_glo(ncell_glo,llm)) 80 80 ALLOCATE(mask_glo(ncell_glo)) 81 82 lon_glo(:) = 0 83 lat_glo(:) = 0 84 bounds_lon_glo(:,:) = 0 85 bounds_lat_glo(:,:) = 0 86 i_index_glo(:) = 0 87 field_A_glo(:,:) = 0 88 mask_glo(:) = 0 81 89 82 90 ind=0 … … 181 189 ALLOCATE(mask(ncell)) 182 190 ALLOCATE(n_local(ncell)) 191 192 i_index(:)=0 193 lon(:)=0 194 lat(:)=0 195 bounds_lon(:,:)=0 196 bounds_lat(:,:)=0 197 field_A_srf(:,:)=0 198 mask(:)=0 199 n_local(:)=0 200 183 201 ncell=0 184 202 data_n_index=0 … … 203 221 ALLOCATE(field_A_compressed(data_n_index,llm)) 204 222 ALLOCATE(data_i_index(data_n_index)) 223 field_A_compressed(:,:)=0 224 data_i_index(:)=0 225 226 205 227 data_n_index=0 206 228 DO ind=1,ncell
Note: See TracChangeset
for help on using the changeset viewer.