class_docstr: VecEnv that runs multiple environments in parallel in subproceses and communicates with them via pipes.
  Recommended to use when num_envs > 1 and step() can be a bottleneck.
class_docstr_tok: ["VecEnv","that","runs","multiple","environments","in","parallel","in","subproceses","and","communicates","with","them","via","pipes",".","Recommended","to","use","when","num_envs",">","1","and","step","(",")","can","be","a","bottleneck","."]
code: def step_async(self, actions):
      self._assert_not_closed()
      actions = np.array_split(actions, self.nremotes)
      for remote, action in zip(self.remotes, actions):
          remote.send(("step", action))
      self.waiting = True
  
file_path: baselines/baselines/common/vec_env/subproc_vec_env.py
imports: import multiprocessing
  import numpy
  from .vec_env import VecEnv, CloudpickleWrapper, clear_mpi_env_vars
label_desc: Use image node_id 2 for calling the SubprocVecEnv obj's underlying member method code with example usage: obj.step_async(actions) without return types