Changeset b51c3b for src/comm


Ignore:
Timestamp:
Apr 24, 2012, 3:38:21 PM (14 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
a150d0
Parents:
716da7
Message:

Minor changes to vmg.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1733 5161e1c8-67bf-11de-9fd5-51895aff932f

Location:
src/comm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/comm/comm.hpp

    r716da7 rb51c3b  
    7272  virtual void GlobalSumArray(vmg_int* array, const vmg_int& size) {}
    7373
     74  virtual vmg_float GlobalMax(const vmg_float& value) {return value;}
     75  virtual vmg_float GlobalMaxRoot(const vmg_float& value) {return value;}
     76  virtual void GlobalMaxArray(vmg_float* array, const vmg_int& size) {}
     77
     78  virtual vmg_int GlobalMax(const vmg_int& value) {return value;}
     79  virtual vmg_int GlobalMaxRoot(const vmg_int& value) {return value;}
     80  virtual void GlobalMaxArray(vmg_int* array, const vmg_int& size) {}
     81
    7482  virtual vmg_float LevelSum(const Grid& grid, const vmg_float& value) {return value;}
    7583  virtual vmg_float LevelSumRoot(const Grid& grid, const vmg_float& value) {return value;}
  • src/comm/comm_mpi.cpp

    r716da7 rb51c3b  
    513513{
    514514  MPI_Allreduce(MPI_IN_PLACE, array, size, MPI_INT, MPI_SUM, comm_global);
     515}
     516
     517vmg_float CommMPI::GlobalMax(const vmg_float& value)
     518{
     519  vmg_float result = value;
     520  MPI_Allreduce(MPI_IN_PLACE, &result, 1, MPI_DOUBLE, MPI_MAX, comm_global);
     521  return result;
     522}
     523
     524vmg_float CommMPI::GlobalMaxRoot(const vmg_float& value)
     525{
     526  vmg_float recv_buffer = value;
     527  vmg_float send_buffer = value;
     528  MPI_Reduce(&send_buffer, &recv_buffer, 1, MPI_DOUBLE, MPI_MAX, 0, comm_global);
     529  return recv_buffer;
     530}
     531
     532void CommMPI::GlobalMaxArray(vmg_float* array, const vmg_int& size)
     533{
     534  MPI_Allreduce(MPI_IN_PLACE, array, size, MPI_DOUBLE, MPI_MAX, comm_global);
     535}
     536
     537vmg_int CommMPI::GlobalMax(const vmg_int& value)
     538{
     539  vmg_int result = value;
     540  MPI_Allreduce(MPI_IN_PLACE, &result, 1, MPI_INT, MPI_MAX, comm_global);
     541  return result;
     542}
     543
     544vmg_int CommMPI::GlobalMaxRoot(const vmg_int& value)
     545{
     546  vmg_int recv_buffer = value;
     547  vmg_int send_buffer = value;
     548  MPI_Reduce(&send_buffer, &recv_buffer, 1, MPI_INT, MPI_MAX, 0, comm_global);
     549  return recv_buffer;
     550}
     551
     552void CommMPI::GlobalMaxArray(vmg_int* array, const vmg_int& size)
     553{
     554  MPI_Allreduce(MPI_IN_PLACE, array, size, MPI_INT, MPI_MAX, comm_global);
    515555}
    516556
  • src/comm/comm_mpi.hpp

    r716da7 rb51c3b  
    7676  vmg_int GlobalSumRoot(const vmg_int& value);
    7777  void GlobalSumArray(vmg_int* array, const vmg_int& size);
     78
     79  vmg_float GlobalMax(const vmg_float& value);
     80  vmg_float GlobalMaxRoot(const vmg_float& value);
     81  void GlobalMaxArray(vmg_float* array, const vmg_int& size);
     82
     83  vmg_int GlobalMax(const vmg_int& value);
     84  vmg_int GlobalMaxRoot(const vmg_int& value);
     85  void GlobalMaxArray(vmg_int* array, const vmg_int& size);
    7886
    7987  vmg_float LevelSum(const Grid& grid, const vmg_float& value);
Note: See TracChangeset for help on using the changeset viewer.