class_docstr: manages a set of distance sub-indexes. The sub_indexes search a
  subset of the inverted lists. Searches are merged afterwards
class_docstr_tok: ["manages","a","set","of","distance","sub-indexes",".","The","sub_indexes","search","a","subset","of","the","inverted","lists",".","Searches","are","merged","afterwards"]
docstr: connect to a series of (host, port) pairs 
docstr_tok: ["connect","to","a","series","of","(","host",",","port",")","pairs"]
code: def __init__(
      self, machine_ports: List[Tuple[str, int]], v6: bool = False
  ):
      """connect to a series of (host, port) pairs"""
      self.sub_indexes = []
      for machine, port in machine_ports:
          self.sub_indexes.append(rpc.Client(machine, port, v6))
  
      self.ni = len(self.sub_indexes)
      # pool of threads. Each thread manages one sub-index.
      self.pool = ThreadPool(self.ni)
      # test connection...
      self.ntotal = self.get_ntotal()
      self.verbose = False
  
file_path: faiss/contrib/client_server.py
imports: from multiprocessing.pool import ThreadPool
  import faiss
  from typing import List, Tuple
  from .None import rpc
label_desc: Use image node_id 1 to create a new ClientIndex object  with example: obj = ClientIndex(machine_ports, v6)