Skip to content
Snippets Groups Projects
Commit 15bb5892 authored by Christoph Alt's avatar Christoph Alt
Browse files

Merge branch 'devel/fe2ti_postprocessing' into 'main'

Devel/fe2ti postprocessing

See merge request !2
parents 6ebd1b1c 399cc481
No related branches found
No related tags found
1 merge request!2Devel/fe2ti postprocessing
Pipeline #50717 passed
...@@ -8,3 +8,22 @@ def mesa_pd_text(line: str): ...@@ -8,3 +8,22 @@ def mesa_pd_text(line: str):
return m.group(1), float(m.group(2)) return m.group(1), float(m.group(2))
raise ValueError() raise ValueError()
def fe2ti_parse_complete_timing(line: str) -> dict:
if not line.startswith("Abs"):
raise ValueError()
pattern = r'([A-Za-z][A-Za-z _]+):\s*(\d+\.\d+)s\s*'
return {name: float(value) for name, value in re.findall(pattern, line)}
def fe2ti_intermediate(line: str) -> dict:
pattern_step_info = r'([A-Za-z_]+)\s+(\d+)\s*'
step_info = {name: cnt for name, cnt in re.findall(pattern_step_info, line)}
if not step_info:
raise ValueError("Empty Step Info")
pattern_fields = r'\s*([A-za-z_|0-9]+):\s*((\d+\.\d+e-\d+)|(\d+\.\d+)|(\d+))s?\s*'
fields = {name: float(value) for name, value, *_ in re.findall(pattern_fields, line)}
if not fields:
raise ValueError("Empty fields")
return {'step_info': step_info, 'fields': fields}
Zeit bis CP: 2.881715e-04
Zeit für CPable: 3.083187e-08
Zeit für CP1: 2.416709e-08
Zeit für CP2: 2.333400e-08
Zeit für CP3: 3.750029e-08
Zeit bis PetscInit: 8.168460e-02
load_step 00 lll_pen 00 Newton_load 01 Newton_gesamt 01 micro_solve: 46.87s Comm_for_couple: 0.03s Time_for_EV: 0.00s Macro_Solve: 0.52s Assembly_Macro: 0.52s KSP_Macro: 0.00s VecConvert: 0.00s iter_macro: 01 Micro_HDF5: 0.00s Comp_W: 0.00s Ass_Maj: 0.00s Comm_FLC: 0.00s FLC_Comp: 0.00s Ausw_Norm: 0.00s TimeDest: 0.00 DestBDDC: 0.00 SendBDDC: 0.00 CreateArrBDDC: 0.00 BDDC_Part: 0.00s PartAss: 0.00s PartKSP: 0.00s PartConv: 0.00s TimeDefo: 0.00s TimeInt: 0.00s ||delta_u||: 3.054712e-04
FLC: 2.9849864544e-04 -3.9222510640e-05
Minimale Dicke: 9.999220e-01
load_step 00 lll_pen 00 Newton_load 02 Newton_gesamt 02 micro_solve: 36.52s Comm_for_couple: 0.01s Time_for_EV: 0.00s Macro_Solve: 0.65s Assembly_Macro: 0.63s KSP_Macro: 0.00s VecConvert: 0.00s iter_macro: 01 Micro_HDF5: 0.00s Comp_W: 0.01s Ass_Maj: 0.00s Comm_FLC: 0.00s FLC_Comp: 0.00s Ausw_Norm: 0.00s TimeDest: 0.00 DestBDDC: 0.00 SendBDDC: 0.00 CreateArrBDDC: 0.00 BDDC_Part: 0.00s PartAss: 0.00s PartKSP: 0.00s PartConv: 0.00s TimeDefo: 0.00s TimeInt: 0.00s ||delta_u||: 2.521526e-08
2.500000e-04 0.000000e+00 0.000000e+00 0.000000e+00
load_step 01 lll_pen 00 Newton_load 01 Newton_gesamt 03 micro_solve: 35.47s Comm_for_couple: 0.01s Time_for_EV: 0.00s Macro_Solve: 0.58s Assembly_Macro: 0.57s KSP_Macro: 0.00s VecConvert: 0.00s iter_macro: 01 Micro_HDF5: 0.00s Comp_W: 0.00s Ass_Maj: 0.00s Comm_FLC: 0.00s FLC_Comp: 0.00s Ausw_Norm: 0.00s TimeDest: 0.00 DestBDDC: 0.00 SendBDDC: 0.00 CreateArrBDDC: 0.00 BDDC_Part: 0.00s PartAss: 0.00s PartKSP: 0.00s PartConv: 0.00s TimeDefo: 0.00s TimeInt: 0.00s ||delta_u||: 3.032566e-04
FLC: 5.9697701501e-04 -7.8428912665e-05
Minimale Dicke: 9.998440e-01
load_step 01 lll_pen 00 Newton_load 02 Newton_gesamt 04 micro_solve: 36.54s Comm_for_couple: 0.01s Time_for_EV: 0.00s Macro_Solve: 0.59s Assembly_Macro: 0.57s KSP_Macro: 0.00s VecConvert: 0.00s iter_macro: 01 Micro_HDF5: 0.00s Comp_W: 0.00s Ass_Maj: 0.00s Comm_FLC: 0.00s FLC_Comp: 0.00s Ausw_Norm: 0.00s TimeDest: 0.00 DestBDDC: 0.00 SendBDDC: 0.00 CreateArrBDDC: 0.00 BDDC_Part: 0.00s PartAss: 0.00s PartKSP: 0.00s PartConv: 0.00s TimeDefo: 0.00s TimeInt: 0.00s ||delta_u||: 3.159300e-08
2.500000e-04 0.000000e+00 0.000000e+00 0.000000e+00
Gewünschte Eindringung erreicht!
Zeit fuer finalen Checkpoint: 0.00s
Absolut_gesamt: 158.93s Time to solution: 158.85s Create Macro Problem: 0.02s Comm_dup_etc: 0.08s
Zusammenfassung CRAFT:
Load Checkpoint Macro: 0.00s
Load Checkpoint Micro: 0.00s
Load gesamt: 0.00s
Write Checkpoint Macro gesamt: 0.00s
Write Chechkpoint Micro gesamt: 0.00s
Write Checkpoint Final gesamt: 0.00s
Gesamtzeit Write Checkpoints: 0.00s
Gesamtzeit CRAFT (Load + Write): 0.00s
Die Summe ist 1
Test A
from cbutil.postprocessing import process_linewise from cbutil.postprocessing import process_linewise
from cbutil.processing_functions import mesa_pd_text from cbutil.processing_functions import mesa_pd_text, fe2ti_parse_complete_timing, fe2ti_intermediate
from cbutil.util import read_file_line_wise from cbutil.util import read_file_line_wise
import pytest
def id(x): def id(x):
return x return x
...@@ -38,3 +40,71 @@ def test_mesa_pd(): ...@@ -38,3 +40,71 @@ def test_mesa_pd():
for key, value in process_linewise(mesa_pd_text, read_file_line_wise(mesa_pd_example_output)): for key, value in process_linewise(mesa_pd_text, read_file_line_wise(mesa_pd_example_output)):
assert value == expected[key] assert value == expected[key]
TEST_STR_TOTAL = "Absolut_gesamt: 49.09s Time to solution: 48.95s Create Macro Problem: 0.02s Comm_dup_etc: 0.05s"
TEST_STR_INTERMEDIATE = "load_step 00 lll_pen 00 Newton_load 01 Newton_gesamt 01 micro_solve: 15.61s Comm_for_couple: 0.02s Time_for_EV: 0.00s Macro_Solve: 0.56s Assembly_Macro: 0.55s KSP_Macro: 0.00s VecConvert: 0.00s iter_macro: 01 Micro_HDF5: 0.00s Comp_W: 0.00s Ass_Maj: 0.00s Comm_FLC: 0.00s FLC_Comp: 0.00s Ausw_Norm: 0.00s TimeDest: 0.00 DestBDDC: 0.00 SendBDDC: 0.00 CreateArrBDDC: 0.00 BDDC_Part: 0.00s PartAss: 0.00s PartKSP: 0.00s PartConv: 0.00s TimeDefo: 0.01s TimeInt: 0.00s ||delta_u||: 3.054712e-04"
def test_fe2ti():
expected = {
"Absolut_gesamt": 49.09,
"Time to solution": 48.95,
"Create Macro Problem": 0.02,
"Comm_dup_etc": 0.05,
}
assert fe2ti_parse_complete_timing(TEST_STR_TOTAL) == expected
with pytest.raises(ValueError):
fe2ti_parse_complete_timing(TEST_STR_INTERMEDIATE)
def test_fe2ti_intermedate():
expected = {
"step_info": {
"load_step": "00",
"lll_pen": "00",
"Newton_load": "01",
"Newton_gesamt": "01",
},
"fields": {
"micro_solve": 15.61,
"Comm_for_couple": 0.02,
"Time_for_EV": 0.00,
"Macro_Solve": 0.56,
"Assembly_Macro": 0.55,
"KSP_Macro": 0.00,
"VecConvert": 0.00,
"iter_macro": 1.0,
"Micro_HDF5": 0.00,
"Comp_W": 0.00,
"Ass_Maj": 0.00,
"Comm_FLC": 0.00,
"FLC_Comp": 0.00,
"Ausw_Norm": 0.00,
"TimeDest": 0.00,
"DestBDDC": 0.00,
"SendBDDC": 0.00,
"CreateArrBDDC": 0.00,
"BDDC_Part": 0.00,
"PartAss": 0.00,
"PartKSP": 0.00,
"PartConv": 0.00,
"TimeDefo": 0.01,
"TimeInt": 0.00,
"||delta_u||": 3.054712e-04,
},
}
assert fe2ti_intermediate(TEST_STR_INTERMEDIATE) == expected
with pytest.raises(ValueError):
fe2ti_intermediate(TEST_STR_TOTAL)
def test_fe2ti_log():
test_file = "tests/fe2ti216_bddc_0_1_80_8_1e-8.log"
assert [*process_linewise(
lambda line: fe2ti_parse_complete_timing(line.strip()),
read_file_line_wise(test_file))]
assert [*process_linewise(
lambda line: fe2ti_intermediate(line.strip()),
read_file_line_wise(test_file))]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment