code: def _reduce_memmap_backed(a, m):
      """Pickling reduction for memmap backed arrays.
  
      a is expected to be an instance of np.ndarray (or np.memmap)
      m is expected to be an instance of np.memmap on the top of the ``base``
      attribute ancestry of a. ``m.base`` should be the real python mmap object.
      """
      # offset that comes from the striding differences between a and m
      util.debug(
          "[MEMMAP REDUCE] reducing a memmap-backed array "
          "(shape, {}, pid: {})".format(a.shape, os.getpid())
      )
      a_start, a_end = np.byte_bounds(a)
      m_start = np.byte_bounds(m)[0]
      offset = a_start - m_start
  
      # offset from the backing memmap
      offset += m.offset
  
      if m.flags["F_CONTIGUOUS"]:
          order = "F"
      else:
          # The backing memmap buffer is necessarily contiguous hence C if not
          # Fortran
          order = "C"
  
      if a.flags["F_CONTIGUOUS"] or a.flags["C_CONTIGUOUS"]:
          # If the array is a contiguous view, no need to pass the strides
          strides = None
          total_buffer_len = None
      else:
          # Compute the total number of items to map from which the strided
          # view will be extracted.
          strides = a.strides
          total_buffer_len = (a_end - a_start) // a.itemsize
  
      return (
          _strided_from_memmap,
          (
              m.filename,
              a.dtype,
              m.mode,
              offset,
              order,
              a.shape,
              strides,
              total_buffer_len,
              False,
          ),
      )
  
imports: from mmap import mmap
  import errno
  import os
  import stat
  import threading
  import atexit
  import tempfile
  import time
  import warnings
  import weakref
  from uuid import uuid4
  from multiprocessing import util
  from pickle import whichmodule, loads, dumps, HIGHEST_PROTOCOL, PicklingError
  from .numpy_pickle import dump, load, load_temporary_memmap
  from .backports import make_memmap
  from .disk import delete_folder
  from .externals.loky.backend import resource_tracker
label_desc: Use image node_id 8 for calling a global function with example usage: _reduce_memmap_backed(a, m) and returns: _strided_from_memmap,  m,  a,  m,  offset,  order,  a,  strides,  total_buffer_len,  False