Ignore:
Timestamp:
04/08/09 16:04:00 (15 years ago)
Author:
ymipsl
Message:

Correction : utilisation d'OASIS par le server

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient_para.f90

    r8 r27  
    1212  SUBROUTINE Init_parallel 
    1313  USE mpitrace 
     14  USE mod_ioserver_namelist 
     15  USE mod_prism_get_comm   
    1416  IMPLICIT NONE 
    1517    INCLUDE 'mpif.h' 
     
    2527    INTEGER :: div,remain 
    2628    INTEGER :: group_color 
     29    INTEGER :: Comm_client_server 
     30    CHARACTER(LEN=6) :: oasis_server_id 
    2731     
    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) 
    3545    CALL MPI_COMM_SIZE(intracomm,mpi_size,ierr) 
    3646    CALL MPI_COMM_RANK(intracomm,mpi_rank,ierr) 
    37     PRINT *,"MPI_mpi_comm_split ok --> intracomm"  
     47 
    3848    nb_server_io=global_size-mpi_size 
    3949    div=mpi_size/nb_server_io 
     
    4555      group_color=(nb_server_io-1)-(mpi_size-1-mpi_rank)/div 
    4656    ENDIF 
    47     PRINT *,'group_color',group_color 
    4857 
    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) 
    5059     
    5160    CALL MPI_COMM_SIZE(iocomm,iosize,ierr) 
    5261    CALL MPI_COMM_RANK(iocomm,iorank,ierr) 
    53     PRINT *,"io_size-> ",iosize,"iorank-> ",iorank 
     62 
    5463    ALLOCATE(proc_color(0:iosize-1)) 
    5564    CALL MPI_ALLGATHER(color_client,1,MPI_INTEGER,proc_color,1,MPI_INTEGER,iocomm,ierr) 
    56     print *,"proc_color -> ",proc_color 
    5765     
    5866    DO i=0,iosize-1 
Note: See TracChangeset for help on using the changeset viewer.