class_docstr: MPI-based asynchronous executor.
class_docstr_tok: ["MPI-based","asynchronous","executor","."]
docstr: Number or worker processes.
docstr_tok: ["Number","or","worker","processes","."]
code: def num_workers(self):
      """Number or worker processes."""
      with self._lock:
          if self._broken:
              return 0
          if self._shutdown:
              return 0
          self._bootstrap()
          self._pool.wait()
          return self._pool.size
  
imports: import sys
  import time
  import functools
  import itertools
  import threading
  from ._base import Future
  from ._base import Executor
  from ._base import as_completed
  from .None import _core
label_desc: Use image node_id 4 for calling the MPIPoolExecutor obj's underlying member method code with example usage: obj.num_workers() and returns: self, int, int