def submit(self, command, blocksize, tasks_per_node, job_name="<STR_LIT>"):
if self.provisioned_blocks >= self.max_blocks:<EOL><INDENT>logger.warn("<STR_LIT>".format(self.label))<EOL>return None<EOL><DEDENT>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>logger.debug("<STR_LIT>".format(self.nodes_per_block))<EOL>job_config = {}<EOL>job_config["<STR_LIT>"] = self.channel.script_dir<EOL>job_config["<STR_LIT>"] = self.nodes_per_block<EOL>job_config["<STR_LIT>"] = tasks_per_node<EOL>job_config["<STR_LIT>"] = wtime_to_minutes(self.walltime)<EOL>job_config["<STR_LIT>"] = self.scheduler_options<EOL>job_config["<STR_LIT>"] = self.worker_init<EOL>job_config["<STR_LIT>"] = self.partition<EOL>job_config["<STR_LIT>"] = command<EOL>job_config["<STR_LIT>"] = self.launcher(command,<EOL>tasks_per_node,<EOL>self.nodes_per_block)<EOL>logger.debug("<STR_LIT>")<EOL>self._write_submit_script(template_string, script_path, job_name, job_config)<EOL>if self.move_files:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>channel_script_path = self.channel.push_file(script_path, self.channel.script_dir)<EOL><DEDENT>else:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>channel_script_path = script_path<EOL><DEDENT>retcode, stdout, stderr = super().execute_wait("<STR_LIT>".format(channel_script_path))<EOL>job_id = None<EOL>if retcode == <NUM_LIT:0>:<EOL><INDENT>for line in stdout.split('<STR_LIT:\n>'):<EOL><INDENT>if line.startswith("<STR_LIT>"):<EOL><INDENT>job_id = line.split("<STR_LIT>")[<NUM_LIT:1>].strip()<EOL>self.resources[job_id] = {'<STR_LIT>': job_id, '<STR_LIT:status>': '<STR_LIT>', '<STR_LIT>': blocksize}<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>print("<STR_LIT>")<EOL>logger.error("<STR_LIT>", retcode, stdout.strip(), stderr.strip())<EOL><DEDENT>return job_id<EOL>
Submit the command as a slurm job of blocksize parallel elements.

        Parameters
        ----------
        command : str
            Command to be made on the remote side.
        blocksize : int
            Not implemented.
        tasks_per_node : int
            Command invocations to be launched per node
        job_name : str
            Name for the job (must be unique).
        Returns
        -------
        None or str
            If at capacity, returns None; otherwise, a string identifier for the job