00001
00008 #ifndef __HYPERCUBE_TOPOLOGY_H
00009 #define __HYPERCUBE_TOPOLOGY_H
00010
00011 #include "graphrouter.h"
00012 #include "string.h"
00013
00014 class HypercubeTopology: public TopologyDescriptor {
00015 int NumPes, MyPe, Dim;
00016 int *penum, **next;
00017
00018 void CreateStageTable(int, int *);
00019
00020 public:
00021 HypercubeTopology(int npes, int mype);
00022
00023 void getNeighbors(int &npes, int *pelist);
00024 int getNumStages();
00025 int getNumSteps(int stage);
00026 void getPesToSend(int step, int stage, int &npesToSend,
00027 int *pelist, int &nextpe);
00028 int getNumMessagesExpected(int stage);
00029 };
00030
00031 #endif
00032