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. |
| 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 ('''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. |