def run_eval_batch(self, eval_ids, mode, render):
        """
            Launches multiple eval processes with agent_id in agent_ids
            Useful when you want agents to share a GPU

        Args:
            eval_ids (list(int)): each eval agent's id
            mode:
            render: see run_eval
        """
        evals = []
        for eval_id in eval_ids:
            component_name = 'eval-{}'.format(eval_id)
            agent = self.run_component(component_name)
            evals.append(agent)
        U.wait_for_popen(evals)

            Launches multiple eval processes with agent_id in agent_ids
            Useful when you want agents to share a GPU

        Args:
            eval_ids (list(int)): each eval agent's id
            mode:
            render: see run_eval
        
surreal/launch/launcher.py