Document environment variables
This commit is contained in:
		
							parent
							
								
									ea77f3d72e
								
							
						
					
					
						commit
						6c33a2f4c0
					
				
							
								
								
									
										56
									
								
								doc/user/runtime/env.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								doc/user/runtime/env.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | |||||||
|  | # Environment variables | ||||||
|  | 
 | ||||||
|  | Some environment variables can be used to adjust settings during the execution | ||||||
|  | of libovni, they all begin with the `OVNI_` prefix. Be sure that all threads of | ||||||
|  | the same node use the same environment variables. | ||||||
|  | 
 | ||||||
|  | ## OVNI_TMPDIR | ||||||
|  | 
 | ||||||
|  | During the execution of your program, a per-thread buffer is kept where the new | ||||||
|  | events are being recorded. When this buffer is full, it is written to disk and | ||||||
|  | emptied, an operation known as flush. This may take a while depending on the | ||||||
|  | underliying filesystem. | ||||||
|  | 
 | ||||||
|  | Keep in mind that the thread will be blocked until the flush ends, so if your | ||||||
|  | filesystem is slow it would interrupt the execution of your program for a long | ||||||
|  | time. It is advisable to use the fastest filesystem available (see the tmpfs(5) | ||||||
|  | and df(1) manual pages). | ||||||
|  | 
 | ||||||
|  | You can select a temporary trace directory where the buffers will be flushed | ||||||
|  | during the execution by setting the environment variable `OVNI_TMPDIR`. The last | ||||||
|  | directory will be created if doesn't exist. In that case, as soon as a process | ||||||
|  | calls `ovni_proc_fini()`, the traces of all its threads will be moved to the | ||||||
|  | final directory at `$PWD/ovni`. Example: | ||||||
|  | 
 | ||||||
|  | 	OVNI_TMPDIR=$(mktemp -u /dev/shm/ovni.XXXXXX) srun ./your-app | ||||||
|  | 
 | ||||||
|  | To test the different filesystem speeds, you can use hyperfine and dd. Take a | ||||||
|  | closer look at the max time: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | $ hyperfine 'dd if=/dev/zero of=/gpfs/projects/bsc15/bsc15557/kk bs=2M count=10' | ||||||
|  | Benchmark 1: dd if=/dev/zero of=/gpfs/projects/bsc15/bsc15557/kk bs=2M count=10 | ||||||
|  |   Time (mean ± σ):      71.7 ms ± 130.4 ms    [User: 0.8 ms, System: 10.2 ms] | ||||||
|  |   Range (min … max):    14.7 ms … 1113.2 ms    162 runs | ||||||
|  |   | ||||||
|  |   Warning: Statistical outliers were detected. Consider re-running this | ||||||
|  |   benchmark on a quiet PC without any interferences from other programs. It | ||||||
|  |   might help to use the '--warmup' or '--prepare' options. | ||||||
|  | 
 | ||||||
|  | $ hyperfine 'dd if=/dev/zero of=/tmp/kk bs=2M count=10' | ||||||
|  | Benchmark 1: dd if=/dev/zero of=/tmp/kk bs=2M count=10 | ||||||
|  |   Time (mean ± σ):      56.2 ms ±   5.7 ms    [User: 0.6 ms, System: 14.8 ms] | ||||||
|  |   Range (min … max):    45.8 ms …  77.8 ms    63 runs | ||||||
|  |   | ||||||
|  | $ hyperfine 'dd if=/dev/zero of=/dev/shm/kk bs=2M count=10' | ||||||
|  | Benchmark 1: dd if=/dev/zero of=/dev/shm/kk bs=2M count=10 | ||||||
|  |   Time (mean ± σ):      11.4 ms ±   0.4 ms    [User: 0.5 ms, System: 11.1 ms] | ||||||
|  |   Range (min … max):     9.7 ms …  12.5 ms    269 runs | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## OVNI_TRACEDIR | ||||||
|  | 
 | ||||||
|  | By default, the runtime trace will be placed in the `ovni` directory, inside the | ||||||
|  | working directory. You can specify a different location to place the trace by | ||||||
|  | setting the `OVNI_TRACEDIR` environment variable. It accepts a relative or | ||||||
|  | absolute path, which will be created if it doesn't exist. | ||||||
| @ -29,6 +29,7 @@ nav: | |||||||
|       - user/concepts/trace-model.md |       - user/concepts/trace-model.md | ||||||
|     - 'Runtime': |     - 'Runtime': | ||||||
|       - user/runtime/index.md |       - user/runtime/index.md | ||||||
|  |       - user/runtime/env.md | ||||||
|       - user/runtime/mark.md |       - user/runtime/mark.md | ||||||
|       - user/runtime/distributed.md |       - user/runtime/distributed.md | ||||||
|       - user/runtime/kernel.md |       - user/runtime/kernel.md | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user