code: def reserve_partitioned_swap_space(self, partition_num_elems):
      aligned_numel = sum(
          [
              self._io_aligned_numel(numel)
              for numel in partition_num_elems
          ]
      )
      self.partitioned_swap_buffer = torch.zeros(
          aligned_numel, device="cpu", dtype=self.dtype
      ).pin_memory()
      self.partitioned_swap_pool = SwapBufferPool(
          [self.partitioned_swap_buffer]
      )
  
imports: import os
  import shutil
  from enum import Enum
  import torch
  from deepspeed import comm
  from deepspeed.ops.aio import AsyncIOBuilder
  from .constants import *
  from .utils import swap_in_tensors, swap_out_tensors, MIN_AIO_BYTES, AIO_ALIGNED_BYTES, print_object, SwapBufferPool
label_desc: Use image node_id 23 for calling the AsyncPartitionedParameterSwapper obj's underlying member method code with example usage: obj.reserve_partitioned_swap_space(partition_num_elems) without return types