GemmTasksModule Module

This module contains some enumerators which name the tasks for Gemm.


Contents


Enumerations

enum, bind(c)

Enumerators

enumerator:: TaskRunningA = 0

Something is in progress

enumerator:: LocalGatherA = 1

First we gather the blocks of A and send the size.

enumerator:: SendSizeA = 2

After the local gather, we then send the size to the other tasks.

enumerator:: ComposeA = 3

Next we compose those blocks of A into one big send buffer and send.

enumerator:: WaitOuterA = 4

Wait for the outer index values to be gathered.

enumerator:: WaitInnerA = 5

Wait for the inner index values to be gathered.

enumerator:: WaitDataA = 6

Wait for the data values to be gathered,

enumerator:: AdjustIndicesA = 7

Need to adjusts indices, transpose the values of A.

enumerator:: CleanupA = 8

Just waiting on that last task.

enumerator:: FinishedA = 9

No more work to do.

enum, bind(c)

Enumerators

enumerator:: TaskRunningB = 0

Something is in progress

enumerator:: LocalGatherB = 1

First we gather the blocks of B and send the size.

enumerator:: LocalComposeB = 2

Next we compose those blocks of B into one big send buffer and send.

enumerator:: SendSizeB = 3

After the local gather, we then send the size to the other tasks.

enumerator:: WaitOuterB = 4

Wait for the outer index values to be gathered.

enumerator:: WaitInnerB = 5

Wait for the inner index values to be gathered.

enumerator:: WaitDataB = 6

Wait for the data values to be gathered, and then adjusts the indices.

enumerator:: AdjustIndicesB = 7

Need to adjusts indices of B.

enumerator:: CleanupB = 8

Just waiting on that last task.

enumerator:: FinishedB = 9

No more work to do.

enum, bind(c)

Enumerators

enumerator:: TaskRunningAB = 0

Something is in progress.

enumerator:: AwaitingAB = 1

A and B matrix both missing, so it cannot do gemm.

enumerator:: GemmAB = 2

Actually call gemm and compute a block, and send its size.

enumerator:: SendSizeAB = 3

After the local Gemm, we then send the size to the other tasks.

enumerator:: GatherAndSumAB = 4

Start sending the data for summing.

enumerator:: WaitOuterAB = 5

Wait for the outer index values to be gathered.

enumerator:: WaitInnerAB = 6

Wait for the inner index values to be gathered.

enumerator:: WaitDataAB = 7

Wait for the data values to be gathered. Once receive, we increment.

enumerator:: LocalSumAB = 8

Sum up the gathered matrices.

enumerator:: CleanupAB = 9

Just waiting on that last task.

enumerator:: FinishedAB = 10

No more work to do.