def action_create(self, args):
        """
            Spin up a multi-node distributed Surreal experiment.
            Put any command line args that pass to the config script after "--"
        """
        cluster = Cluster.new(
            'subproc',
            stdout_mode='print',
            stderr_mode='print',
            log_dir=None
        )
        experiment_name = args.experiment_name
        exp = cluster.new_experiment(experiment_name)

        algorithm_args = args.remainder
        algorithm_args += [
            "--num-agents",
            str(args.num_agents),
            ]
        experiment_folder = os.path.join(self.folder, experiment_name)
        print('Writing experiment output to {}'.format(experiment_folder))
        algorithm_args += ["--experiment-folder", experiment_folder]
        algorithm_args += ["--env", args.env]
        executable = self._find_executable(args.algorithm)
        cmd_gen = CommandGenerator(
            num_agents=args.num_agents,
            num_evals=args.num_evals,
            executable=executable,
            config_commands=algorithm_args
        )
        learner = exp.new_process(
            'learner',
            cmd=cmd_gen.get_command('learner'))
        # learner.set_env('DISABLE_MUJOCO_RENDERING', "1")

        replay = exp.new_process(
            'replay',
            cmd=cmd_gen.get_command('replay'))

        ps = exp.new_process(
            'ps',
            cmd=cmd_gen.get_command('ps'))

        tensorboard = exp.new_process(
            'tensorboard',
            cmd=cmd_gen.get_command('tensorboard'))

        tensorplex = exp.new_process(
            'tensorplex',
            cmd=cmd_gen.get_command('tensorplex'))

        loggerplex = exp.new_process(
            'loggerplex',
            cmd=cmd_gen.get_command('loggerplex'))

        agents = []
        for i in range(args.num_agents):
            agent_name = 'agent-{}'.format(i)
            agent = exp.new_process(
                agent_name,
                cmd=cmd_gen.get_command(agent_name))
            agents.append(agent)

        evals = []
        for i in range(args.num_evals):
            eval_name = 'eval-{}'.format(i)
            eval_p = exp.new_process(
                eval_name,
                cmd=cmd_gen.get_command(eval_name))
            evals.append(eval_p)

        setup_network(agents=agents,
                      evals=evals,
                      learner=learner,
                      replay=replay,
                      ps=ps,
                      tensorboard=tensorboard,
                      tensorplex=tensorplex,
                      loggerplex=loggerplex)
        self._setup_gpu(agents=agents,
                        evals=evals,
                        learner=learner,
                        gpus=args.gpu)
        cluster.launch(exp, dry_run=args.dry_run)

            Spin up a multi-node distributed Surreal experiment.
            Put any command line args that pass to the config script after "--"
        
surreal/subproc/surreal_subproc.py