def submit(self, command, blocksize, tasks_per_node, job_name="<STR_LIT>"):
job_name = "<STR_LIT>".format(job_name, time.time())<EOL>script_path = "<STR_LIT>".format(self.script_dir, job_name)<EOL>script_path = os.path.abspath(script_path)<EOL>wrap_command = self.worker_init + '<STR_LIT:\n>' + self.launcher(command, tasks_per_node, self.nodes_per_block)<EOL>self._write_submit_script(wrap_command, script_path)<EOL>job_id = None<EOL>proc = None<EOL>remote_pid = None<EOL>if (self.move_files is None and not isinstance(self.channel, LocalChannel)) or (self.move_files):<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>script_path = self.channel.push_file(script_path, self.channel.script_dir)<EOL><DEDENT>if not isinstance(self.channel, LocalChannel):<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>cmd = '<STR_LIT>'.format(script_path)<EOL>retcode, stdout, stderr = self.channel.execute_wait(cmd, self.cmd_timeout)<EOL>for line in stdout.split('<STR_LIT:\n>'):<EOL><INDENT>if line.startswith("<STR_LIT>"):<EOL><INDENT>remote_pid = line.split("<STR_LIT>")[<NUM_LIT:1>].strip()<EOL>job_id = remote_pid<EOL><DEDENT><DEDENT>if job_id is None:<EOL><INDENT>logger.warning("<STR_LIT>")<EOL><DEDENT><DEDENT>else:<EOL><INDENT>try:<EOL><INDENT>job_id, proc = self.channel.execute_no_wait('<STR_LIT>'.format(script_path), self.cmd_timeout)<EOL><DEDENT>except Exception as e:<EOL><INDENT>logger.debug("<STR_LIT>".format(self.channel, e))<EOL>raise<EOL><DEDENT><DEDENT>self.resources[job_id] = {'<STR_LIT>': job_id, '<STR_LIT:status>': '<STR_LIT>',<EOL>'<STR_LIT>': blocksize,<EOL>'<STR_LIT>': remote_pid,<EOL>'<STR_LIT>': proc}<EOL>return job_id<EOL>
Submits the command onto an Local Resource Manager job of blocksize parallel elements.
        Submit returns an ID that corresponds to the task that was just submitted.

        If tasks_per_node <  1:
             1/tasks_per_node is provisioned

        If tasks_per_node == 1:
             A single node is provisioned

        If tasks_per_node >  1 :
             tasks_per_node * blocksize number of nodes are provisioned.

        Args:
             - command  :(String) Commandline invocation to be made on the remote side.
             - blocksize   :(float) - Not really used for local
             - tasks_per_node (int) : command invocations to be launched per node

        Kwargs:
             - job_name (String): Name for job, must be unique

        Returns:
             - None: At capacity, cannot provision more
             - job_id: (string) Identifier for the job