Changeset 153:81888f75e4f8
- Timestamp:
- 03/15/2012 04:02:13 AM (14 months ago)
- Author:
- Andreas Schaefer <gentryx@…>
- Branch:
- default
- Message:
-
- Location:
- src/parallelization
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r148
|
r153
|
|
| 94 | 94 | const Region<DIM> **validRegion) |
| 95 | 95 | { |
| 96 | | *grid = &updateGroup->grid(); |
| 97 | | // fixme: we can't even guarantee this part |
| 98 | | *validRegion = &partitionManager.ownRegion(); |
| | 96 | *grid = currentGrid; |
| | 97 | *validRegion = currentValidRegion; |
| | 98 | } |
| | 99 | |
| | 100 | /** |
| | 101 | * Since HiParSimulator doesn't store any Grid fragments on its |
| | 102 | * own, external objects need to configure the pointers. |
| | 103 | */ |
| | 104 | virtual void setGridFragment( |
| | 105 | const GridType *grid, |
| | 106 | const Region<DIM> *validRegion) |
| | 107 | { |
| | 108 | currentGrid = grid; |
| | 109 | currentValidRegion = validRegion; |
| 99 | 110 | } |
| 100 | 111 | |
| … |
… |
|
| 143 | 154 | typename UpdateGroupType::PatchAccepterVec writerAdaptersGhost; |
| 144 | 155 | typename UpdateGroupType::PatchAccepterVec writerAdaptersInner; |
| | 156 | const GridType *currentGrid; |
| | 157 | const Region<DIM> *currentValidRegion; |
| 145 | 158 | |
| 146 | 159 | SuperVector<long> initialWeights(const long& items, const long& size) const |
-
|
r146
|
r153
|
|
| 45 | 45 | this->requestedNanoSteps.erase_min(); |
| 46 | 46 | |
| 47 | | // fixme: set simulator up to link to correct grid/validRegion |
| | 47 | sim->setGridFragment(&grid, &validRegion); |
| | 48 | |
| 48 | 49 | if (nanoStep == firstNanoStep) { |
| 49 | 50 | writer->initialized(); |
| … |
… |
|
| 55 | 56 | } |
| 56 | 57 | } |
| | 58 | |
| | 59 | // delete the pointers from the Simulator to prevent accesses |
| | 60 | // to stale pointers: |
| | 61 | sim->setGridFragment(0, 0); |
| 57 | 62 | |
| 58 | 63 | reload(); |
-
|
r152
|
r153
|
|
| 113 | 113 | this->mpiLayer.send( |
| 114 | 114 | &this->buffer[0], dest, this->buffer.size(), this->tag, cellMPIDatatype); |
| | 115 | |
| 115 | 116 | long nextNanoStep = this->requestedNanoSteps.min() + this->stride; |
| 116 | 117 | if ((this->lastNanoStep == ENDLESS) || |
| … |
… |
|
| 159 | 160 | long nextNanoStep = this->storedNanoSteps.min() + this->stride; |
| 160 | 161 | if ((this->lastNanoStep == ENDLESS) || |
| 161 | | (nextNanoStep < this->lastNanoStep)) |
| | 162 | (nextNanoStep < this->lastNanoStep)) { |
| 162 | 163 | recv(nextNanoStep); |
| 163 | | // fixme: extract method for this |
| | 164 | } |
| 164 | 165 | this->storedNanoSteps.erase_min(); |
| 165 | 166 | } |
-
|
r152
|
r153
|
|
| 160 | 160 | |
| 161 | 161 | int tag = 4711; |
| 162 | | |
| 163 | | // fixme: once working, use this code to reimplement the |
| 164 | | // update group |
| 165 | 162 | |
| 166 | 163 | SuperVector<MyPatchProviderPtr> providers; |
| … |
… |
|
| 224 | 221 | // let's go |
| 225 | 222 | checkInnerSet(0, 0); |
| 226 | | //fixme: check rim, too |
| | 223 | |
| 227 | 224 | stepper->update(1); |
| 228 | 225 | checkInnerSet(1, 1); |
-
|
r148
|
r153
|
|
| 52 | 52 | |
| 53 | 53 | s->step(); |
| 54 | | s->step(); |
| 55 | | s->step(); |
| | 54 | // s->step(); |
| | 55 | // s->step(); |
| | 56 | std::cout << "-----------got events : " << mockWriter->events() << "\n"; |
| 56 | 57 | } |
| 57 | 58 | |
| … |
… |
|
| 59 | 60 | { |
| 60 | 61 | // std::cout << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"; |
| 61 | | s->run(); |
| | 62 | // s->run(); |
| 62 | 63 | std::cout << "-----------got events : " << mockWriter->events() << "\n"; |
| 63 | 64 | } |