code: def run_dist(rank, world_size, port, strategy):
      os.environ["RANK"] = str(rank)
      os.environ["LOCAL_RANK"] = str(rank)
      os.environ["WORLD_SIZE"] = str(world_size)
      os.environ["MASTER_ADDR"] = "localhost"
      os.environ["MASTER_PORT"] = str(port)
      make_and_consume_experience(strategy)
  
file_path: ColossalAI/applications/Chat/tests/test_experience.py
imports: import copy
  import os
  import pytest
  import torch
  import torch.distributed
  from coati.experience_buffer import NaiveExperienceBuffer
  from coati.experience_maker import NaiveExperienceMaker
  from coati.models.base import RewardModel
  from coati.models.gpt import GPTActor, GPTCritic
  from coati.trainer.ppo import _set_default_generate_kwargs
  from coati.trainer.strategies import DDPStrategy, GeminiStrategy
  from coati.trainer.strategies.colossalai import LowLevelZeroStrategy
  from transformers.models.gpt2.configuration_gpt2 import GPT2Config
  from colossalai.testing import rerun_if_address_is_in_use, spawn
label_desc: Use image node_id 4 for calling a global function with example usage: run_dist(rank, world_size, port, strategy) without return types