class_docstr: Shuffler is used to shuffle the data.
  
  data is stored in a flatten array with the shape is (num_node * node_size * step) and the
  shuffle is applied to the `node_size` dimension.
code: def _get_global_perm_index(self):
      index = torch.hstack(
          [
              index + (nid * self.node_size)
              for nid, index in enumerate(self._get_perm_indexes())
          ]
      )
      return index
  
imports: from typing import List, Tuple, Dict
  import numpy
  import torch
label_desc: Use image node_id 3 for calling the Shuffler obj's underlying member method code with example usage: obj._get_global_perm_index() and returns: index