|
|
# LinkTest SIONlib File Format
|
|
|
LinkTest SION files consist of three components:
|
|
|
1. A File Header
|
|
|
2. Data Chunks Per Rank
|
... | ... | @@ -19,7 +18,7 @@ File Footer |
|
|
|
|
|
In the following we will describe the binary structure of each of the different components of the file.
|
|
|
|
|
|
## File Header
|
|
|
# File Header
|
|
|
| Name | ID |Start [B] | End [B] | Size [B] | Fixed Value | Description |
|
|
|
|-------------------------|----|----------|---------|----------|---------------|---------------------|
|
|
|
| SIONlib Header | | 0 | 0+a | a | | SIONlib file header |
|
... | ... | @@ -54,20 +53,20 @@ In the following we will describe the binary structure of each of the different |
|
|
| Task Radomization Seed | | 139+a+b |147+a+b | 8 | | The 64-bit seed used for task randomization. |
|
|
|
|
|
|
|
|
|
## Data Chunk
|
|
|
# Data Chunk
|
|
|
Each Data Chunk consists of a small header, which indicate where the rank ran. This is followed by the main data section which contains the timing data and additional aggregated data in the case of Rank 0. Finally a tiny footer indicates the end of the chunk.
|
|
|
|
|
|
### Data Chunk Header
|
|
|
## Data Chunk Header
|
|
|
Each Data Chunk start with a small header indicate where the rank ran. For the non-zero ranks this is started with the "LKTST" ID-String.
|
|
|
|
|
|
#### Rank 0
|
|
|
### Rank 0
|
|
|
| Name | ID |Start [B] | End [B] | Size [B] | Description |
|
|
|
|-------------------------|----|----------|---------|----------|-----------------------------------------------------------|
|
|
|
| Hostname Length | d | 0 | 4 | 4 | Length of the hostname on which the rank ran. |
|
|
|
| Hostname | | 4 | 4+d | d | The null-terminated ASCII hostname on which the rank ran. |
|
|
|
| Core ID | | 4+d | 8+d | 4 | 32-bit integer indicating the core on which the rank ran. |
|
|
|
|
|
|
#### Non-Zero Rank
|
|
|
### Non-Zero Rank
|
|
|
| Name | ID |Start [B] | End [B] | Size [B] | Description |
|
|
|
|-------------------------|----|----------|---------|----------|-----------------------------------------------------------|
|
|
|
| LinkTest ID String | | 0 | 5 | 5 | LinkTest "LKTST" ASCII-character tag. |
|
... | ... | @@ -76,10 +75,10 @@ Each Data Chunk start with a small header indicate where the rank ran. For the n |
|
|
| Core ID | | 9+d | 13+d | 4 | 32-bit integer indicating the core on which the rank ran. |
|
|
|
|
|
|
|
|
|
### Data Chunk Data
|
|
|
## Data Chunk Data
|
|
|
After the Data Chunk header comes the recorded timing data, with rank 0 including additional aggregated data. If multiple randomized permutations of the ranks are used then the recorded timing data of each permuation follow directly after each other. Let us first present the table for rank 0 and then the table for the other ranks.
|
|
|
|
|
|
#### Rank 0
|
|
|
### Rank 0
|
|
|
| Name | Start [B] | End [B] | Size [B] | Logical Expression | Description |
|
|
|
|-------------------------|-----------------------|-----------------------|----------|--------------------|---------------------|
|
|
|
| Start Time | 8+d | 40+d | 32 | | Null-terminated ASCII character array stating the time when this test started. |
|
... | ... | @@ -98,14 +97,14 @@ After the Data Chunk header comes the recorded timing data, with rank 0 includin |
|
|
| Slow Receiving Partners | 64+d+3e+16(N-1)+f+24c | 64+d+3e+16(N-1)+f+32c | 8c | | Rank of the partner that was on the receiving end of the connections for the slow timings. |
|
|
|
| End Time | 64+d+3e+16(N-1)+f+32c | 96+d+3e+16(N-1)+f+32c | 32 | | Null-terminated ASCII character array stating the time when this test finished. |
|
|
|
|
|
|
#### Non-Zero Rank
|
|
|
### Non-Zero Rank
|
|
|
| Name | Start [B] | End [B] | Size [B] | Logical Expression | Description |
|
|
|
|-------------------|-----------|-----------|----------|--------------------|---------------------|
|
|
|
| Timing Data | 0 | 8(N-1) | 8(N-1) | | Recorded timing data for the rank as an array of double-precision numbers. |
|
|
|
| Access Pattern | 8(n-1) | 16(N-1) | 8(N-1) | | Access pattern for generating the recorded data for the rank as an array of 64-bit unsigned integers. |
|
|
|
| All-To-All Timing | 16(N-1) | 16(N-1)+f | f | If A: f=8 else f=0 | Recorded all-to-all time for the rank as a double-precision number. |
|
|
|
|
|
|
### Data Chunk Footer
|
|
|
## Data Chunk Footer
|
|
|
Each Data Chunk end with an "END_BLOCK" for alignment purposes.
|
|
|
| Name | Start [B] | End [B] | Size [B] | Description |
|
|
|
|-------------------|-----------|-----------|----------|-----------------------------------------------------------|
|
... | ... | |