Changeset 27
- Timestamp:
- 04/08/09 16:04:00 (16 years ago)
- Location:
- XMLIO_SERVER/trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_SERVER/trunk/bld.cfg
r8 r27 39 39 bld::excl_dep inc::mpif.h 40 40 bld::excl_dep use::mpi 41 bld::excl_dep use::mod_prism_get_comm 42 bld::excl_dep use::mod_prism_proto 41 43 42 44 # Don't generate interface files -
XMLIO_SERVER/trunk/configure
r16 r27 5 5 set default_compile_flags = "%PROD_FFLAGS" 6 6 set has_use_vt = FALSE 7 set has_oasis = FALSE 7 8 8 9 top: … … 47 48 set compile_flags="%DEBUG_FFLAGS" 48 49 shift ; goto top 50 49 51 case -use_vt 50 52 set has_use_vt = TRUE 51 53 shift ; goto top 52 54 55 case -oasis 56 set has_oasis = TRUE 57 shift ; goto top 58 53 59 default 54 60 echo "unknown option "$1" , exiting..." … … 117 123 set LIB="$LIB $NETCDF_LIBDIR $NETCDF_LIB" 118 124 125 if ( $has_oasis == TRUE ) then 126 set INCDIR="$INCDIR $OASIS_INCDIR" 127 set LIB="$LIB $OASIS_LIBDIR $OASIS_LIB" 128 endif 129 119 130 if ( $has_use_vt == TRUE ) then 120 set INCDIR="$INCDIR $VAMPIR_INCDIR"121 set LIB="$LIB $VAMPIR_LIBDIR $VAMPIR_LIB"122 set CPP_KEY="$CPP_KEY USE_VT"131 set INCDIR="$INCDIR $VAMPIR_INCDIR" 132 set LIB="$LIB $VAMPIR_LIBDIR $VAMPIR_LIB" 133 set CPP_KEY="$CPP_KEY USE_VT" 123 134 endif 135 124 136 125 137 -
XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient.f90
r26 r27 11 11 USE mod_event_client 12 12 USE iomanager 13 14 13 IMPLICIT NONE 15 14 INTEGER, INTENT(INOUT),OPTIONAL :: NEW_COMM … … 25 24 26 25 IF (using_server) THEN 27 IF (using_oasis) THEN 28 ELSE 29 CALL Init_parallel 30 CALL Init_mpi_buffer 31 CALL Init_wait 26 CALL Init_parallel 27 CALL Init_mpi_buffer 28 CALL Init_wait 29 IF (PRESENT(NEW_COMM)) THEN 32 30 NEW_COMM=intracomm 33 31 ENDIF 34 32 ELSE 35 IF (using_oasis) THEN 36 33 CALL MPI_INITIALIZED(init,ierr) 34 IF (init) THEN 35 IF (.NOT. PRESENT(NEW_COMM)) THEN 36 Comm=MPI_COMM_WORLD 37 ELSE 38 Comm=New_Comm 39 ENDIF 37 40 ELSE 38 CALL MPI_INITIALIZED(init,ierr) 39 IF (init) THEN 40 IF (.NOT. PRESENT(NEW_COMM)) THEN 41 Comm=MPI_COMM_WORLD 42 ELSE 43 Comm=New_Comm 44 ENDIF 45 ELSE 46 CALL MPI_INIT(ierr) 47 Comm=MPI_COMM_WORLD 48 49 IF (PRESENT(NEW_COMM)) THEN 50 New_Comm=MPI_COMM_WORLD 51 ENDIF 52 ENDIF 53 CALL MPI_COMM_SIZE(Comm,nb_server,ierr) 54 CALL MPI_COMM_RANK(Comm,rank,ierr) 55 CALL iom__init(1,nb_server,rank) 56 CALL iom__set_current_rank(1) 41 CALL MPI_INIT(ierr) 42 Comm=MPI_COMM_WORLD 57 43 58 ENDIF 44 IF (PRESENT(NEW_COMM)) THEN 45 New_Comm=MPI_COMM_WORLD 46 ENDIF 47 ENDIF 48 CALL MPI_COMM_SIZE(Comm,nb_server,ierr) 49 CALL MPI_COMM_RANK(Comm,rank,ierr) 50 CALL iom__init(1,nb_server,rank) 51 CALL iom__set_current_rank(1) 59 52 ENDIF 60 53 -
XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient_para.f90
r8 r27 12 12 SUBROUTINE Init_parallel 13 13 USE mpitrace 14 USE mod_ioserver_namelist 15 USE mod_prism_get_comm 14 16 IMPLICIT NONE 15 17 INCLUDE 'mpif.h' … … 25 27 INTEGER :: div,remain 26 28 INTEGER :: group_color 29 INTEGER :: Comm_client_server 30 CHARACTER(LEN=6) :: oasis_server_id 27 31 28 ! PRINT *, "on rentre dans MPI_INIT" 29 CALL MPI_INIT(ierr) 30 CALL MPI_COMM_RANK(MPI_COMM_WORLD,global_rank,ierr) 31 CALL MPI_COMM_SIZE(MPI_COMM_WORLD,global_size,ierr) 32 33 PRINT *,"MPI_init Ok, --> mpi_comm_split" 34 CALL MPI_COMM_SPLIT(MPI_COMM_WORLD,color_client,global_rank,intracomm,ierr) 32 IF (using_oasis) THEN 33 oasis_server_id=server_id 34 PRINT *,'prism_get_intracomm' 35 CALL prism_get_intracomm(Comm_client_server,oasis_server_id,ierr) 36 ELSE 37 CALL MPI_INIT(ierr) 38 Comm_client_server=MPI_COMM_WORLD 39 ENDIF 40 41 CALL MPI_COMM_RANK(Comm_client_server,global_rank,ierr) 42 CALL MPI_COMM_SIZE(Comm_client_server,global_size,ierr) 43 44 CALL MPI_COMM_SPLIT(Comm_client_server,color_client,global_rank,intracomm,ierr) 35 45 CALL MPI_COMM_SIZE(intracomm,mpi_size,ierr) 36 46 CALL MPI_COMM_RANK(intracomm,mpi_rank,ierr) 37 PRINT *,"MPI_mpi_comm_split ok --> intracomm" 47 38 48 nb_server_io=global_size-mpi_size 39 49 div=mpi_size/nb_server_io … … 45 55 group_color=(nb_server_io-1)-(mpi_size-1-mpi_rank)/div 46 56 ENDIF 47 PRINT *,'group_color',group_color48 57 49 CALL MPI_COMM_SPLIT( MPI_COMM_WORLD,group_color,global_rank,iocomm,ierr)58 CALL MPI_COMM_SPLIT(Comm_client_server,group_color,global_rank,iocomm,ierr) 50 59 51 60 CALL MPI_COMM_SIZE(iocomm,iosize,ierr) 52 61 CALL MPI_COMM_RANK(iocomm,iorank,ierr) 53 PRINT *,"io_size-> ",iosize,"iorank-> ",iorank 62 54 63 ALLOCATE(proc_color(0:iosize-1)) 55 64 CALL MPI_ALLGATHER(color_client,1,MPI_INTEGER,proc_color,1,MPI_INTEGER,iocomm,ierr) 56 print *,"proc_color -> ",proc_color57 65 58 66 DO i=0,iosize-1 -
XMLIO_SERVER/trunk/src/IOSERVER/mod_ioserver_para.f90
r8 r27 20 20 SUBROUTINE Init_parallel 21 21 USE mpitrace 22 USE mod_ioserver_namelist 23 USE mod_prism_get_comm 22 24 IMPLICIT NONE 23 25 INCLUDE 'mpif.h' … … 28 30 INTEGER :: i 29 31 INTEGER :: group_color 30 31 CALL MPI_INIT(ierr) 32 CALL MPI_COMM_RANK(MPI_COMM_WORLD,global_rank,ierr) 33 CALL MPI_COMM_SIZE(MPI_COMM_WORLD,global_size,ierr) 34 35 CALL MPI_COMM_SPLIT(MPI_COMM_WORLD,color_server,global_rank,intracomm,ierr) 32 INTEGER :: Comm_client_server 33 INTEGER :: comp_id 34 CHARACTER(LEN=6) :: oasis_server_id, oasis_client_id 35 36 IF (using_oasis) THEN 37 oasis_server_id=server_id 38 oasis_client_id=client_id 39 CALL prism_init_comp_proto (comp_id, oasis_server_id, ierr) 40 CALL prism_get_intracomm(Comm_client_server,oasis_client_id,ierr) 41 ELSE 42 CALL MPI_INIT(ierr) 43 Comm_client_server=MPI_COMM_WORLD 44 ENDIF 45 46 CALL MPI_COMM_RANK(Comm_client_server,global_rank,ierr) 47 CALL MPI_COMM_SIZE(Comm_client_server,global_size,ierr) 48 49 CALL MPI_COMM_SPLIT(Comm_client_server,color_server,global_rank,intracomm,ierr) 36 50 CALL MPI_COMM_SIZE(intracomm,mpi_size,ierr) 37 51 CALL MPI_COMM_RANK(intracomm,mpi_rank,ierr) … … 40 54 PRINT *,'group_color',group_color 41 55 42 CALL MPI_COMM_SPLIT( MPI_COMM_WORLD,group_color,global_rank,iocomm,ierr)56 CALL MPI_COMM_SPLIT(Comm_client_server,group_color,global_rank,iocomm,ierr) 43 57 44 58 CALL MPI_COMM_SIZE(iocomm,iosize,ierr) … … 64 78 65 79 SUBROUTINE Finalize_parallel 80 USE mod_ioserver_namelist 81 USE mod_prism_proto 66 82 IMPLICIT NONE 67 83 include 'mpif.h' 68 84 INTEGER :: ierr 69 85 70 CALL MPI_FINALIZE(ierr) 71 86 IF (using_oasis) THEN 87 CALL prism_terminate_proto(ierr) 88 ELSE 89 CALL MPI_FINALIZE(ierr) 90 ENDIF 91 72 92 END SUBROUTINE Finalize_parallel 73 93
Note: See TracChangeset
for help on using the changeset viewer.