code: def srun_cartesian_product(cls, campaign, config):
          
          options = copy.copy(cls.common_srun_options(campaign))
          options.update(config.get('srun') or {})
          options_tuple = []
          for k, v in options.items():
              if not isinstance(v, SEQUENCES):
                  v = [v]
              options_tuple.append([(k, e) for e in v])
          return [dict(combination) for combination in itertools.product(*options_tuple)]
docs: :param campaign: global YAML configuration
          :param config: benchmark YAML configuration