code: def test_checksum_determinism(ray_cluster_2cpu):
      """Tests that checksums are deterministic across different processes (no unordered hash maps)."""
      import ray
  
      # Generate a lot of features so the probability of a reordering of feature sets is very high.
      config = {
          INPUT_FEATURES: [
              {"name": f"in{i}", "type": "number"} for i in range(100)
          ],
          OUTPUT_FEATURES: [{"name": "out1", "type": "binary"}],
      }
      config = ModelConfig.from_dict(config)
  
      mock_dataset = mock.Mock()
      mock_dataset.checksum = uuid.uuid4().hex
  
      @ray.remote(max_calls=1)
      def calculate_checksum_remote(dataset, config):
          return calculate_checksum(dataset, config)
  
      # Run each checksum calculation as a remote function so it gets its own Python interpreter, as
      # the hash function in Python is deterministic within a process, but not between different processes.
      # See: https://docs.python.org/3/reference/datamodel.html#object.__hash__
      checksum1 = ray.get(
          calculate_checksum_remote.remote(
              mock_dataset, config.to_dict()
          )
      )
      checksum2 = ray.get(
          calculate_checksum_remote.remote(
              mock_dataset, config.to_dict()
          )
      )
      assert checksum1 == checksum2
  
file_path: ludwig/tests/ludwig/data/test_cache_util.py
imports: import copy
  import uuid
  from typing import List
  from unittest import mock
  import pytest
  from ludwig.constants import INPUT_FEATURES, OUTPUT_FEATURES
  from ludwig.data.cache.util import calculate_checksum
  from ludwig.schema.model_types.base import ModelConfig
  from ludwig.types import FeatureConfigDict, ModelConfigDict
  from ludwig.utils.misc_utils import merge_dict
label_desc: Use image node_id 5 for calling a global function with example usage: test_checksum_determinism(ray_cluster_2cpu) and returns: calculate_checksum