2023-11-25 09:18:56 +00:00
|
|
|
== Step 2-4
|
|
|
|
|
|
|
|
For steps 2-4, I calculated all of each process' outgoing nodes, sorted it in
|
|
|
|
order and used its sorted position as a way to identify which nodes are being
|
|
|
|
sent.
|
|
|
|
|
|
|
|
This saves an extra communication and lets me index the same items for each
|
|
|
|
loop.
|
|
|
|
|
|
|
|
== Step 5
|
|
|
|
|
|
|
|
I exchanged data using the unstructured communication approach, doing an
|
|
|
|
all-to-all transfer.
|
|
|
|
|
|
|
|
To read the result efficiently, I tried using the approach given in the slides.
|
|
|
|
However, this was taking a long time (up to 45 seconds for the 10,000 case) and
|
|
|
|
I tried using STL's `std::map`. This proved to be orders of magnitude faster
|