def start(self):
self.outgoing_q = zmq_pipes.TasksOutgoing(<EOL>"<STR_LIT:127.0.0.1>", self.interchange_port_range)<EOL>self.incoming_q = zmq_pipes.ResultsIncoming(<EOL>"<STR_LIT:127.0.0.1>", self.interchange_port_range)<EOL>self.is_alive = True<EOL>self._queue_management_thread = None<EOL>self._start_queue_management_thread()<EOL>self._start_local_queue_process()<EOL>logger.debug("<STR_LIT>"<EOL>.format(self._queue_management_thread))<EOL>if self.provider:<EOL><INDENT>l_cmd = self.launch_cmd.format(  <EOL>task_url=self.worker_task_url,<EOL>workers_per_node=self.workers_per_node,<EOL>logdir="<STR_LIT>".format(self.run_dir, self.label))<EOL>self.launch_cmd = l_cmd<EOL>logger.debug("<STR_LIT>".format(self.launch_cmd))<EOL>self._scaling_enabled = self.provider.scaling_enabled<EOL>logger.debug(<EOL>"<STR_LIT>", self.provider)<EOL>if hasattr(self.provider, '<STR_LIT>'):<EOL><INDENT>try:<EOL><INDENT>for i in range(self.provider.init_blocks):<EOL><INDENT>block = self.provider.submit(<EOL>self.launch_cmd, <NUM_LIT:1>, self.workers_per_node)<EOL>logger.debug("<STR_LIT>".format(i, block))<EOL>if not block:<EOL><INDENT>raise(ScalingFailed(self.provider.label,<EOL>"<STR_LIT>"))<EOL><DEDENT>self.blocks.extend([block])<EOL><DEDENT><DEDENT>except Exception as e:<EOL><INDENT>logger.error("<STR_LIT>".format(e))<EOL>raise e<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>self._scaling_enabled = False<EOL>logger.debug("<STR_LIT>")<EOL><DEDENT>
Create the Interchange process and connect to it.