code: def test_multiprocessing(self):
      # same configuration
      random_state = RANDOM_STATE
  
      # use 3 processes for the ensemble and the distance,
      # so that the 4 models and 8 topics cannot be distributed
      # to each worker evenly
      workers = 3
  
      # memory friendly. contains List of topic word distributions
      elda = self.get_elda()
      elda_multiprocessing = EnsembleLda(
          corpus=common_corpus,
          id2word=common_dictionary,
          topic_model_class=LdaModel,
          num_topics=NUM_TOPICS,
          passes=PASSES,
          num_models=NUM_MODELS,
          random_state=random_state,
          ensemble_workers=workers,
          distance_workers=workers,
      )
  
      # memory unfriendly. contains List of models
      elda_mem_unfriendly = self.get_elda_mem_unfriendly()
      elda_multiprocessing_mem_unfriendly = EnsembleLda(
          corpus=common_corpus,
          id2word=common_dictionary,
          topic_model_class=LdaModel,
          num_topics=NUM_TOPICS,
          passes=PASSES,
          num_models=NUM_MODELS,
          random_state=random_state,
          ensemble_workers=workers,
          distance_workers=workers,
          memory_friendly_ttda=False,
      )
  
      np.testing.assert_allclose(
          elda.get_topics(),
          elda_multiprocessing.get_topics(),
          rtol=RTOL,
      )
      np.testing.assert_allclose(
          elda_mem_unfriendly.get_topics(),
          elda_multiprocessing_mem_unfriendly.get_topics(),
          rtol=RTOL,
      )
  
imports: import os
  import logging
  import unittest
  import numpy
  from copy import deepcopy
  import pytest
  from gensim.models import EnsembleLda, LdaMulticore, LdaModel
  from gensim.test.utils import datapath, get_tmpfile, common_corpus, common_dictionary
label_desc: Use image node_id 16 for calling the TestEnsembleLda obj's underlying member method code with example usage: obj.test_multiprocessing() without return types