LAMA
|
00001 00033 #ifndef LAMA_PGASCHECKINTERFACE_HPP_ 00034 #define LAMA_PGASCHECKINTERFACE_HPP_ 00035 00036 #include <lama/pgas/PGASInterface.hpp> 00037 00038 namespace lama{ 00039 class PGASCheckInterface: public PGASInterface 00040 { 00041 public: 00042 virtual void* allocate(size_t size) const; 00043 virtual void free(void* ptr, const size_t size) const; 00044 virtual void syncronizeAll() const; 00045 virtual bool isPinned(const void* const ptr) const; 00046 virtual PGASSyncToken* getSyncToken(int arg1) const; 00047 00048 virtual PGASCommunicationKind getPreferredCommunicationKind() const; 00049 00050 virtual void get(void* dst, const void* src, size_t length, int srcpe) const; 00051 virtual void put(void* dst, const void* src, size_t length, int srcpe) const; 00052 00053 virtual PartitionId getRank() const; 00054 virtual PartitionId getSize() const; 00055 00056 virtual std::auto_ptr<SyncToken> getAsync(void* dst, const void* src, size_t length, int srcPE) const; 00057 virtual std::auto_ptr<SyncToken> putAsync(void* dst, const void* src, size_t length, int srcPE) const; 00058 00059 virtual std::auto_ptr<SyncToken> shift(void* dst, const void* src, size_t size, PartitionId destRank, 00060 PartitionId srcRank) const; 00061 00062 virtual std::auto_ptr<SyncToken> broadcast(void* dst, const void* src, size_t length, int srcPE) const; 00063 virtual std::auto_ptr<SyncToken> all2all(void* dst, const void* src, size_t elemSize) const; 00064 00065 virtual void swap( void* val, const size_t n, const PartitionId partner ) const; 00066 00067 virtual void scatter ( void* myvals, const size_t partSize, const PartitionId root, const void* allvals ) const; 00068 00069 virtual void scatter ( void* myvals, const size_t elemSize, const PartitionId root, 00070 const void* allvals, const IndexType sizes[] ) const; 00071 00072 virtual void gather ( void* allvals, const size_t partSize, const PartitionId root, const void* myvals ) const; 00073 00074 virtual void gather ( void* allvals, const size_t elemSize, const PartitionId root, 00075 const void* myvals, const IndexType sizes[] ) const; 00076 PGASCheckInterface(PGASInterface* interface); 00077 virtual ~PGASCheckInterface(); 00078 private: 00079 virtual void writeAt( std::ostream& stream ) const; 00080 std::auto_ptr<PGASInterface> mInterface; 00081 }; 00082 } 00083 00084 #endif // LAMA_PGASCHECKINTERFACE_HPP_