



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

import torch_xla.distributed.xla_multiprocessing as xmp





def      __snake_case	(			):
    __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=__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      __snake_case	(			):
    __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(__lowerCAmelCase				)

    # 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        __lowerCAmelCase       (__lowerCAmelCase					,       __lowerCAmelCase      ):

		if density <= 0:
				raise ValueError("Impossible fluid density"      )
		if bulk_modulus <= 0:
				raise ValueError("Impossible bulk modulus"      )

		return (bulk_modulus / density) ** 0.5


if __name__ == "__main__":
						import doctest

						doctest.testmod()



