

'''simple docstring'''







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

import torch_xla.distributed.xla_multiprocessing as xmp
def  UpperCAmelCase__      ( )     ->     List[Any]:
       A_		   = 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__      ( )     ->     List[str]:
       A_		   = parse_args()

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

       # Patch sys.argv
       A_		   = [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  UpperCAmelCase__      ( UpperCAmelCase__			)     ->     float:

       if edge <= 0 or not isinstance(UpperCAmelCase__,    UpperCAmelCase__			):
              raise ValueError("""Length must be a positive."""			)
       return 3 * ((25 + 10 * (5 ** (1 / 2))) ** (1 / 2)) * (edge**2)
def  UpperCAmelCase__      ( UpperCAmelCase__			)     ->     float:

       if edge <= 0 or not isinstance(UpperCAmelCase__,    UpperCAmelCase__			):
              raise ValueError("""Length must be a positive."""			)
       return ((15 + (7 * (5 ** (1 / 2)))) / 4) * (edge**3)


if __name__ == "__main__":
      import doctest

      doctest.testmod()
