




import importlib
import sys
from argparse import REMAINDER, ArgumentParser
from pathlib import Path

import torch_xla.distributed.xla_multiprocessing as xmp





def      UpperCAmelCase  (						)     ->     List[str]:







				'''simple docstring'''


				__lowerCAmelCase					=  ArgumentParser(
				    description=(
				        """PyTorch TPU distributed training launch helper utility that will spawn up multiple distributed processes"""
				    )   )

				# Optional arguments for the launch helper
				parser.add_argument("""--num_cores"""						,			type=UpperCamelCase__						,			default=1						,			help="""Number of TPU cores to use (1 or 8)."""   )

				# positional
				parser.add_argument(
				    """training_script"""						,			type=UpperCamelCase__						,			help=(
				        """The full path to the single TPU training """
				        """program/script to be launched in parallel, """
				        """followed by all the arguments for the """
				        """training script"""
				    )						,			)

				# rest from the training program
				parser.add_argument("""training_script_args"""						,			nargs=UpperCamelCase__   )

				return parser.parse_args()





def      UpperCAmelCase  (						)     ->     Dict:







				'''simple docstring'''


				__lowerCAmelCase					=  parse_args()

				# Import training_script as a module.
				__lowerCAmelCase					=  Path(args.training_script   )
				sys.path.append(str(script_fpath.parent.resolve()   )   )
				__lowerCAmelCase					=  script_fpath.stem
				__lowerCAmelCase					=  importlib.import_module(UpperCamelCase__   )

				# Patch sys.argv
				__lowerCAmelCase					=  [args.training_script] + args.training_script_args + ["""--tpu_num_cores""", str(args.num_cores   )]

				xmp.spawn(mod._mp_fn						,			args=()						,			nprocs=args.num_cores   )


if __name__ == "__main__":
	main()












'''simple docstring'''

def  _a     (				lowerCAmelCase_ = 4_000_000						):





      """simple docstring"""



      _snake_case		:						Optional[int]         =  1
      _snake_case		:						Tuple         =  2
      _snake_case		:						Optional[Any]         =  0
      while j <= n:
            if j % 2 == 0:
                  total += j
            _snake_case  ,				_snake_case		:						str         =  j, i + j

      return total


if __name__ == "__main__":
   print(F"""{solution() = }""")


