def __call__(self):
launchinfo = self._setup_launch()<EOL>streams_path = self._setup_streams_path()<EOL>self.command.finalize(launchinfo)<EOL>self._record_info(launchinfo)<EOL>last_tid = <NUM_LIT:0><EOL>last_tids = []<EOL>for gid, groupspecs in enumerate(self.args):<EOL><INDENT>tids = list(range(last_tid, last_tid+len(groupspecs)))<EOL>last_tid += len(groupspecs)<EOL>allcommands = [self.command(<EOL>self.command._formatter(spec), tid, launchinfo)for (spec,tid) in zip(groupspecs,tids)]<EOL>self._append_log(list(zip(tids,groupspecs)))<EOL>self.message("<STR_LIT>" % (gid, len(allcommands)))<EOL>self._launch_process_group(zip(allcommands,tids), streams_path)<EOL>last_tids = tids[:]<EOL>if self.dynamic:<EOL><INDENT>self.args.update(last_tids, launchinfo)<EOL><DEDENT><DEDENT>self._record_info()<EOL>if self.reduction_fn is not None:<EOL><INDENT>self.reduction_fn(self._spec_log, self.root_directory)<EOL><DEDENT>
Call to start Launcher execution. Typically invoked by
review_and_launch but may be called directly by the user.