code: def run_benchmark(name, sizes, vs=[]):
      report = Report(name)
  
      for size in sizes:
          time = run_perf_process(name, size)
  
          report.add_sample("compute", size, time)
  
      competitors = {
          "thrust": [
              "accumulate",
              "count",
              "exclusive_scan",
              "find",
              "inner_product",
              "merge",
              "partial_sum",
              "partition",
              "reduce_by_key",
              "reverse",
              "reverse_copy",
              "rotate",
              "saxpy",
              "sort",
              "unique",
          ],
          "bolt": [
              "accumulate",
              "count",
              "exclusive_scan",
              "fill",
              "inner_product",
              "max_element",
              "merge",
              "partial_sum",
              "reduce_by_key",
              "saxpy",
              "sort",
          ],
          "tbb": ["accumulate", "merge", "sort"],
          "stl": [
              "accumulate",
              "count",
              "find",
              "find_end",
              "includes",
              "inner_product",
              "is_permutation",
              "max_element",
              "merge",
              "next_permutation",
              "nth_element",
              "partial_sum",
              "partition",
              "partition_point",
              "prev_permutation",
              "reverse",
              "reverse_copy",
              "rotate",
              "rotate_copy",
              "saxpy",
              "search",
              "search_n",
              "set_difference",
              "set_intersection",
              "set_symmetric_difference",
              "set_union",
              "sort",
              "stable_partition",
              "unique",
              "unique_copy",
          ],
      }
  
      for other in vs:
          if not other in competitors:
              continue
          if not name in competitors[other]:
              continue
  
          for size in sizes:
              time = run_perf_process(name, size, other)
              report.add_sample(other, size, time)
  
      return report
  
file_path: turicreate/src/external/boost/boost_1_68_0/libs/compute/perf/perf.py
imports: import os
  import sys
  import subprocess
label_desc: Use image node_id 2 for calling a global function with example usage: run_benchmark(name, sizes, vs) and returns: report