from dataclasses import dataclass from typing import Tuple @dataclass class Configuration: nodes: int tasks: int gpus_per_node: int blockcount: Tuple[int, int, int] blocksize: Tuple[int, int, int] def get_domain_size(self) -> int: return self.blockcount[0] * self.blocksize[0] * self.blockcount[1] * self.blocksize[1] * self.blockcount[2] * self.blocksize[2] def get_label(self) -> str: return f"t{self.tasks:04}n{self.nodes:03}g{self.gpus_per_node}x{self.blockcount[0]}y{self.blockcount[1]}z{self.blockcount[2]}"