def METHOD_NAME(self,
                         command,
                         work_dir=None,
                         nodes=None,
                         procs_per_node=None,
                         launcher=None,
                         launcher_args=None):
    """Add command to be executed in parallel.
    The command is launched with mpiexec. Parallel processes are
    distributed evenly amongst the compute nodes.
    Args:
        command (`str` or `Iterable` of `str`s): Command to be
            executed in parallel.
        work_dir (str, optional): Working directory.
        nodes (int, optional): Number of compute nodes.
        procs_per_node (int, optional): Number of parallel
            processes per compute node.
        launcher (str, optional): mpiexec executable.
        launcher_args (`Iterable` of `str`s, optional):
            Command-line arguments to mpiexec.
    """
    # Use default values if needed
    if work_dir is None:
        work_dir = self.work_dir
    if nodes is None:
        nodes = self.nodes
    if procs_per_node is None:
        procs_per_node = self.procs_per_node
    if launcher is None:
        launcher = self.launcher
    if launcher_args is None:
        launcher_args = self.launcher_args
    # Construct mpiexec invocation
    args = [f'{launcher}']
    args.extend(make_iterable(launcher_args))
    args.extend([
        f'-n {nodes*procs_per_node}',
    ])
    args.extend([
        '-stdout-proc ./output.%j/%/1000r/stdout',
        '-stderr-proc ./output.%j/%/1000r/stderr',
    ])
    args.extend(make_iterable(command))
    self.add_command(args)