DARMA-tasking / LB-analysis-framework

Analysis framework for exploring, testing, and comparing load balancing strategies
Other
3 stars 1 forks source link

Runtime error with new VT reader for user defined toy problem #493

Closed ppebay closed 5 months ago

ppebay commented 5 months ago

Step to reproduce: From develop current head:

~/Documents/Git/LB-analysis-framework/src/lbaf/Applications$ python LBAF_app.py  -c user-defined-memory-toy-problem.yaml

Full output log:

[LBAF_app] Found configuration file at path /Users/pppebay/Documents/Git/LB-analysis-framework/config/global.yaml
[LBAF_app] Found configuration file at path /Users/pppebay/Documents/Git/LB-analysis-framework/config/user-defined-memory-toy-problem.yaml
[LBAF_app] Logging level: info
[lbsConfigurationValidator] Skeleton schema is valid
[lbsConfigurationValidator] Reading from data was chosen
[lbsConfigurationValidator] from_data schema is valid
[lbsConfigurationValidator] Checking algorithm schema of: {'name': 'InformAndTransfer', 'phase_id': 0, 'parameters': {'n_iterations': 4, 'n_rounds': 2, 'fanout': 2, 'order_strategy': 'arbitrary', 'transfer_strategy': 'Clustering', 'criterion': 'Tempered', 'max_objects_per_transfer': 32, 'deterministic_transfer': True}}
[lbsConfigurationValidator] Algorithm: {'name': 'InformAndTransfer', 'phase_id': 0, 'parameters': {'n_iterations': 4, 'n_rounds': 2, 'fanout': 2, 'order_strategy': 'arbitrary', 'transfer_strategy': 'Clustering', 'criterion': 'Tempered', 'max_objects_per_transfer': 32, 'deterministic_transfer': True}} schema is valid
[LBAF_app] Data stem: /Users/pppebay/Documents/Git/LB-analysis-framework/data/user-defined-memory-toy-problem/toy_mem
[LBAF_app] Executing LBAF version 1.0.2
[LBAF_app] Executing with Python 3.8.18
[lbsJSONDataFilesValidatorLoader] Overwrite JSON data files validator
[lbsWeb] Retrieve JSON data files validator at https://raw.githubusercontent.com/DARMA-tasking/vt/develop/scripts/JSON_data_files_validator.py
[lbsWeb] Saved JSON data files validator to: /Users/pppebay/Documents/Git/LB-analysis-framework/src/lbaf/imported/JSON_data_files_validator.py
[lbsVTDataReader] Number of ranks: 4
[lbsVTDataReader] Reading /Users/pppebay/Documents/Git/LB-analysis-framework/data/user-defined-memory-toy-problem/toy_mem.0.json
[lbsVTDataReader] Reading /Users/pppebay/Documents/Git/LB-analysis-framework/data/user-defined-memory-toy-problem/toy_mem.1.json
[lbsVTDataReader] Reading /Users/pppebay/Documents/Git/LB-analysis-framework/data/user-defined-memory-toy-problem/toy_mem.2.json
[lbsVTDataReader] Reading /Users/pppebay/Documents/Git/LB-analysis-framework/data/user-defined-memory-toy-problem/toy_mem.3.json
[lbsPhase] Instantiating phase 0
Traceback (most recent call last):
  File "LBAF_app.py", line 605, in <module>
    LBAFApplication().run()
  File "LBAF_app.py", line 476, in run
    phase.populate_from_log(phase_id)
  File "/Users/pppebay/Documents/Git/LB-analysis-framework/src/lbaf/Model/lbsPhase.py", line 396, in populate_from_log
    self.__ranks, self.__communications = self.__reader.populate_phase(phase_id)
  File "/Users/pppebay/Documents/Git/LB-analysis-framework/src/lbaf/IO/lbsVTDataReader.py", line 342, in populate_phase
    return ranks, self.__communications_dict[phase_id]
KeyError: 0

N.B.: When running the same from commit c49362134c701029e5b7bc35324f72c2408d6ae8, no problem occurs.