Changes between Initial Version and Version 1 of Ticket #747


Ignore:
Timestamp:
Oct 5, 2017 9:12:33 PM (2 years ago)
Author:
arango
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #747

    • Property Status changed from new to closed
    • Property Resolution changed from to Done
  • Ticket #747 – Description

    initial v1  
    1 This update is very important because it includes changes that allow the user to select the most appropriate MPI library routines for ROMS '''distribute.F''' internal message-passing routines: '''mp_assemble''', '''mp_boundary''', '''mp_collect''', and '''mp_reduce'''.  We can either use high-level ('''mpi_allgather''' or '''mpi_allreduce''') or low-level  ('''i_isend''' and '''mpi_irecv''') library routines. In some computers, the low-level routines are more efficient than the high-level routines or vice-versa.  There are proprietary MPI libraries offered by the supercomputer and cluster vendors that are optimized and tuned to the computer architecture resulting in very efficient high-order communication functions.  In the past, we decided for you and selected the communication methodology. In this update, we no longer make such selections and provide the user with several new C-preprocessing options to choose the appropriate methodology for your computer architecture.  The user needs to benchmark their computer(s) and select the most efficient strategy.
     1This update is very important because it includes changes that allow the user to select the most appropriate MPI library routines for ROMS '''distribute.F''' internal message-passing routines: '''mp_assemble''', '''mp_boundary''', '''mp_collect''', and '''mp_reduce'''.  We can either use high-level ('''mpi_allgather''' or '''mpi_allreduce''') or low-level  ('''mpi_isend''' and '''mpi_irecv''') library routines. In some computers, the low-level routines are more efficient than the high-level routines or vice-versa.  There are proprietary MPI libraries offered by the supercomputer and cluster vendors that are optimized and tuned to the computer architecture resulting in very efficient high-order communication routines.  In the past, we decided for you and selected the communication methodology. In this update, we no longer make such selections and provide the user with several new C-preprocessing options to choose the appropriate methodology for your computer architecture.  The user needs to benchmark their computer(s) and select the most efficient strategy.
    22
    33Notice that when '''mpi_allreduce''' is used, a summation reduction is implied. The array data is stored in a global array (same size) in each parallel tile. The global array is initialized to zero always, and then each MPI node only operates on a different portion of it.  Therefore, the computations are carried out by each node; a summation reduction is equivalent to each tile gathering data from other members of the MPI communicator. 
     
    6262}}}
    6363
     64I also I made few changes to several of the NetCDF managing routines to avoid opening too many files.   The routines '''netcdf_check_dim''' and '''netcdf_inq_var''' have an additional optional argument '''ncid''' to pass the NetCDF file ID, so it is not necessary to open a NetCDF file it is already open.
     65
    6466----
    6567