



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

import torch_xla.distributed.xla_multiprocessing as xmp



def       _lowerCAmelCase			():
					UpperCamelCase_						     =      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=__lowerCamelCase      ,		default=1      ,		help="Number of TPU cores to use (1 or 8).")

					# positional
					parser.add_argument(
					    "training_script"      ,		type=__lowerCamelCase      ,		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=__lowerCamelCase)

					return parser.parse_args()



def       _lowerCAmelCase			():
					UpperCamelCase_						     =      parse_args()

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

					# Patch sys.argv
					UpperCamelCase_						     =      [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()






def 		__A		(	__lowerCamelCase    )      ->       int:
	a										=							hex_num.strip()
	if not hex_num:
		raise ValueError("""No value was passed to the function"""    )

	a										=							hex_num[0] == """-"""
	if is_negative:
		a										=							hex_num[1:]

	try:
		a										=							int(__lowerCamelCase							,			16    )
	except ValueError:
		raise ValueError("""Invalid value was passed to the function"""    )

	a										=							""""""
	while int_num > 0:
		a										=							str(int_num % 2    ) + bin_str
		int_num >>= 1

	return int(("""-""" + bin_str) if is_negative else bin_str    )


if __name__ == "__main__":
		import doctest

		doctest.testmod()

