JuliaGeodynamics / LaMEM.jl

Julia interface to LaMEM (Lithosphere and Mantle Evolution Model)
GNU General Public License v3.0
24 stars 12 forks source link

Read LaMEM logfiles #37

Closed boriskaus closed 5 months ago

boriskaus commented 5 months ago

This PR provides the function read_LaMEM_logfile that simplifies reading LaMEM logfiles on HPC machines and returns a Markdown table.

Example:

julia> read_LaMEM_logfile(["128_cores_104812.txt", "128_cores_104842.txt","128_cores_104843.txt","128_cores_104844.txt", "128_cores_104815.txt","128_cores_104814.txt","256_cores_104819.txt","256_cores_104820.txt","512_cores_104823.txt","512_cores_104822.txt","512_cores_104846.txt","1024_cores_104841.txt"]);
| FineGrid        | Cores | Nodes | CoarseGrid   | CoaCores | Levels | SNES | KSP | TotalTime | CoarseTime | MemoryNode_Gb | Filename             | 
| --------------- | ----- | ----- | ------------ | -------- | ------ | ---- | --- | --------- | ---------- | ------------- | -------------------- | 
| [256, 128, 128] | 128   | 1     | [32, 16, 16] | 64       | 4      | 1    | 49  | 14.61     | 4.2307     | 42.03         | 128_cores_104812.txt | 
| [256, 128, 128] | 128   | 1     | [32, 16, 16] | 128      | 4      | 1    | 49  | 13.25     | 3.9504     | 41.49         | 128_cores_104842.txt | 
| [256, 128, 128] | 128   | 1     | [32, 16, 16] | 16       | 4      | 1    | 49  | 12.64     | 3.7994     | 49.35         | 128_cores_104843.txt | 
| [256, 128, 128] | 128   | 1     | [32, 16, 16] | 4        | 4      | 1    | 49  | 16.95     | 7.2039     | 68.45         | 128_cores_104844.txt | 
| [256, 256, 128] | 128   | 1     | [16, 16, 8]  | 128      | 5      | 1    | 63  | 17.72     | 0.62345    | 63.72         | 128_cores_104815.txt | 
| [256, 256, 128] | 128   | 1     | [32, 32, 16] | 128      | 4      | 1    | 49  | 31.7      | 11.626     | 172.3         | 128_cores_104814.txt | 
| [256, 256, 256] | 256   | 2     | [32, 32, 32] | 256      | 4      | 1    | 49  | 49.58     | 30.827     | 186.02        | 256_cores_104819.txt | 
| [256, 256, 256] | 256   | 2     | [16, 16, 16] | 256      | 5      | 1    | 81  | 24.07     | 4.778      | 178.07        | 256_cores_104820.txt | 
| [512, 256, 256] | 512   | 4     | [32, 16, 16] | 512      | 5      | 1    | 72  | 25.9      | 9.8504     | 187.6325      | 512_cores_104823.txt | 
| [512, 256, 256] | 512   | 4     | [32, 16, 16] | 512      | 5      | 1    | 72  | 26.26     | 9.9174     | 186.99        | 512_cores_104822.txt | 
| [512, 256, 128] | 512   | 4     | [32, 16, 8]  | 16       | 5      | 1    | 72  | 10.2      | 1.2076     | 39.135        | 512_cores_104846.txt | 
| [512, 256, 256] | 1024  | 8     | [32, 16, 16] | 128      | 5      | 1    | 72  | 11.22     | 2.1441     | 45.195        | 1024_cores_104841.txt |

This is mostly useful when performing scalability tests with the code. The slum log number should be part of the filename (as we use seff to extract memory usage).