class_docstr: Strategy Compiler.
  
  Currently, this just entails resolving device attributes,
  but this can be easily modified to do more in the future.
code: def _resolve_reduction_destination(self, node):
      synchronizer = getattr(node, node.WhichOneof("synchronizer"))
      if hasattr(synchronizer, "reduction_destination"):
          d = synchronizer.reduction_destination
          synchronizer.reduction_destination = self._device_resolver(d)
  
imports: import os
  from abc import ABC, abstractmethod
  from datetime import datetime
  from autodist.const import DEFAULT_SERIALIZATION_DIR
  from autodist.graph_item import GraphItem
  from autodist.kernel.common.utils import get_op_name
  from autodist.proto import strategy_pb2
  from autodist.resource_spec import ResourceSpec
label_desc: Use image node_id 3 for calling the StrategyCompiler obj's underlying member method code with example usage: obj._resolve_reduction_destination(node) without return types