Document thread metadata in trace spec
This commit is contained in:
		
							parent
							
								
									f34479712a
								
							
						
					
					
						commit
						f02994c149
					
				| @ -3,7 +3,7 @@ | ||||
| !!! Important | ||||
| 
 | ||||
| 	This document refers to the trace specification for | ||||
| 	the version 1 | ||||
| 	the version 2 | ||||
| 
 | ||||
| The ovni instrumentation library stores the information collected in a | ||||
| trace following the specification of this document. | ||||
| @ -19,21 +19,26 @@ specified in the `pid` argument to `ovni_proc_init()`. | ||||
| 
 | ||||
| Each process directory contains: | ||||
| 
 | ||||
| - The metadata file `metadata.json`. | ||||
| - The thread streams like `thread.123.obs`. | ||||
| - The process metadata file `metadata.json`. | ||||
| - The thread streams, composed of: | ||||
|     - The binary stream like `thread.123.obs` | ||||
|     - The thread metadata like `thread.123.json` | ||||
| 
 | ||||
| ## Process metadata | ||||
| 
 | ||||
| The metadata file contains important information about the trace that is | ||||
| invariant during the complete execution, and generally is required to be | ||||
| available prior to processing the events in the trace. | ||||
| !!! Important | ||||
| 
 | ||||
| 	Process metadata has version 2 | ||||
| 
 | ||||
| The process metadata file contains important information about the trace | ||||
| that is invariant during the complete execution, and generally is | ||||
| required to be available prior to processing the events in the trace. | ||||
| 
 | ||||
| The metadata is stored in the JSON file `metadata.json` inside each | ||||
| process directory and contains the following keys: | ||||
| 
 | ||||
| - `version`: a number specifying the version of the metadata format. | ||||
| - `model_version`: a string with the version of each model supported by | ||||
|   the emulator. | ||||
|   Must have the value 2 for this version. | ||||
| - `app_id`: the application ID, used to distinguish between applications | ||||
|   running on the same loom. | ||||
| - `rank`: the rank of the MPI process (optional). | ||||
| @ -49,8 +54,7 @@ Here is an example of the `metadata.json` file: | ||||
| 
 | ||||
| ``` | ||||
| { | ||||
|     "version": 1, | ||||
|     "model_version": "O1 V1 T1 M1 D1 K1", | ||||
|     "version": 2, | ||||
|     "app_id": 1, | ||||
|     "rank": 0, | ||||
|     "nranks": 4, | ||||
| @ -75,7 +79,42 @@ Here is an example of the `metadata.json` file: | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ## Thread streams | ||||
| ## Thread metadata | ||||
| 
 | ||||
| !!! Important | ||||
| 
 | ||||
| 	Thread metadata has version 2 | ||||
| 
 | ||||
| The thread metadata stores constant information per thread, like the | ||||
| process metadata. The information is stored in a dictionary, where the | ||||
| name of the emulation models are used as keys. In particular, the | ||||
| libovni library writes information in the "ovni" key, such as the | ||||
| model requirements, and other information like the version of libovni | ||||
| used. Example: | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|     "version": 2, | ||||
|     "ovni": { | ||||
|         "lib": { | ||||
|             "version": "1.4.0", | ||||
|             "commit": "unknown" | ||||
|         }, | ||||
|         "require": { | ||||
|             "ovni": "1.0.0" | ||||
|         } | ||||
|     } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| The metadata is written to disk when the thread is first initialized, | ||||
| and then every time the thread stream is flushed. | ||||
| 
 | ||||
| ## Thread binary streams | ||||
| 
 | ||||
| !!! Important | ||||
| 
 | ||||
| 	Thread binary stream has version 1 | ||||
| 
 | ||||
| Streams are a binary files that contains a succession of events with | ||||
| monotonically increasing clock values. Streams have a small header and | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user