code: def rate(self, plan: List[ShardingOption]) -> float:
      perfs = [0] * self._topology.world_size
      for sharding_option in plan:
          for shard in sharding_option.shards:
              # pyre-ignore [6]: Expected `typing_extensions.SupportsIndex`
              perfs[shard.rank] += cast(Perf, shard.perf).total
  
      return max(perfs)
  
imports: from typing import cast, List
  from torchrec.distributed.planner.types import Perf, PerfModel, ShardingOption, Topology
label_desc: Use image node_id 2 for calling the NoopPerfModel obj's underlying member method code with example usage: obj.rate(plan) and returns: max