{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "%matplotlib widget\n", "import matplotlib.pyplot as plt\n", "from ipywidgets import interact" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('2018_11_HPCG_Green.csv', sep='\\t', quotechar='\"', header=2, encoding='utf-8')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Cleaning\n", "\n", "No submitted power value - no competition." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "df = df.loc[df['Gflop/Ws'] != \"#DIV/0!\"]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "df['Gflop/Ws'] = df['Gflop/Ws'].astype('float64')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RankTOP500 RankSystemGflop/WsArchlaunch
5354411MareNostrum P9 CTE- IBM Power System AC922 IBM...0.326807GPU06/2018
457AI Bridging Cloud Infrastructure (ABCI)- PRIME...0.308534GPU06/2018
011Summit- IBM Power System AC922 IBM POWER9 22C ...0.299065GPU06/2018
122Sierra- IBM Power System S922LC IBM POWER9 22C...0.241418GPU06/2018
151622TSUBAME3,0- SGI ICE XA IP139-SXM2 Xeon E5-2680...0.238133GPU06/2017
565Piz Daint- Cray XC50 Xeon E5-2690v3 12C 2,6GHz...0.208444GPU11/2016
131415HPC4- Proliant DL380 Gen10 Xeon Platinum 8160 ...0.205962GPU06/2018
343551DGX Saturn V- NVIDIA DGX-1 Xeon E5-2698v4 20C ...0.192904GPU11/2016
8914Oakforest-PACS- PRIMERGY CX1640 M1 Intel Xeon ...0.141788MIC11/2016
4748243JOLIOT-CURIE KNL- Bull Sequana X1000 Intel Xeo...0.114417MIC06/2018
101116Tera-1000-2- Bull Sequana X1000 Intel Xeon Phi...0.105022MIC06/2018
91012Cori- Cray XC40 Intel Xeon Phi 7250 68C 1,4GHz...0.090236MIC11/2016
202125MareNostrum- Lenovo SD530 Xeon Platinum 8160 2...0.074902x8606/2017
484991ATERUI II - Cray XC50 Xeon Gold 6148 20C 2,4GH...0.073892x8606/2018
346Trinity- Cray XC40 Xeon E5-2698v3 16C 2,3GHz I...0.072066MIC11/2017
222356SORA-MA- Fujitsu PRIMEHPC FX100 SPARC64 XIfx 3...0.066667SPARC6406/2015
232433Electra- HPE SGI 8600/SGI ICE-X E5-2680V4/ Xeo...0.063201x8611/2018
252663Fujitsu PRIMEHPC FX100 SPARC64 XIfx 32C 2,2GHz...0.062594SPARC6411/2015
303184Plasma Simulator- Fujitsu PRIMEHPC FX100 SPARC...0.058843SPARC6406/2015
404140JOLIOT-CURIE SKL- Bull Sequana X1000 Xeon Plat...0.057448x8606/2018
5657361Falcon- SGI ICE X Xeon E5-2695v4 18C 2,1GHz In...0.055593x8611/2017
313269TSUBAME 2,5- Cluster Platform SL390s G7 Xeon X...0.051859GPU06/2014
333444JURECA- T-Platforms V-Class/Dell C6320P E5-268...0.050800GPU11/2017
242536Cheyenne- SGI ICE XA Xeon E5-2697v4 18C 2,3GHz...0.050539x8611/2016
4546131Prometheus- HP Apollo 8000 Xeon E5-2680v3 12C ...0.049455GPU11/2015
3940253iDataPlex DX360M4 Intel Xeon E5-2680v2 10C 2,8...0.048786x8611/2013
2318K computer SPARC64 VIIIfx 2,0GHz Tofu intercon...0.047610SPARC6411/2011
5455246Cobalt- bullx DLC 720 Xeon E5-2680v4 14C 2,4GH...0.043080x8606/2016
495090Beaufix2- bullx DLC 720 Xeon E5-2698v4 20C 2,2...0.042580x8611/2016
505189Prolix2- bullx DLC 720 Xeon E5-2698v4 20C 2,2G...0.042570x8606/2016
171821Mira- BlueGene/Q Power BQC 16C 1,60GHz Custom ...0.042345x8606/2012
111210Sequoia- BlueGene/Q Power BQC 16C 1,60 GHz Cus...0.041872x8606/2012
272839Vulcan- BlueGene/Q Power BQC 16C 1,600GHz Cust...0.041019x8606/2013
212232Shaheen II- Cray XC40 Xeon E5-2698v3 16C 2,3GH...0.040180x8605/2015
424355HPC2- iDataPlex DX360M4 Intel Xeon E5-2680v2 1...0.039853GPU06/2014
161727Pleiades- SGI ICE X Intel Xeon E5-2670/E5-2680...0.039750x8611/2016
5556271Graham- Huawei X6800 V3 Xeon E5-2683 v4 16C 2,...0.039539GPU06/2017
444562Mistral- bullx DLC 720 Xeon E5-2680v3 12C 2,5G...0.039525x8606/2016
12139Titan- Cray XK7 Opteron 6274 16C 2,200GHz Cray...0.039264GPU11/2012
181934Pangea- SGI ICE X Xeon Xeon E5-2670/ E5-2680v3...0.039202x8606/2016
192030Hazel Hen- Cray XC40 Xeon E5-2680v3 12C 2,5GHz...0.038174x8611/2014
464792Tianhe-2 LvLiang Solution- Tianhe-2 LvLiang In...0.037723MIC11/2014
373842Cray XC40 Xeon E5-2695v4 18C 2,1GHz Aries inte...0.034507x8606/2016
363743Cray XC40 Xeon E5-2695v4 18C 2,1GHz Aries inte...0.034507x8606/2016
5152105Tera-1000-1- bullx DLC 720 Xeon E5-2698v3 16C ...0.033772x8606/2016
434477occigen2- bullx DLC 720 Xeon E5-2690v4 14C 2,6...0.031797x8606/2017
673Sunway TaihuLight- Sunway MPP Sunway SW26010 2...0.031283Sunway06/2016
5859230Sid- bullx DLC 720 Xeon E5-2695v4 18C 2,1GHz I...0.030718x8606/2016
5758360Cartesius 2- Bullx DLC B710/B720 Blades Xeon E...0.027578x8606/2015
5960212Endeavor- Intel Cluster Intel Xeon Gold 6148/X...0.025893MIC11/2017
2829186ARCHER- Cray XC30 Intel Xeon E5 v2 12C 2,700GH...0.024436x8611/2014
262764SuperMUC- iDataPlex DX360M4 Xeon E5-2680 8C 2,...0.024338x8606/2012
4142231Curie thin nodes- Bullx B510 Xeon E5-2680 8C 2...0.023917x8606/2012
2930134Edison- Cray XC30 Intel Xeon E5-2695v2 12C 2,4...0.020987x8606/2014
6061416EAGLE- Huawei E9000 Blade Server Xeon E5-2697v...0.015520x8611/2015
6162487Lomonosov- T-Platforms T-Blade2/1,1 Xeon X5570...0.000621x8606/2011
\n", "
" ], "text/plain": [ " Rank TOP500 Rank System \\\n", "53 54 411 MareNostrum P9 CTE- IBM Power System AC922 IBM... \n", "4 5 7 AI Bridging Cloud Infrastructure (ABCI)- PRIME... \n", "0 1 1 Summit- IBM Power System AC922 IBM POWER9 22C ... \n", "1 2 2 Sierra- IBM Power System S922LC IBM POWER9 22C... \n", "15 16 22 TSUBAME3,0- SGI ICE XA IP139-SXM2 Xeon E5-2680... \n", "5 6 5 Piz Daint- Cray XC50 Xeon E5-2690v3 12C 2,6GHz... \n", "13 14 15 HPC4- Proliant DL380 Gen10 Xeon Platinum 8160 ... \n", "34 35 51 DGX Saturn V- NVIDIA DGX-1 Xeon E5-2698v4 20C ... \n", "8 9 14 Oakforest-PACS- PRIMERGY CX1640 M1 Intel Xeon ... \n", "47 48 243 JOLIOT-CURIE KNL- Bull Sequana X1000 Intel Xeo... \n", "10 11 16 Tera-1000-2- Bull Sequana X1000 Intel Xeon Phi... \n", "9 10 12 Cori- Cray XC40 Intel Xeon Phi 7250 68C 1,4GHz... \n", "20 21 25 MareNostrum- Lenovo SD530 Xeon Platinum 8160 2... \n", "48 49 91 ATERUI II - Cray XC50 Xeon Gold 6148 20C 2,4GH... \n", "3 4 6 Trinity- Cray XC40 Xeon E5-2698v3 16C 2,3GHz I... \n", "22 23 56 SORA-MA- Fujitsu PRIMEHPC FX100 SPARC64 XIfx 3... \n", "23 24 33 Electra- HPE SGI 8600/SGI ICE-X E5-2680V4/ Xeo... \n", "25 26 63 Fujitsu PRIMEHPC FX100 SPARC64 XIfx 32C 2,2GHz... \n", "30 31 84 Plasma Simulator- Fujitsu PRIMEHPC FX100 SPARC... \n", "40 41 40 JOLIOT-CURIE SKL- Bull Sequana X1000 Xeon Plat... \n", "56 57 361 Falcon- SGI ICE X Xeon E5-2695v4 18C 2,1GHz In... \n", "31 32 69 TSUBAME 2,5- Cluster Platform SL390s G7 Xeon X... \n", "33 34 44 JURECA- T-Platforms V-Class/Dell C6320P E5-268... \n", "24 25 36 Cheyenne- SGI ICE XA Xeon E5-2697v4 18C 2,3GHz... \n", "45 46 131 Prometheus- HP Apollo 8000 Xeon E5-2680v3 12C ... \n", "39 40 253 iDataPlex DX360M4 Intel Xeon E5-2680v2 10C 2,8... \n", "2 3 18 K computer SPARC64 VIIIfx 2,0GHz Tofu intercon... \n", "54 55 246 Cobalt- bullx DLC 720 Xeon E5-2680v4 14C 2,4GH... \n", "49 50 90 Beaufix2- bullx DLC 720 Xeon E5-2698v4 20C 2,2... \n", "50 51 89 Prolix2- bullx DLC 720 Xeon E5-2698v4 20C 2,2G... \n", "17 18 21 Mira- BlueGene/Q Power BQC 16C 1,60GHz Custom ... \n", "11 12 10 Sequoia- BlueGene/Q Power BQC 16C 1,60 GHz Cus... \n", "27 28 39 Vulcan- BlueGene/Q Power BQC 16C 1,600GHz Cust... \n", "21 22 32 Shaheen II- Cray XC40 Xeon E5-2698v3 16C 2,3GH... \n", "42 43 55 HPC2- iDataPlex DX360M4 Intel Xeon E5-2680v2 1... \n", "16 17 27 Pleiades- SGI ICE X Intel Xeon E5-2670/E5-2680... \n", "55 56 271 Graham- Huawei X6800 V3 Xeon E5-2683 v4 16C 2,... \n", "44 45 62 Mistral- bullx DLC 720 Xeon E5-2680v3 12C 2,5G... \n", "12 13 9 Titan- Cray XK7 Opteron 6274 16C 2,200GHz Cray... \n", "18 19 34 Pangea- SGI ICE X Xeon Xeon E5-2670/ E5-2680v3... \n", "19 20 30 Hazel Hen- Cray XC40 Xeon E5-2680v3 12C 2,5GHz... \n", "46 47 92 Tianhe-2 LvLiang Solution- Tianhe-2 LvLiang In... \n", "37 38 42 Cray XC40 Xeon E5-2695v4 18C 2,1GHz Aries inte... \n", "36 37 43 Cray XC40 Xeon E5-2695v4 18C 2,1GHz Aries inte... \n", "51 52 105 Tera-1000-1- bullx DLC 720 Xeon E5-2698v3 16C ... \n", "43 44 77 occigen2- bullx DLC 720 Xeon E5-2690v4 14C 2,6... \n", "6 7 3 Sunway TaihuLight- Sunway MPP Sunway SW26010 2... \n", "58 59 230 Sid- bullx DLC 720 Xeon E5-2695v4 18C 2,1GHz I... \n", "57 58 360 Cartesius 2- Bullx DLC B710/B720 Blades Xeon E... \n", "59 60 212 Endeavor- Intel Cluster Intel Xeon Gold 6148/X... \n", "28 29 186 ARCHER- Cray XC30 Intel Xeon E5 v2 12C 2,700GH... \n", "26 27 64 SuperMUC- iDataPlex DX360M4 Xeon E5-2680 8C 2,... \n", "41 42 231 Curie thin nodes- Bullx B510 Xeon E5-2680 8C 2... \n", "29 30 134 Edison- Cray XC30 Intel Xeon E5-2695v2 12C 2,4... \n", "60 61 416 EAGLE- Huawei E9000 Blade Server Xeon E5-2697v... \n", "61 62 487 Lomonosov- T-Platforms T-Blade2/1,1 Xeon X5570... \n", "\n", " Gflop/Ws Arch launch \n", "53 0.326807 GPU 06/2018 \n", "4 0.308534 GPU 06/2018 \n", "0 0.299065 GPU 06/2018 \n", "1 0.241418 GPU 06/2018 \n", "15 0.238133 GPU 06/2017 \n", "5 0.208444 GPU 11/2016 \n", "13 0.205962 GPU 06/2018 \n", "34 0.192904 GPU 11/2016 \n", "8 0.141788 MIC 11/2016 \n", "47 0.114417 MIC 06/2018 \n", "10 0.105022 MIC 06/2018 \n", "9 0.090236 MIC 11/2016 \n", "20 0.074902 x86 06/2017 \n", "48 0.073892 x86 06/2018 \n", "3 0.072066 MIC 11/2017 \n", "22 0.066667 SPARC64 06/2015 \n", "23 0.063201 x86 11/2018 \n", "25 0.062594 SPARC64 11/2015 \n", "30 0.058843 SPARC64 06/2015 \n", "40 0.057448 x86 06/2018 \n", "56 0.055593 x86 11/2017 \n", "31 0.051859 GPU 06/2014 \n", "33 0.050800 GPU 11/2017 \n", "24 0.050539 x86 11/2016 \n", "45 0.049455 GPU 11/2015 \n", "39 0.048786 x86 11/2013 \n", "2 0.047610 SPARC64 11/2011 \n", "54 0.043080 x86 06/2016 \n", "49 0.042580 x86 11/2016 \n", "50 0.042570 x86 06/2016 \n", "17 0.042345 x86 06/2012 \n", "11 0.041872 x86 06/2012 \n", "27 0.041019 x86 06/2013 \n", "21 0.040180 x86 05/2015 \n", "42 0.039853 GPU 06/2014 \n", "16 0.039750 x86 11/2016 \n", "55 0.039539 GPU 06/2017 \n", "44 0.039525 x86 06/2016 \n", "12 0.039264 GPU 11/2012 \n", "18 0.039202 x86 06/2016 \n", "19 0.038174 x86 11/2014 \n", "46 0.037723 MIC 11/2014 \n", "37 0.034507 x86 06/2016 \n", "36 0.034507 x86 06/2016 \n", "51 0.033772 x86 06/2016 \n", "43 0.031797 x86 06/2017 \n", "6 0.031283 Sunway 06/2016 \n", "58 0.030718 x86 06/2016 \n", "57 0.027578 x86 06/2015 \n", "59 0.025893 MIC 11/2017 \n", "28 0.024436 x86 11/2014 \n", "26 0.024338 x86 06/2012 \n", "41 0.023917 x86 06/2012 \n", "29 0.020987 x86 06/2014 \n", "60 0.015520 x86 11/2015 \n", "61 0.000621 x86 06/2011 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "overview = df.sort_values(by=['Gflop/Ws'], ascending=False)\n", "overview[['Rank', 'TOP500 Rank', 'System', 'Gflop/Ws', 'Arch', 'launch']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Categories\n", "\n", "Let's sort by: GPU, SPARC64, MIC, and all other (mainly x86)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def system_categories(df):\n", " gpu = df.loc[df[\"Arch\"] == \"GPU\"]\n", " sparc = df.loc[df[\"Arch\"] == \"SPARC64\"]\n", " mic = df.loc[df[\"Arch\"] == \"MIC\"]\n", " sunway = df.loc[df[\"Arch\"] == \"Sunway\"]\n", " x86 = df.loc[df[\"Arch\"] == \"x86\"]\n", " return gpu, sparc, mic, sunway, x86" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "def launch_filter(df, launch_string='all'):\n", " \"\"\"ISC is 06/YYYY and SC is 11/YYYY\n", " \n", " Looking at current config \"launch\" with same HW,\n", " not necessarily equals latest upgrade\n", " \"\"\"\n", " axs.set_title(launch_string)\n", " if launch_string == 'all':\n", " return df\n", " elif len(launch_string) == 4:\n", " return df.loc[df[\"launch\"].str.endswith(launch_string)]\n", " else:\n", " return df.loc[df[\"launch\"] == launch_string]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visual Comparison\n", "\n", "Plot'n, plot'n 'n' roll'n..." ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "def plot_systems(filter_func):\n", " gpu, sparc, mic, sunway, x86 = system_categories(df)\n", " f_gpu = filter_func(gpu)\n", " n_gpu = gpu[~gpu.index.isin(f_gpu.index)]\n", " f_sparc = filter_func(sparc)\n", " n_sparc = sparc[~sparc.index.isin(f_sparc.index)]\n", " f_mic = filter_func(mic)\n", " n_mic = mic[~mic.index.isin(f_mic.index)]\n", " f_sunway = filter_func(sunway)\n", " n_sunway = sunway[~sunway.index.isin(f_sunway.index)]\n", " f_x86 = filter_func(x86)\n", " n_x86 = x86[~x86.index.isin(f_x86.index)]\n", "\n", " axs.scatter(n_gpu['Rank'], n_gpu['Gflop/Ws'].astype(float), color='grey', label=None)\n", " axs.scatter(n_sparc['Rank'], n_sparc['Gflop/Ws'].astype(float), color='grey', label=None)\n", " axs.scatter(n_mic['Rank'], n_mic['Gflop/Ws'].astype(float), color='grey', label=None)\n", " axs.scatter(n_sunway['Rank'], n_sunway['Gflop/Ws'].astype(float), color='grey', label=None)\n", " axs.scatter(n_x86['Rank'], n_x86['Gflop/Ws'].astype(float), color='grey', label=None)\n", " \n", " axs.scatter(f_gpu['Rank'], f_gpu['Gflop/Ws'].astype(float), color='green', label='GPU')\n", " axs.scatter(f_sparc['Rank'], f_sparc['Gflop/Ws'].astype(float), color='orange', label='SPARC64')\n", " axs.scatter(f_mic['Rank'], f_mic['Gflop/Ws'].astype(float), color='blue', label='MIC')\n", " axs.scatter(f_sunway['Rank'], f_sunway['Gflop/Ws'].astype(float), color='purple', label='Sunway')\n", " axs.scatter(f_x86['Rank'], f_x86['Gflop/Ws'].astype(float), color='red', label='x86')\n", " \n", " axh.hist(\n", " [n_gpu['Gflop/Ws'], n_sparc['Gflop/Ws'], n_mic['Gflop/Ws'], n_sunway['Gflop/Ws'], n_x86['Gflop/Ws'],\n", " f_gpu['Gflop/Ws'], f_sparc['Gflop/Ws'], f_mic['Gflop/Ws'], f_sunway['Gflop/Ws'], f_x86['Gflop/Ws']],\n", " color=[\n", " 'grey', 'grey', 'grey', 'grey', 'grey',\n", " 'green', 'orange', 'blue', 'purple', 'red'],\n", " bins=10, range=[0., 0.35], orientation='horizontal', stacked=True)\n", " \n", " if axs.get_legend() is None:\n", " axs.legend()\n", " # f.savefig(\"all.png\", dpi=300)\n", " f.show();" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# plot_systems(lambda x: x)\n", "# plot_systems(lambda d: launch_filter(d, 'all'))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "134a1eaee5b44584958870ba01908171", "version_major": 2, "version_minor": 0 }, "text/html": [ "

Failed to display Jupyter Widget of type FigureCanvasNbAgg.

\n", "

\n", " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", " that the widgets JavaScript is still loading. If this message persists, it\n", " likely means that the widgets JavaScript library is either not installed or\n", " not enabled. See the Jupyter\n", " Widgets Documentation for setup instructions.\n", "

\n", "

\n", " If you're reading this message in another frontend (for example, a static\n", " rendering on GitHub or NBViewer),\n", " it may mean that your frontend doesn't currently support widgets.\n", "

\n" ], "text/plain": [ "FigureCanvasNbAgg()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = plt.figure()\n", "axs = f.add_axes([0.10, 0.1, 0.6, 0.8])\n", "axh = f.add_axes([0.73, 0.1, 0.1, 0.8])\n", "axh.get_shared_y_axes().join(axs, axh)\n", "axh.yaxis.set_ticks([])\n", "# axh.set_xscale('log')\n", "axs.set_xlabel('HPCG Rank');\n", "axs.set_ylabel('HPCG GFlop/Ws')\n", "axs.set_xlim([0, 62])\n", "axs.set_ylim([0., 0.35]);" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "89375caeec4d497fbde43c62795d967f", "version_major": 2, "version_minor": 0 }, "text/html": [ "

Failed to display Jupyter Widget of type interactive.

\n", "

\n", " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", " that the widgets JavaScript is still loading. If this message persists, it\n", " likely means that the widgets JavaScript library is either not installed or\n", " not enabled. See the Jupyter\n", " Widgets Documentation for setup instructions.\n", "

\n", "

\n", " If you're reading this message in another frontend (for example, a static\n", " rendering on GitHub or NBViewer),\n", " it may mean that your frontend doesn't currently support widgets.\n", "

\n" ], "text/plain": [ "interactive(children=(Dropdown(description='filter_func', options=(('all', at 0x7f306a8e2b70>), ('2018', at 0x7f306aa922f0>), ('2017', at 0x7f306aa92400>), ('2016', at 0x7f306aa92378>), ('2015', at 0x7f306aa92488>), ('2014', at 0x7f306aa92598>), ('2013', at 0x7f306aa92510>), ('2012', at 0x7f306aa926a8>), ('2011', at 0x7f306aa92730>)), value= at 0x7f306a8e2b70>), Output()), _dom_classes=('widget-interact',))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "interact(plot_systems,\n", " filter_func=\n", " [('all', lambda d: launch_filter(d, 'all')),\n", " ('2018', lambda d: launch_filter(d, '2018')),\n", " ('2017', lambda d: launch_filter(d, '2017')),\n", " ('2016', lambda d: launch_filter(d, '2016')),\n", " ('2015', lambda d: launch_filter(d, '2015')),\n", " ('2014', lambda d: launch_filter(d, '2014')),\n", " ('2013', lambda d: launch_filter(d, '2013')),\n", " ('2012', lambda d: launch_filter(d, '2012')),\n", " ('2011', lambda d: launch_filter(d, '2011')) ]);" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }