



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

import torch_xla.distributed.xla_multiprocessing as xmp


def 		_UpperCAmelCase				(      ):





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

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

					return parser.parse_args()


def 		_UpperCAmelCase				(      ):





					"""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(snake_case			)

					# 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()






import math


def   __SCREAMING_SNAKE_CASE					(SCREAMING_SNAKE_CASE__  ,		SCREAMING_SNAKE_CASE__       ):
						if 0 not in (x, y):
												# We use the relation x^y = y*log10(x), where 10 is the base.
												return y * math.logaa(SCREAMING_SNAKE_CASE__       )
						else:
												if x == 0:  # 0 raised to any number is 0
																		return 0
												elif y == 0:
																		return 1  # any number raised to 0 is 1
						raise AssertionError('''This should never happen'''       )


if __name__ == "__main__":  # Main function
					# Read two numbers from input and typecast them to int using map function.
					# Here x is the base and y is the power.
					lowerCAmelCase_       	=	'''Enter the base and the power separated by a comma: '''
					lowerCAmelCase_	,      lowerCAmelCase_       	=	map(int, input(prompt).split(''','''))
					lowerCAmelCase_	,      lowerCAmelCase_       	=	map(int, input(prompt).split(''','''))

					# We find the log of each number, using the function res(), which takes two
					# arguments.
					lowerCAmelCase_       	=	res(xa, ya)
					lowerCAmelCase_       	=	res(xa, ya)

					# We check for the largest number
					if resa > resa:
										print('''Largest number is''', xa, '''^''', ya)
					elif resa > resa:
										print('''Largest number is''', xa, '''^''', ya)
					else:
										print('''Both are equal''')