
"""simple docstring"""




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

import torch_xla.distributed.xla_multiprocessing as xmp

def __snake_case (      )       ->    List[str]:


		"""simple docstring"""





		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=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 __snake_case (      )       ->    List[Any]:


		"""simple docstring"""





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

		# 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"""




import safs
class SCREAMING_SNAKE_CASE       (      safs.SaFileSystem					):






	'''simple docstring'''




