Changeset 1115
- Timestamp:
- 05/03/17 16:42:22 (8 years ago)
- Location:
- XIOS/dev/branch_yushan
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan/extern/src_ep_dev/ep_gatherv.cpp
r1056 r1115 89 89 #pragma omp critical (read_from_buffer) 90 90 { 91 copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]);91 copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 92 92 } 93 93 } … … 133 133 #pragma omp critical (read_from_buffer) 134 134 { 135 copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]);135 copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 136 136 } 137 137 } … … 177 177 #pragma omp critical (read_from_buffer) 178 178 { 179 copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]);179 copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 180 180 } 181 181 } … … 221 221 #pragma omp critical (read_from_buffer) 222 222 { 223 copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]);223 copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 224 224 } 225 225 } … … 265 265 #pragma omp critical (read_from_buffer) 266 266 { 267 copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]);267 copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 268 268 } 269 269 } … … 309 309 #pragma omp critical (read_from_buffer) 310 310 { 311 copy(buffer, buffer+min(BUFFER_SIZE, count-j), recv_buf+j+displs[k]);311 copy(buffer, buffer+min(BUFFER_SIZE, recvcounts[k]-j), recv_buf+j+displs[k]); 312 312 } 313 313 } … … 485 485 486 486 487 assert(accumulate(recvcounts, recvcounts+ep_size-1, 0) == displs[ep_size-1]); // Only for cont unuous gather.487 assert(accumulate(recvcounts, recvcounts+ep_size-1, 0) == displs[ep_size-1]); // Only for continuous gather. 488 488 489 489 … … 498 498 int buffer_size = accumulate(recvcounts+ep_rank, recvcounts+ep_rank+num_ep, 0); 499 499 local_gather_recvbuf = new void*[datasize*buffer_size]; 500 printf("buffersize = %d\n", buffer_size); 500 501 } 501 502 -
XIOS/dev/branch_yushan/src/client_server_mapping.cpp
r843 r1115 68 68 int recvSize=displ[nbClient-1]+recvCount[nbClient-1] ; 69 69 int* recvBuff=new int[recvSize] ; 70 70 71 printf("nbConnectedServer = %d\n", nbConnectedServer); 72 73 printf("displ = %d, %d, %d, %d, %d, %d, %d, %d\n", 74 displ[0], displ[1], displ[2], displ[3], displ[4], displ[5], displ[6], displ[7]); 75 printf("recvCount = %d, %d, %d, %d, %d, %d, %d, %d\n", 76 recvCount[0], recvCount[1], recvCount[2], recvCount[3], recvCount[4], recvCount[5], recvCount[6], recvCount[7]); 77 printf("receSize = %d\n", recvSize); 78 71 79 72 80 MPI_Allgatherv(sendBuff,nbConnectedServer,MPI_INT,recvBuff,recvCount,displ,MPI_INT,clientIntraComm) ; 73 for(int n=0;n<recvSize;n++) clientRes[recvBuff[n]]++ ; 81 for(int n=0;n<recvSize;n++) 82 { 83 recvBuff[n]; 84 clientRes[recvBuff[n]]++ ; 85 } 74 86 75 87 for(int n=0;n<nbConnectedServer;n++) -
XIOS/dev/branch_yushan/src/node/context.cpp
r1103 r1115 390 390 { 391 391 server->eventLoop(); 392 //printf("server->hasFinished() = %d\n", server->hasFinished()); 392 393 } 393 394 -
XIOS/dev/branch_yushan/src/test/test_complete.f90
r1109 r1115 236 236 !#################################################################################### 237 237 238 DO ts=1,24*10239 !DO ts=1,24238 !DO ts=1,24*10 239 DO ts=1,24 240 240 241 241 CALL xios_get_handle("atmosphere",ctx_hdl) -
XIOS/dev/branch_yushan/src/test/test_complete_omp.f90
r1109 r1115 181 181 !!! Initialisation des coordonnes globales et locales pour la grille indexee (1 point sur 2) 182 182 183 nb_pt=ni*nj/2184 ALLOCATE(kindex(nb_pt),field_A_srf(nb_pt,llm))185 DO i=1,nb_pt186 kindex(i)=2*i-1187 ENDDO188 field_A_srf(1:nb_pt,:)=RESHAPE(field_A_glo(ibegin+1:iend+1:2,jbegin+1:jend+1,:),(/ nb_pt,llm /))189 190 CALL xios_context_initialize("surface",comm)191 192 CALL xios_get_handle("surface",ctx_hdl)193 CALL xios_set_current_context(ctx_hdl)194 195 CALL xios_define_calendar(type="Gregorian", &196 start_date=xios_date(2000, 01, 01, 00, 00, 00), &197 time_origin=xios_date(1999, 01, 01, 15, 00, 00))198 199 CALL xios_set_axis_attr("axis_srf",n_glo=llm ,value=lval)200 CALL xios_set_domain_attr("domain_srf",ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, ni=ni,jbegin=jbegin,nj=nj, type='curvilinear')201 CALL xios_set_domain_attr("domain_srf",data_dim=1, data_ibegin=0, data_ni=nb_pt)202 CALL xios_set_domain_attr("domain_srf",data_i_index=kindex)203 CALL xios_set_domain_attr("domain_srf",lonvalue_2D=lon,latvalue_2D=lat)183 ! nb_pt=ni*nj/2 184 ! ALLOCATE(kindex(nb_pt),field_A_srf(nb_pt,llm)) 185 ! DO i=1,nb_pt 186 ! kindex(i)=2*i-1 187 ! ENDDO 188 ! field_A_srf(1:nb_pt,:)=RESHAPE(field_A_glo(ibegin+1:iend+1:2,jbegin+1:jend+1,:),(/ nb_pt,llm /)) 189 190 ! CALL xios_context_initialize("surface",comm) 191 192 ! CALL xios_get_handle("surface",ctx_hdl) 193 ! CALL xios_set_current_context(ctx_hdl) 194 195 ! CALL xios_define_calendar(type="Gregorian", & 196 ! start_date=xios_date(2000, 01, 01, 00, 00, 00), & 197 ! time_origin=xios_date(1999, 01, 01, 15, 00, 00)) 198 199 ! CALL xios_set_axis_attr("axis_srf",n_glo=llm ,value=lval) 200 ! CALL xios_set_domain_attr("domain_srf",ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, ni=ni,jbegin=jbegin,nj=nj, type='curvilinear') 201 ! CALL xios_set_domain_attr("domain_srf",data_dim=1, data_ibegin=0, data_ni=nb_pt) 202 ! CALL xios_set_domain_attr("domain_srf",data_i_index=kindex) 203 ! CALL xios_set_domain_attr("domain_srf",lonvalue_2D=lon,latvalue_2D=lat) 204 204 205 205 !!! Cration d un nouveau champ 206 206 207 CALL xios_get_handle("field_definition",fieldgroup_hdl)208 CALL xios_add_child(fieldgroup_hdl,field_hdl,"field_B_srf")207 ! CALL xios_get_handle("field_definition",fieldgroup_hdl) 208 ! CALL xios_add_child(fieldgroup_hdl,field_hdl,"field_B_srf") 209 209 210 210 !!! Heritage des attributs d un autre champ 211 211 212 CALL xios_set_attr(field_hdl,field_ref="field_A_srf",name="field_B_srf")212 ! CALL xios_set_attr(field_hdl,field_ref="field_A_srf",name="field_B_srf") 213 213 214 214 !!! Affectation de ce nouveau champ au fichier avec un nouveau nom 215 215 216 CALL xios_get_handle("output_surface",file_hdl)217 CALL xios_add_child(file_hdl,field_hdl)218 CALL xios_set_attr(field_hdl,field_ref="field_B_srf",name="field_C_srf")216 ! CALL xios_get_handle("output_surface",file_hdl) 217 ! CALL xios_add_child(file_hdl,field_hdl) 218 ! CALL xios_set_attr(field_hdl,field_ref="field_B_srf",name="field_C_srf") 219 219 220 220 !!! Definition du timestep 221 221 222 dtime%second=1800223 CALL xios_set_timestep(timestep=dtime)222 ! dtime%second=1800 223 ! CALL xios_set_timestep(timestep=dtime) 224 224 225 225 !!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalit) 226 226 227 ni=0 ; lonvalue(:,:)=0228 CALL xios_get_domain_attr("domain_srf",ni=ni,lonvalue_2D=lonvalue)227 ! ni=0 ; lonvalue(:,:)=0 228 ! CALL xios_get_domain_attr("domain_srf",ni=ni,lonvalue_2D=lonvalue) 229 229 230 230 !PRINT *,"ni",ni … … 233 233 !!! Fin de la definition du contexte SRF 234 234 235 CALL xios_close_context_definition()236 237 print *, "xios_close_context_definition(surface)"235 ! CALL xios_close_context_definition() 236 237 ! print *, "xios_close_context_definition(surface)" 238 238 239 239 … … 242 242 !#################################################################################### 243 243 244 DO ts=1,24*10245 !DO ts=1,24246 247 CALL xios_get_handle("atmosphere",ctx_hdl)248 CALL xios_set_current_context(ctx_hdl)244 !DO ts=1,24*10 245 DO ts=1,24 246 247 !CALL xios_get_handle("atmosphere",ctx_hdl) 248 !CALL xios_set_current_context(ctx_hdl) 249 249 250 250 !!! Mise a jour du pas de temps … … 258 258 !!! On change de contexte 259 259 260 CALL xios_get_handle("surface",ctx_hdl)261 CALL xios_set_current_context(ctx_hdl)260 ! CALL xios_get_handle("surface",ctx_hdl) 261 ! CALL xios_set_current_context(ctx_hdl) 262 262 263 263 !!! Mise a jour du pas de temps 264 264 265 CALL xios_update_calendar(ts)265 ! CALL xios_update_calendar(ts) 266 266 267 267 !!! On donne la valeur du champ srf 268 268 269 CALL xios_send_field("field_A_srf",field_A_srf)269 ! CALL xios_send_field("field_A_srf",field_A_srf) 270 270 271 271 CALL wait_us(5000) ; … … 283 283 284 284 285 CALL xios_get_handle("surface",ctx_hdl)286 287 CALL xios_set_current_context(ctx_hdl)288 289 CALL xios_context_finalize()290 291 print *, "xios_context_finalize(surface)"292 293 CALL xios_get_handle("atmosphere",ctx_hdl)294 295 CALL xios_set_current_context(ctx_hdl)285 ! CALL xios_get_handle("surface",ctx_hdl) 286 287 ! CALL xios_set_current_context(ctx_hdl) 288 289 ! CALL xios_context_finalize() 290 291 ! print *, "xios_context_finalize(surface)" 292 293 !CALL xios_get_handle("atmosphere",ctx_hdl) 294 295 !CALL xios_set_current_context(ctx_hdl) 296 296 297 297 CALL xios_context_finalize() … … 308 308 309 309 DEALLOCATE(lon, lat, field_A_atm, lonvalue) 310 DEALLOCATE(kindex, field_A_srf)310 ! DEALLOCATE(kindex, field_A_srf) 311 311 312 312 print *, "Client : xios_finalize " -
XIOS/dev/branch_yushan/src/test/test_omp.f90
r1109 r1115 45 45 CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr) 46 46 CALL MPI_COMM_SIZE(MPI_COMM_WORLD,size,ierr) 47 if(rank < size- 1) then47 if(rank < size-2) then 48 48 49 49 !$omp parallel default(private)
Note: See TracChangeset
for help on using the changeset viewer.