code: def validate(self):
          
          errors = []
          app = errors.append
  
          if not self.hint_cores >= self.mpi_procs * self.omp_threads >= self.min_cores:
              app("self.hint_cores >= mpi_procs * omp_threads >= self.min_cores not satisfied")
  
          if self.omp_threads > self.hw.cores_per_node:
              app("omp_threads > hw.cores_per_node")
  
          if self.mem_per_proc > self.hw.mem_per_node:
              app("mem_mb >= self.hw.mem_per_node")
  
          if not self.max_mem_per_proc >= self.mem_per_proc >= self.min_mem_per_proc:
              app("self.max_mem_per_proc >= mem_mb >= self.min_mem_per_proc not satisfied")
  
          if self.priority <= 0:
              app("priority must be > 0")
  
          if not (1 <= self.min_cores <= self.hw.num_cores >= self.hint_cores):
              app("1 <= min_cores <= hardware num_cores >= hint_cores not satisfied")
  
          if errors:
              raise self.Error(str(self) + "\n".join(errors))
docs: Validate the parameters of the run. Raises self.Error if invalid parameters.