diff --git a/bfps/_code.py b/bfps/_code.py
index 143ef29a5d4fc9e3da1c9c00b8e4df915b532beb..c29dda63895a3a0907b7d98593c3af79945b8639 100644
--- a/bfps/_code.py
+++ b/bfps/_code.py
@@ -281,11 +281,12 @@ class _code(_base):
                     nb_threads_per_process = nb_threads_per_process)
                 os.chdir(self.work_dir)
                 qsub_atoms = ['qsub']
-                if len(job_name_list) >= 1:
-                    qsub_atoms += ['-hold_jid', job_name_list[-1]]
-                subprocess.check_call(qsub_atoms + [qsub_script_name])
-                os.chdir(current_dir)
-                job_name_list.append(suffix)
+                if not no_submit:
+                    if len(job_name_list) >= 1:
+                        qsub_atoms += ['-hold_jid', job_name_list[-1]]
+                    subprocess.check_call(qsub_atoms + [qsub_script_name])
+                    os.chdir(current_dir)
+                    job_name_list.append(suffix)
         if self.host_info['type'] == 'SLURM':
             job_id_list = []
             for j in range(njobs):
@@ -584,7 +585,7 @@ class _code(_base):
         if not type(out_file) == type(None):
             script_file.write('#$ -o ' + out_file + '\n')
         if not type(self.host_info['environment']) == type(None):
-            envprocs = self.host_info['deltanprocs'] * int(math.ceil((nprocesses *1.0/ self.host_info['deltanprocs'])))
+            envprocs = nb_threads_per_process * nprocesses
             script_file.write('#$ -pe {0} {1}\n'.format(
                     self.host_info['environment'],
                     envprocs))