code: def test_dumps_serialize_numpy_large():
      if MEMORY_LIMIT < 2e9:
          pytest.skip("insufficient memory")
      x = np.random.random(
          size=int(BIG_BYTES_SHARD_SIZE * 2 // 8)
      ).view("u1")
      assert x.nbytes == BIG_BYTES_SHARD_SIZE * 2
      frames = dumps([to_serialize(x)])
      dtype, shape = x.dtype, x.shape
      checksum = crc32(x)
      [y] = loads(frames)
  
      assert (y.dtype, y.shape) == (dtype, shape)
      assert crc32(y) == checksum, "Arrays are unequal"
  
      x[:] = 2  # shared buffer; serialization is zero-copy
      assert (x == y).all(), "Data was copied"
  
imports: from __future__ import annotations
  from zlib import crc32
  import pytest
  from dask.utils import ensure_bytes, tmpfile
  from distributed.protocol import decompress, deserialize, dumps, loads, msgpack, serialize, to_serialize
  from distributed.protocol.compression import maybe_compress
  from distributed.protocol.numpy import itemsize
  from distributed.protocol.utils import BIG_BYTES_SHARD_SIZE
  from distributed.system import MEMORY_LIMIT
  from distributed.utils import nbytes
  from distributed.utils_test import gen_cluster
label_desc: Use image node_id 8 for calling a global function with example usage: test_dumps_serialize_numpy_large() without return types