'''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       (   ):
 lowercase__				:    Any  =					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       (   ):
 lowercase__				:    Optional[int]  =					parse_args()

 # Import training_script as a module.
 lowercase__				:    str  =					Path(args.training_script     )
 sys.path.append(str(script_fpath.parent.resolve()     )     )
 lowercase__				:    Union[str, Any]  =					script_fpath.stem
 lowercase__				:    List[str]  =					importlib.import_module(UpperCAmelCase     )

 # Patch sys.argv
 lowercase__				:    List[Any]  =					[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     ):
 lowercase__				:    List[str]  =					0
 while num > 0:
  digit_sum += num % 10
  num //= 10
 return digit_sum
def 			__UpperCamelCase       (   UpperCAmelCase = 100     ):
 lowercase__				:    Dict  =					1
 lowercase__				:    Optional[int]  =					2

 for i in range(2		,     max_n + 1     ):
  lowercase__				:    List[str]  =					pre_numerator
  lowercase__				:    Optional[Any]  =					2 * i // 3 if i % 3 == 0 else 1
  lowercase__				:    Union[str, Any]  =					cur_numerator
  lowercase__				:    int  =					e_cont * pre_numerator + temp

 return sum_digits(UpperCAmelCase     )


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

