| 64 | |
| 65 | |
| 66 | def plot_speed(self): |
| 67 | architecture = self.main_arch_directory |
| 68 | basePath = self.results_directory + '/' + architecture + '/' |
| 69 | |
| 70 | patas = pd.read_csv(basePath + 'patas.csv') |
| 71 | chimp = pd.read_csv(basePath + 'chimp.csv') |
| 72 | chimp128 = pd.read_csv(basePath + 'chimp128.csv') |
| 73 | pde = pd.read_csv(basePath + 'ped.csv') |
| 74 | alp1 = pd.read_csv(basePath + 'x86_64_avx512bw_intrinsic_1024_uf1_falp.csv') |
| 75 | alp1 = alp1[~(alp1['name'].str.contains('POI-'))] |
| 76 | alp1 = alp1[~(alp1['name'].str.contains('poi_'))] |
| 77 | alp2 = pd.read_csv(basePath + 'alp_encode_pde.csv') |
| 78 | alp3 = pd.read_csv(basePath + 'alp_encode_cutter.csv') |
| 79 | alp4 = pd.read_csv(basePath + 'alp_decode_cutter.csv') |
| 80 | gorilla = pd.read_csv(basePath + 'gorillas.csv') |
| 81 | elf = pd.read_csv(basePath + 'elf_raw.csv') |
| 82 | zstd = pd.read_csv(basePath + 'zstd.csv') |
| 83 | |
| 84 | alp1 = alp1[(alp1['name'].str.contains('fused')) | alp1['name'].str.contains('decode')] |
| 85 | alp = pd.concat([alp1, alp2, alp3, alp4]) |
| 86 | alp = alp[~alp['name'].str.contains('bw')] |
| 87 | |
| 88 | # These datasets do not have enough data for Zstd |
| 89 | zstd = zstd[~zstd['name'].isin([ |
| 90 | 'bitcoin_transactions_f_encode', |
| 91 | 'bitcoin_transactions_f_decode', |
| 92 | 'bird_migration_f_encode', |
| 93 | 'bird_migration_f_decode', |
| 94 | 'ssd_hdd_benchmarks_f_encode', |
| 95 | 'ssd_hdd_benchmarks_f_decode' |
| 96 | ])] |
| 97 | |
| 98 | # This dicitonary determines the order |
| 99 | benchmarks = { |
| 100 | 'ALP': alp, |
| 101 | 'PDE': pde, |
| 102 | 'ELF': elf, |
| 103 | 'Zstd': zstd, |
| 104 | 'Patas': patas, |
| 105 | 'Chimp128': chimp128, |
| 106 | 'Chimp': chimp, |
| 107 | 'Gorilla': gorilla, |
| 108 | } |
| 109 | |
| 110 | for benchmarkName in benchmarks: |
| 111 | benchmark = benchmarks[benchmarkName] |
| 112 | if (benchmarkName == 'ELF'): |
| 113 | elf_encode = benchmark[['dataset', 'compression_tpc']] |
| 114 | elf_encode.columns = ['dataset', 'tuples_per_cycle'] |
| 115 | elf_encode['algorithm'] = benchmarkName |
| 116 | elf_encode['process'] = 'Compression' |
| 117 | elf_decode = benchmark[['dataset', 'decompression_tpc']] |
| 118 | elf_decode.columns = ['dataset', 'tuples_per_cycle'] |
| 119 | elf_decode['algorithm'] = benchmarkName |
| 120 | elf_decode['process'] = 'Decompression' |
| 121 | benchmarks[benchmarkName] = pd.concat([elf_encode, elf_decode]) |
| 122 | continue |
| 123 | benchmark['tuples_per_cycle'] = 1 / benchmark['cycles_per_tuple'] |