def srun_cartesian_product(cls, campaign, config):
        """
        :param campaign: global YAML configuration
        :param config: benchmark YAML configuration
        """
        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)]