in LaNAS/Distributed_LaNAS/server/MCTS.py [0:0]
def dispatch_and_retrieve_jobs(self, server = None):
while len(self.TASK_QUEUE) > 50:
is_send_successful = False
job = self.TASK_QUEUE.pop()
try:
print("########################")
print( "job counter:", self.JOB_COUNTER )
print( "get job from QUEUE==>", job )
print("listening......")
conn = server.accept()
conn.send( [job] )
conn.close()
is_send_successful = True
self.TOTAL_SEND += 1
print("==>dispatch job:", " total_send:", self.TOTAL_SEND, " total_recv:", self.TOTAL_RECV )
self.JOB_COUNTER += 1
for i in range(0, 5):
conn = server.accept()
if conn.poll(0.5):
receive_signal = conn.recv()
client_name = receive_signal[0]
job_str = receive_signal[1]
acc = receive_signal[2]
self.DISPATCHED_JOB[job_str] = acc
self.samples[job_str] = acc
if acc > self.MAX_ACC:
self.MAX_ACC = acc
received = True
self.TOTAL_RECV += 1
print("retrieve job, curt max acc:", self.MAX_ACC)
print("="*10, " total_send:", self.TOTAL_SEND, " total_recv:", self.TOTAL_RECV)
if received:
self.JOB_COUNTER -= 1
print(client_name, "==> net:", job_str, acc, " total samples:", len(self.samples)," job counter:", self.JOB_COUNTER )
except Exception as error:
if not is_send_successful:
self.TASK_QUEUE.append(job)
print("send or recv timeout, curt queue len:", len(self.TASK_QUEUE) )