


'''simple docstring'''

from __future__ import annotations

def _SCREAMING_SNAKE_CASE   (A						,				A ) -> list[int]:






       """simple docstring"""







       lowercase__       =				{}
       for index, val in enumerate(A ):
              lowercase__       =				target - val
              if compl in chk_map:
                     return [chk_map[compl], index]
              lowercase__       =				index
       return []


if __name__ == "__main__":
 import doctest

 doctest.testmod()
 print(f"""{two_sum([2, 7, 11, 15], 9) = }""")








'''simple docstring'''

import torch

from accelerate import Accelerator, DistributedType
class 						__lowerCAmelCase		:





      '''simple docstring'''






      def __enter__(self					:					List[Any]				):

             '''simple docstring'''







             if self.enabled:
                    lowercase__       =				self.model.no_sync()
                    self.model_sync_obj.__enter__()

             return self



      def __exit__(self					:					List[str]     ,		UpperCamelCase					:					List[Any]     ,		UpperCamelCase					:					Optional[int]     ,		UpperCamelCase					:					Optional[int]				):

             '''simple docstring'''







             if self.enabled:
                    # Average all models on exit
                    self._sync_and_avg_model_params()
                    self.model_sync_obj.__exit__(UpperCamelCase     ,		UpperCamelCase     ,		UpperCamelCase				)



      def __init__(self					:					Dict     ,		UpperCamelCase					:					Accelerator     ,		UpperCamelCase					:					torch.nn.Module     ,		UpperCamelCase					:					int     ,		UpperCamelCase					:					bool = True				):

             '''simple docstring'''







             if accelerator.distributed_type not in [
                 DistributedType.NO,
                 DistributedType.MULTI_CPU,
                 DistributedType.MULTI_GPU,
             ]:
                    raise NotImplementedError('''LocalSGD is supported only for CPUs and GPUs (no DeepSpeed or MegatronLM)'''				)
             lowercase__       =				enabled and accelerator.distributed_type != DistributedType.NO
             lowercase__       =				0
             if self.enabled:
                    lowercase__       =				accelerator
                    lowercase__       =				model
                    lowercase__       =				local_sgd_steps



      def    UpperCamelCase__	(self					:					List[str]				):

             '''simple docstring'''







             self.num_steps += 1
             if not self.enabled:
                    return

             if self.num_steps % self.local_sgd_steps == 0:
                    self._sync_and_avg_model_params()






      def    UpperCamelCase__	(self					:					Any				):

             '''simple docstring'''







             self.accelerator.wait_for_everyone()
             with self.accelerator.autocast():
                    for param in self.model.parameters():
                           lowercase__       =				self.accelerator.reduce(param.data     ,		reduction='''mean'''				)




