docstr: Search for permutations for all sibling groups
code: def find_permutations(cls, fx_graph):
      """Search for permutations for all sibling groups"""
  
      for sibling_group_id in cls.__group_data["sibling_groups"].keys():
          search_this_group = True
          if torch.distributed.is_initialized():
              rank = torch.distributed.get_rank()
              world_size = torch.distributed.get_world_size()
  
              if sibling_group_id % world_size != rank:
                  search_this_group = False
  
          cls.__group_data["sibling_group_permutations"][
              sibling_group_id
          ] = None
          if search_this_group:
              cls.defer_prints()
  
              sibling_group = cls.__group_data["sibling_groups"][
                  sibling_group_id
              ]
              test_node_name = list(sibling_group)[0]
              if not fx_graph[test_node_name]["C_permutable"]:
                  if cls.__verbosity > 1:
                      print(
                          f"Skipping permutation for sibling group {sibling_group_id} since it does not allow permutations along C"
                      )
  
              else:
                  if cls.__verbosity > 1:
                      print(
                          f"Sibling group {sibling_group_id} can permute along C, permuting it"
                      )
  
                  cls.find_sibling_group_permutation(
                      fx_graph, sibling_group_id
                  )
  
              cls.resume_prints()
  
      return fx_graph
  
imports: import os
  import torch
  import json
  import string
  import time
  import numpy
  import sys
  import builtins
  import io
label_desc: Use image node_id 21 for calling the Permutation obj's underlying member method code with example usage: obj.find_permutations(cls, fx_graph) and returns: fx_graph