class_docstr: tracker for rabit
class_docstr_tok: ["tracker","for","rabit"]
docstr: get a ring structure that tends to share nodes with the tree
  return a list starting from r
docstr_tok: ["get","a","ring","structure","that","tends","to","share","nodes","with","the","tree","return","a","list","starting","from","r"]
code: def find_share_ring(self, tree_map, parent_map, r):
      """
      get a ring structure that tends to share nodes with the tree
      return a list starting from r
      """
      nset = set(tree_map[r])
      cset = nset - set([parent_map[r]])
      if len(cset) == 0:
          return [r]
      rlst = [r]
      cnt = 0
      for v in cset:
          vlst = self.find_share_ring(tree_map, parent_map, v)
          cnt += 1
          if cnt == len(cset):
              vlst.reverse()
          rlst += vlst
      return rlst
  
imports: from __future__ import absolute_import
  import os
  import sys
  import socket
  import struct
  import subprocess
  import argparse
  import time
  import logging
  from threading import Thread
label_desc: Use image node_id 6 for calling the RabitTracker obj's underlying member method code with example usage: obj.find_share_ring(tree_map, parent_map, r) and returns: rlst, list