|
6 | 6 | import importlib
|
7 | 7 | import yaml
|
8 | 8 |
|
9 |
| -import vttv |
| 9 | +try: |
| 10 | + import vttv |
| 11 | + using_vttv = True |
| 12 | +except ModuleNotFoundError: |
| 13 | + using_vttv = False |
10 | 14 |
|
11 | 15 | # pylint:disable=C0413:wrong-import-position
|
12 | 16 | # Use lbaf module from source if lbaf package is not installed
|
@@ -572,33 +576,34 @@ def run(self):
|
572 | 576 | ]
|
573 | 577 |
|
574 | 578 | # Call vttv visualization
|
575 |
| - self.__logger.info("Calling vt-tv") |
576 |
| - |
577 |
| - # Serialize data to JSON-formatted string |
578 |
| - self.__rank_phases = {} |
579 |
| - for p in phases.values(): |
580 |
| - for r in p.get_ranks(): |
581 |
| - self.__rank_phases.setdefault(r.get_id(), {}) |
582 |
| - self.__rank_phases[r.get_id()][p.get_id()] = r |
583 |
| - |
584 |
| - ranks_json_str = [] |
585 |
| - for i in range(len(self.__rank_phases.items())): |
586 |
| - ranks_json_str.append(self.__json_writer._json_serializer((i, self.__rank_phases[i]))) |
587 |
| - |
588 |
| - vttv_params = { |
589 |
| - "x_ranks": self.__parameters.grid_size[0], |
590 |
| - "y_ranks": self.__parameters.grid_size[1], |
591 |
| - "z_ranks": self.__parameters.grid_size[2], |
592 |
| - "object_jitter": self.__parameters.object_jitter, |
593 |
| - "rank_qoi": self.__parameters.rank_qoi, |
594 |
| - "object_qoi": self.__parameters.object_qoi, |
595 |
| - "save_meshes": self.__parameters.save_meshes, |
596 |
| - "force_continuous_object_qoi": self.__parameters.continuous_object_qoi, |
597 |
| - "output_visualization_dir": self.__parameters.output_dir, |
598 |
| - "output_visualization_file_stem": self.__parameters.output_file_stem |
599 |
| - } |
600 |
| - num_ranks = self.__parameters.grid_size[0] * self.__parameters.grid_size[1] * self.__parameters.grid_size[2] |
601 |
| - vttv.tv_from_json(ranks_json_str, str(vttv_params), num_ranks) |
| 579 | + if using_vttv: |
| 580 | + self.__logger.info("Calling vt-tv") |
| 581 | + |
| 582 | + # Serialize data to JSON-formatted string |
| 583 | + self.__rank_phases = {} |
| 584 | + for p in phases.values(): |
| 585 | + for r in p.get_ranks(): |
| 586 | + self.__rank_phases.setdefault(r.get_id(), {}) |
| 587 | + self.__rank_phases[r.get_id()][p.get_id()] = r |
| 588 | + |
| 589 | + ranks_json_str = [] |
| 590 | + for i in range(len(self.__rank_phases.items())): |
| 591 | + ranks_json_str.append(self.__json_writer._json_serializer((i, self.__rank_phases[i]))) |
| 592 | + |
| 593 | + vttv_params = { |
| 594 | + "x_ranks": self.__parameters.grid_size[0], |
| 595 | + "y_ranks": self.__parameters.grid_size[1], |
| 596 | + "z_ranks": self.__parameters.grid_size[2], |
| 597 | + "object_jitter": self.__parameters.object_jitter, |
| 598 | + "rank_qoi": self.__parameters.rank_qoi, |
| 599 | + "object_qoi": self.__parameters.object_qoi, |
| 600 | + "save_meshes": self.__parameters.save_meshes, |
| 601 | + "force_continuous_object_qoi": self.__parameters.continuous_object_qoi, |
| 602 | + "output_visualization_dir": self.__parameters.output_dir, |
| 603 | + "output_visualization_file_stem": self.__parameters.output_file_stem |
| 604 | + } |
| 605 | + num_ranks = self.__parameters.grid_size[0] * self.__parameters.grid_size[1] * self.__parameters.grid_size[2] |
| 606 | + vttv.tvFromJson(ranks_json_str, str(vttv_params), num_ranks) |
602 | 607 |
|
603 | 608 | # Report on rebalanced phase when available
|
604 | 609 | if rebalanced_phase:
|
|
0 commit comments