def _execute_runs(self, pipeline):
if self._start_timestamp is None:<EOL><INDENT>self._start_timestamp = time.time()<EOL><DEDENT>if self._map_arguments and self._resumable:<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>if self._sumatra_project is not None:<EOL><INDENT>self._prepare_sumatra()<EOL><DEDENT>if pipeline is not None:<EOL><INDENT>results = []<EOL>self._prepare_runs(pipeline)<EOL><DEDENT>else:<EOL><INDENT>results = self._prepare_resume()<EOL><DEDENT>if self._runfunc is not None:<EOL><INDENT>self._traj._run_by_environment = True<EOL>if self._graceful_exit:<EOL><INDENT>sigint_handling.start()<EOL><DEDENT>try:<EOL><INDENT>self._inner_run_loop(results)<EOL><DEDENT>finally:<EOL><INDENT>self._traj._run_by_environment = False<EOL>self._stop_iteration = False<EOL>if self._graceful_exit:<EOL><INDENT>sigint_handling.finalize()<EOL><DEDENT><DEDENT><DEDENT>self._add_wildcard_config()<EOL>if self._automatic_storing:<EOL><INDENT>self._logger.info('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>' %<EOL>self._traj.v_name)<EOL>self._traj.f_store()<EOL>self._logger.info('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>' %<EOL>self._traj.v_name)<EOL><DEDENT>self._finish_timestamp = time.time()<EOL>findatetime = datetime.datetime.fromtimestamp(self._finish_timestamp)<EOL>startdatetime = datetime.datetime.fromtimestamp(self._start_timestamp)<EOL>self._runtime = str(findatetime - startdatetime)<EOL>conf_list = []<EOL>config_name = '<STR_LIT>' % self.name<EOL>if not self._traj.f_contains('<STR_LIT>' + config_name):<EOL><INDENT>conf1 = self._traj.f_add_config(Parameter, config_name, self._start_timestamp,<EOL>comment='<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL>conf_list.append(conf1)<EOL><DEDENT>config_name = '<STR_LIT>' % self.name<EOL>if not self._traj.f_contains('<STR_LIT>' + config_name):<EOL><INDENT>conf2 = self._traj.f_add_config(Parameter, config_name, self._finish_timestamp,<EOL>comment='<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>conf2 = self._traj.f_get('<STR_LIT>' + config_name)<EOL>conf2.f_unlock()<EOL>conf2.f_set(self._finish_timestamp)<EOL><DEDENT>conf_list.append(conf2)<EOL>config_name = '<STR_LIT>' % self.name<EOL>if not self._traj.f_contains('<STR_LIT>' + config_name):<EOL><INDENT>conf3 = self._traj.f_add_config(Parameter, config_name, self._runtime,<EOL>comment='<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>conf3 = self._traj.f_get('<STR_LIT>' + config_name)<EOL>conf3.f_unlock()<EOL>conf3.f_set(self._runtime)<EOL><DEDENT>conf_list.append(conf3)<EOL>if self._automatic_storing:<EOL><INDENT>self._traj.f_store_items(conf_list, store_data=pypetconstants.OVERWRITE_DATA)<EOL><DEDENT>if hasattr(self._traj.v_storage_service, '<STR_LIT>'):<EOL><INDENT>self._traj.v_storage_service.finalize()<EOL><DEDENT>incomplete = []<EOL>for run_name in self._traj.f_get_run_names():<EOL><INDENT>if not self._traj._is_completed(run_name):<EOL><INDENT>incomplete.append(run_name)<EOL><DEDENT><DEDENT>if len(incomplete) > <NUM_LIT:0>:<EOL><INDENT>self._logger.error('<STR_LIT>'<EOL>'<STR_LIT>' % (self._traj.v_name,<EOL>'<STR_LIT:U+002CU+0020>'.join(incomplete)))<EOL><DEDENT>else:<EOL><INDENT>self._logger.info('<STR_LIT>' %<EOL>self._traj.v_name)<EOL><DEDENT>if self._sumatra_project is not None:<EOL><INDENT>self._finish_sumatra()<EOL><DEDENT>return results<EOL>
Starts the individual single runs.

        Starts runs sequentially or initiates multiprocessing.

        :param pipeline:

            A pipeline function producing the run function the corresponding arguments
            and postprocessing function and arguments

        :return:

            List of tuples, where each tuple contains the run idx and the result.