Changeset 1085
- Timestamp:
- 04/10/17 20:06:52 (6 years ago)
- Location:
- XIOS/dev/branch_yushan
- Files:
-
- 1 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan/arch/arch-GCC_LINUX.path
r1053 r1085 3 3 NETCDF_LIB=" -lnetcdf" 4 4 5 MPI_INCDIR=" "6 MPI_LIBDIR=" "5 MPI_INCDIR="-I /usr/local/include" 6 MPI_LIBDIR="-L /usr/local/lib" 7 7 MPI_LIB="" 8 8 -
XIOS/dev/branch_yushan/extern/src_ep_dev/ep_fortran.cpp
r1079 r1085 6 6 #include "ep_declaration.hpp" 7 7 8 #ifdef _openmpi 9 //#undef MPI_Fint 10 #endif 8 11 9 12 namespace ep_lib -
XIOS/dev/branch_yushan/src/buffer_server.cpp
r885 r1085 2 2 #include "exception.hpp" 3 3 #include "buffer_server.hpp" 4 5 4 6 5 namespace xios -
XIOS/dev/branch_yushan/src/client.cpp
r1081 r1085 17 17 MPI_Comm CClient::intraComm ; 18 18 MPI_Comm CClient::interComm ; 19 std::list<MPI_Comm> CClient::contextInterComms;19 std::list<MPI_Comm> *CClient::contextInterComms_ptr; 20 20 int CClient::serverLeader ; 21 21 bool CClient::is_MPI_Initialized ; … … 172 172 CContext::setCurrent(id) ; 173 173 CContext* context = CContext::create(id); 174 175 int tmp_rank; 176 MPI_Comm_rank(contextComm,&tmp_rank) ; 174 177 175 178 #pragma omp critical (_output) 176 printf("Client ::registerContext context add = %p\n", &(*context));179 printf("Client %d : Client::registerContext context add = %p\n", tmp_rank, &(*context)); 177 180 178 181 … … 228 231 229 232 230 contextInterComms .push_back(contextInterComm);233 contextInterComms_ptr->push_back(contextInterComm); 231 234 MPI_Comm_free(&inter); 232 235 } … … 246 249 CContext::setCurrent(id); 247 250 248 contextInterComms .push_back(contextInterComm);251 contextInterComms_ptr->push_back(contextInterComm); 249 252 } 250 253 } … … 266 269 } 267 270 268 for (std::list<MPI_Comm>::iterator it = contextInterComms .begin(); it != contextInterComms.end(); ++it)271 for (std::list<MPI_Comm>::iterator it = contextInterComms_ptr->begin(); it != contextInterComms_ptr->end(); ++it) 269 272 MPI_Comm_free(&(*it)); 270 273 -
XIOS/dev/branch_yushan/src/client.hpp
r1081 r1085 21 21 #pragma omp threadprivate(interComm) 22 22 23 static std::list<MPI_Comm> contextInterComms;24 //std::list<MPI_Comm> contextInterComms;23 //static std::list<MPI_Comm> contextInterComms; 24 std::list<MPI_Comm> contextInterComms; 25 25 static std::list<MPI_Comm> * contextInterComms_ptr; 26 26 #pragma omp threadprivate(contextInterComms_ptr) -
XIOS/dev/branch_yushan/src/cxios.cpp
r1081 r1085 22 22 bool CXios::isClient ; 23 23 bool CXios::isServer ; 24 #pragma omp threadprivate(CXios::isServer, CXios::isClient)24 //#pragma omp threadprivate(CXios::isServer, CXios::isClient) 25 25 26 26 MPI_Comm CXios::globalComm ; 27 #pragma omp threadprivate(CXios::globalComm)27 //#pragma omp threadprivate(CXios::globalComm) 28 28 29 29 bool CXios::usingOasis ; 30 30 bool CXios::usingServer = false; 31 #pragma omp threadprivate(CXios::usingOasis, CXios::usingServer)31 // #pragma omp threadprivate(CXios::usingOasis, CXios::usingServer) 32 32 33 33 double CXios::bufferSizeFactor = 1.0; 34 34 const double CXios::defaultBufferSizeFactor = 1.0; 35 35 StdSize CXios::minBufferSize = 1024 * sizeof(double); 36 #pragma omp threadprivate(CXios::bufferSizeFactor, CXios::defaultBufferSizeFactor, CXios::minBufferSize)36 //#pragma omp threadprivate(CXios::bufferSizeFactor, CXios::defaultBufferSizeFactor, CXios::minBufferSize) 37 37 38 38 bool CXios::printLogs2Files; 39 39 bool CXios::isOptPerformance = true; 40 40 CRegistry* CXios::globalRegistry = 0; 41 #pragma omp threadprivate(CXios::printLogs2Files, CXios::isOptPerformance)41 //#pragma omp threadprivate(CXios::printLogs2Files, CXios::isOptPerformance) 42 42 43 43 -
XIOS/dev/branch_yushan/src/io/netcdf.hpp
r1056 r1085 30 30 namespace xios 31 31 { 32 inline int nc_create_par(const char *path, int cmode, MPI_Comm comm, MPI_Info info,int *ncidp)32 inline int nc_create_par(const char *path, int cmode, ep_lib::MPI_Comm comm, MPI_Info info,int *ncidp) 33 33 { 34 34 #if defined(USING_NETCDF_PAR) 35 return ::nc_create_par(path, cmode, comm, info, ncidp) ;35 return ::nc_create_par(path, cmode, static_cast<MPI_Comm>(comm.mpi_comm), info, ncidp) ; 36 36 #else 37 37 ERROR("int nc_create_par(const char *path, int cmode, MPI_Comm comm, MPI_Info info,int *ncidp)", … … 41 41 } 42 42 43 inline int nc_open_par(const char *path, int mode, MPI_Comm comm, MPI_Info info,int *ncidp)43 inline int nc_open_par(const char *path, int mode, ep_lib::MPI_Comm comm, MPI_Info info,int *ncidp) 44 44 { 45 45 #if defined(USING_NETCDF_PAR) 46 return ::nc_open_par(path, mode, comm, info, ncidp) ;46 return ::nc_open_par(path, mode, static_cast<MPI_Comm>(comm.mpi_comm), info, ncidp) ; 47 47 #else 48 48 ERROR("int nc_open_par(const char *path, int mode, MPI_Comm comm, MPI_Info info,int *ncidp)", -
XIOS/dev/branch_yushan/src/object_template.hpp
r1081 r1085 97 97 98 98 /// Propriétés statiques /// 99 // bkp 99 100 static xios_map<StdString, 100 101 xios_map<StdString, … … 104 105 105 106 static xios_map< StdString, long int > GenId ; 106 //#pragma omp threadprivate(AllMapObj, AllVectObj, GenId) 107 108 // xios_map<StdString, xios_map<StdString, boost::shared_ptr<DerivedType> > > AllMapObj; 109 // xios_map<StdString, std::vector<boost::shared_ptr<DerivedType> > > AllVectObj; 110 // xios_map< StdString, long int > GenId ; 111 112 // static xios_map<StdString, xios_map<StdString, boost::shared_ptr<DerivedType> > > *AllMapObj_ptr; 113 // static xios_map<StdString, std::vector<boost::shared_ptr<DerivedType> > > *AllVectObj_ptr; 114 // static xios_map< StdString, long int > *GenId_ptr ; 115 116 // #pragma omp threadprivate(AllMapObj_ptr, AllVectObj_ptr, GenId_ptr) 117 107 118 108 119 }; // class CObjectTemplate -
XIOS/dev/branch_yushan/src/server.cpp
r1079 r1085 9 9 #include <boost/functional/hash.hpp> 10 10 #include <boost/algorithm/string.hpp> 11 //#include "mpi.hpp"12 11 #include "tracer.hpp" 13 12 #include "timer.hpp" -
XIOS/dev/branch_yushan/src/test/test_omp.f90
r1081 r1085 84 84 print*, "xios init OK", rank, size 85 85 86 CALL xios_context_initialize("test",comm) 87 print*, "xios_context init OK", rank, size 88 89 ! CALL xios_context_finalize() 90 ! print*, "xios_context finalize OK", rank, size 86 CALL xios_context_initialize("test",comm) 87 88 print*, "xios_context_initialize OK", rank, size 89 90 CALL xios_context_finalize() 91 print*, "xios_context_finalize OK", rank, size 92 93 !$omp master 94 call MPI_Barrier(comm) 95 CALL MPI_COMM_FREE(comm, ierr) 96 !$omp end master 97 98 !$omp barrier 99 100 print*, "MPI_COMM_FREE OK", rank, size 91 101 92 102 CALL xios_finalize() … … 94 104 95 105 96 97 !$omp barrier 98 !call MPI_Barrier(MPI_COMM_WORLD) 99 !$omp barrier 100 101 call MPI_Abort() 102 103 104 105 CALL xios_get_handle("test",ctx_hdl) 106 print*, "xios_get_handle OK", rank, size 107 108 CALL xios_set_current_context(ctx_hdl) 109 print*, "xios_set_current_context OK", rank, size 110 111 CALL xios_get_calendar_type(calendar_type) 112 print*, "xios_get_calendar_type OK", rank, size 113 114 115 CALL xios_set_axis_attr("axis_A",n_glo=llm ,value=lval) ; 116 CALL xios_set_domain_attr("domain_A",ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, ni=ni,jbegin=jbegin,nj=nj,type='curvilinear') 117 CALL xios_set_domain_attr("domain_A",data_dim=2, data_ibegin=-1, data_ni=ni+2, data_jbegin=-2, data_nj=nj+4) 118 CALL xios_set_domain_attr("domain_A",lonvalue_2D=lon,latvalue_2D=lat) 119 CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.) 120 121 CALL xios_get_handle("field_definition",fieldgroup_hdl) 122 CALL xios_add_child(fieldgroup_hdl,field_hdl,"field_B") 123 CALL xios_set_attr(field_hdl,field_ref="field_A",name="field_B") 124 125 CALL xios_get_handle("output",file_hdl) 126 CALL xios_add_child(file_hdl,field_hdl) 127 CALL xios_set_attr(field_hdl,field_ref="field_A_zoom",name="field_C") 128 129 dtime%second = 3600 130 CALL xios_set_timestep(dtime) 131 print*, "xios_set_timestep OK", rank, size 132 133 CALL xios_get_time_origin(date) 134 135 PRINT *, "--> year length = ", xios_get_year_length_in_seconds(date%year) 136 PRINT *, "--> day length = ", xios_get_day_length_in_seconds() 137 CALL xios_date_convert_to_string(date, date_str) 138 PRINT *, "time_origin = ", date_str 139 PRINT *, "xios_date_get_second_of_year(time_origin) = ", xios_date_get_second_of_year(date) 140 PRINT *, "xios_date_get_day_of_year(time_origin) = ", xios_date_get_day_of_year(date) 141 PRINT *, "xios_date_get_fraction_of_year(time_origin) = ", xios_date_get_fraction_of_year(date) 142 PRINT *, "xios_date_get_second_of_day(time_origin) = ", xios_date_get_second_of_day(date) 143 PRINT *, "xios_date_get_fraction_of_day(time_origin) = ", xios_date_get_fraction_of_day(date) 144 dtime%timestep = 1 145 dtime = 0.5 * dtime 146 CALL xios_duration_convert_to_string(dtime, dtime_str) 147 PRINT *, "duration = ", dtime_str 148 date = date + 3 * (dtime + dtime) 149 CALL xios_date_convert_to_string(date, date_str) 150 PRINT *, "date = time_origin + 3 * (duration + duration) = ", date_str 151 PRINT *, "xios_date_convert_to_seconds(date) = ", xios_date_convert_to_seconds(date) 152 PRINT *, "xios_date_convert_to_seconds(date - 2.5h) = ", xios_date_convert_to_seconds(date - 2.5 * xios_hour) 153 154 ni=0 ; lonvalue(:,:)=0; 155 CALL xios_get_domain_attr("domain_A",ni=ni,lonvalue_2D=lonvalue) 156 print *,"ni",ni 157 158 CALL xios_is_defined_field_attr("field_A",enabled=ok) 159 PRINT *,"field_A : attribute enabled is defined ? ",ok 160 161 106 !$omp end parallel 107 108 109 110 ! CALL xios_context_initialize("test",comm) 111 112 ! CALL xios_get_handle("test",ctx_hdl) 113 ! CALL xios_set_current_context(ctx_hdl) 114 115 116 ! CALL xios_get_calendar_type(calendar_type) 117 118 ! CALL xios_set_axis_attr("axis_A",n_glo=llm ,value=lval) ; 119 ! CALL xios_set_domain_attr("domain_A",ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, ni=ni,jbegin=jbegin,nj=nj,type='curvilinear') 120 ! CALL xios_set_domain_attr("domain_A",data_dim=2, data_ibegin=-1, data_ni=ni+2, data_jbegin=-2, data_nj=nj+4) 121 ! CALL xios_set_domain_attr("domain_A",lonvalue_2D=lon,latvalue_2D=lat) 122 ! CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.) 123 124 ! CALL xios_get_handle("field_definition",fieldgroup_hdl) 125 ! CALL xios_add_child(fieldgroup_hdl,field_hdl,"field_B") 126 ! CALL xios_set_attr(field_hdl,field_ref="field_A",name="field_B") 127 128 ! CALL xios_get_handle("output",file_hdl) 129 ! CALL xios_add_child(file_hdl,field_hdl) 130 ! CALL xios_set_attr(field_hdl,field_ref="field_A_zoom",name="field_C") 131 132 ! dtime%second = 3600 133 ! CALL xios_set_timestep(dtime) 134 135 ! ! The calendar is created as soon as the calendar type is defined. This way 136 ! ! calendar operations can be used before the context definition is closed 137 ! CALL xios_get_time_origin(date) 138 ! PRINT *, "--> year length = ", xios_get_year_length_in_seconds(date%year) 139 ! PRINT *, "--> day length = ", xios_get_day_length_in_seconds() 140 ! CALL xios_date_convert_to_string(date, date_str) 141 ! PRINT *, "time_origin = ", date_str 142 ! PRINT *, "xios_date_get_second_of_year(time_origin) = ", xios_date_get_second_of_year(date) 143 ! PRINT *, "xios_date_get_day_of_year(time_origin) = ", xios_date_get_day_of_year(date) 144 ! PRINT *, "xios_date_get_fraction_of_year(time_origin) = ", xios_date_get_fraction_of_year(date) 145 ! PRINT *, "xios_date_get_second_of_day(time_origin) = ", xios_date_get_second_of_day(date) 146 ! PRINT *, "xios_date_get_fraction_of_day(time_origin) = ", xios_date_get_fraction_of_day(date) 147 ! dtime%timestep = 1 148 ! dtime = 0.5 * dtime 149 ! CALL xios_duration_convert_to_string(dtime, dtime_str) 150 ! PRINT *, "duration = ", dtime_str 151 ! date = date + 3 * (dtime + dtime) 152 ! CALL xios_date_convert_to_string(date, date_str) 153 ! PRINT *, "date = time_origin + 3 * (duration + duration) = ", date_str 154 ! PRINT *, "xios_date_convert_to_seconds(date) = ", xios_date_convert_to_seconds(date) 155 ! PRINT *, "xios_date_convert_to_seconds(date - 2.5h) = ", xios_date_convert_to_seconds(date - 2.5 * xios_hour) 156 157 ! ni=0 ; lonvalue(:,:)=0; 158 ! CALL xios_get_domain_attr("domain_A",ni=ni,lonvalue_2D=lonvalue) 159 ! print *,"ni",ni 160 ! !print *,"lonvalue",lonvalue; 161 162 ! CALL xios_is_defined_field_attr("field_A",enabled=ok) 163 ! PRINT *,"field_A : attribute enabled is defined ? ",ok 164 162 165 ! CALL xios_close_context_definition() 163 164 ! print*, "xios_close_context_definition OK", rank, size 165 166 167 168 !$omp end parallel 169 170 call MPI_Abort(ierr) 171 172 173 CALL xios_context_initialize("test",comm) 174 175 CALL xios_get_handle("test",ctx_hdl) 176 CALL xios_set_current_context(ctx_hdl) 177 178 179 CALL xios_get_calendar_type(calendar_type) 180 181 CALL xios_set_axis_attr("axis_A",n_glo=llm ,value=lval) ; 182 CALL xios_set_domain_attr("domain_A",ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, ni=ni,jbegin=jbegin,nj=nj,type='curvilinear') 183 CALL xios_set_domain_attr("domain_A",data_dim=2, data_ibegin=-1, data_ni=ni+2, data_jbegin=-2, data_nj=nj+4) 184 CALL xios_set_domain_attr("domain_A",lonvalue_2D=lon,latvalue_2D=lat) 185 CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.) 186 187 CALL xios_get_handle("field_definition",fieldgroup_hdl) 188 CALL xios_add_child(fieldgroup_hdl,field_hdl,"field_B") 189 CALL xios_set_attr(field_hdl,field_ref="field_A",name="field_B") 190 191 CALL xios_get_handle("output",file_hdl) 192 CALL xios_add_child(file_hdl,field_hdl) 193 CALL xios_set_attr(field_hdl,field_ref="field_A_zoom",name="field_C") 194 195 dtime%second = 3600 196 CALL xios_set_timestep(dtime) 197 198 ! The calendar is created as soon as the calendar type is defined. This way 199 ! calendar operations can be used before the context definition is closed 200 CALL xios_get_time_origin(date) 201 PRINT *, "--> year length = ", xios_get_year_length_in_seconds(date%year) 202 PRINT *, "--> day length = ", xios_get_day_length_in_seconds() 203 CALL xios_date_convert_to_string(date, date_str) 204 PRINT *, "time_origin = ", date_str 205 PRINT *, "xios_date_get_second_of_year(time_origin) = ", xios_date_get_second_of_year(date) 206 PRINT *, "xios_date_get_day_of_year(time_origin) = ", xios_date_get_day_of_year(date) 207 PRINT *, "xios_date_get_fraction_of_year(time_origin) = ", xios_date_get_fraction_of_year(date) 208 PRINT *, "xios_date_get_second_of_day(time_origin) = ", xios_date_get_second_of_day(date) 209 PRINT *, "xios_date_get_fraction_of_day(time_origin) = ", xios_date_get_fraction_of_day(date) 210 dtime%timestep = 1 211 dtime = 0.5 * dtime 212 CALL xios_duration_convert_to_string(dtime, dtime_str) 213 PRINT *, "duration = ", dtime_str 214 date = date + 3 * (dtime + dtime) 215 CALL xios_date_convert_to_string(date, date_str) 216 PRINT *, "date = time_origin + 3 * (duration + duration) = ", date_str 217 PRINT *, "xios_date_convert_to_seconds(date) = ", xios_date_convert_to_seconds(date) 218 PRINT *, "xios_date_convert_to_seconds(date - 2.5h) = ", xios_date_convert_to_seconds(date - 2.5 * xios_hour) 219 220 ni=0 ; lonvalue(:,:)=0; 221 CALL xios_get_domain_attr("domain_A",ni=ni,lonvalue_2D=lonvalue) 222 print *,"ni",ni 223 !print *,"lonvalue",lonvalue; 224 225 CALL xios_is_defined_field_attr("field_A",enabled=ok) 226 PRINT *,"field_A : attribute enabled is defined ? ",ok 227 228 CALL xios_close_context_definition() 229 print*, "xios_close_context_definition OK" 230 231 PRINT*,"field field_A is active ? ",xios_field_is_active("field_A") 232 233 234 call MPI_Barrier(comm, ierr) 235 236 !DO ts=1,24*10 237 DO ts=1,6 238 CALL xios_update_calendar(ts) 239 CALL xios_send_field("field_A",field_A) 240 CALL wait_us(5000) 241 ENDDO 242 243 244 CALL xios_context_finalize() 245 246 DEALLOCATE(lon, lat, field_A, lonvalue) 247 248 CALL MPI_COMM_FREE(comm, ierr) 249 250 CALL xios_finalize() 251 print *, "Client : xios_finalize " 166 ! print*, "xios_close_context_definition OK" 167 168 ! PRINT*,"field field_A is active ? ",xios_field_is_active("field_A") 169 170 171 ! call MPI_Barrier(comm, ierr) 172 173 ! !DO ts=1,24*10 174 ! DO ts=1,6 175 ! CALL xios_update_calendar(ts) 176 ! CALL xios_send_field("field_A",field_A) 177 ! CALL wait_us(5000) 178 ! ENDDO 179 180 181 ! CALL xios_context_finalize() 182 183 ! DEALLOCATE(lon, lat, field_A, lonvalue) 184 252 185 253 186 else
Note: See TracChangeset
for help on using the changeset viewer.