Ignore:
Timestamp:
Feb 2, 2012, 1:58:12 PM (14 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
32ff22
Parents:
01be70
Message:

Parallel performance update.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/comm/comm_mpi.hpp

    r01be70 r894a5f  
    2323#include "base/has_tempgrids.hpp"
    2424#include "comm/comm.hpp"
    25 #include "comm/mpi/comm_info.hpp"
     25#include "comm/mpi/settings.hpp"
    2626#include "comm/mpi/has_request_vec.hpp"
    2727
     
    6262  void CommAddSubgrid(Grid& grid_old, Grid& grid_new);
    6363
     64  void CommToGhostsAsyncStart(Grid& grid);
     65  void CommToGhostsAsyncFinish();
     66  void CommFromGhostsAsyncStart(Grid& grid);
     67  void CommFromGhostsAsyncFinish(Grid& grid);
     68
    6469  vmg_float GlobalSum(const vmg_float& value);
    6570  vmg_float GlobalSumRoot(const vmg_float& value);
     
    8590  Index GlobalPos() const;
    8691  Index GlobalProcs() const;
     92
     93  void PostInit(Multigrid& sol, Multigrid& rhs)
     94  {
     95    settings.ComputeSettings(sol, rhs, comm_global);
     96  }
    8797
    8898  virtual void DebugPrintError(const Grid& sol, const char* information) {}
     
    111121  std::string CreateOutputDirectory();
    112122
    113   std::vector<vmg_float> receive_buffer;
    114 
    115   std::map<const Grid*, TempGrid*> finer_grids;
    116   std::map<const Grid*, TempGrid*> coarser_grids;
    117   TempGrid* global_coarse_grid;
    118 
    119   VMG::MPI::CommInfo comm_info;
    120 
    121123  MPI_Comm comm_global;
    122124  bool win_created;
     
    124126  MPI_Info info;
    125127
     128  std::vector< std::vector<vmg_float> > receive_buffer;
     129
    126130protected:
    127   void ReceiveAndAddSubgrid(Grid& grid, const MPI_Comm& comm, MPI_Datatype& type,
    128                             const int& rank, const int& tag);
     131  void Isend(Grid& grid, VMG::MPI::Datatype& type, const MPI_Comm& comm, const int& tag);
     132  void IsendAll(Grid& grid, std::vector<VMG::MPI::Datatype>& types, const MPI_Comm& comm, const int& tag_start);
     133  void Irecv(Grid& grid, VMG::MPI::Datatype& type, const MPI_Comm& comm, const int& tag);
     134  void IrecvAll(Grid& grid, std::vector<VMG::MPI::Datatype>& types, const MPI_Comm& comm, const int& tag_start);
     135  void IrecvAllBuffered(std::vector<VMG::MPI::Datatype>& types, const MPI_Comm& comm, const int& tag_start);
     136  void AddBufferAll(Grid& grid, std::vector<VMG::MPI::Datatype>& types);
     137
     138  VMG::MPI::Settings settings;
    129139};
    130140
Note: See TracChangeset for help on using the changeset viewer.