é²æï¼SSD-to-GPU ãã¤ã¬ã¯ãSQLå®è¡æ©è½
ããæ«ãããã°ã§ã¾ã¨ãã¦ããªãã£ããSSD-to-GPUãã¤ã¬ã¯ãSQLå®è¡æ©è½ã®é²æã«ã¤ãã¦ã
ãã®æ©è½ãããã¤ã¾ãã§è¨ãã¨ãNVMe-SSDã«æ ¼ç´ããã¦ããPostgreSQLã®ãã¼ã¿ãããã¯ãGPU RAMã«ç´æ¥è»¢éããããã§SQLã®WHEREå¥/JOIN/GROUP BYãå®è¡ãããã¨ã§è¦ããä¸ã®I/Oéãåæ¸ããã¨ãã代ç©ã§ããã
NVIDIAã®Tesla/Quadro GPUã対å¿ããGPUDirect RDMAæ©è½ã使ããSSD<=>GPUéã®ãã¼ã¿è»¢éã仲ä»ããLinux kernel moduleã使ãã°ãCPU/RAMã«ãã¼ã¿ããã¼ãããåã«GPUä¸ã§ã®å¦çãè¡ããã¨ãã§ããã
ãã°ããåããScanç³»ã®å¦çã«ã¯å¯¾å¿ãã¦ããããJOIN/GROUP BYã¸ã®å¯¾å¿ãå ããããã«PostgreSQL v9.6ã®CPU並åã«ã追å¾ããã¨ãããã¨ã§ãç°¡åãªãã³ããã¼ã¯ãªãåãããããã¾ã§éçºã¯é²ãã§ãã¦ããã
ã¨ããäºã§ãç¾æç¹ã§ã®å®åãã©ã®ç¨åº¦ãªã®ããæå
ã®ç°å¢ã使ã£ã¦æ¸¬å®ãã¦ã¿ããã¨ã«ããã
使ç¨ããã®ã¯DELL R730ã«Tesla K80*1ã¨Intel SSD 750(400GB)ã2ææè¼ããã¢ãã«ã
GPUDirect RDMAã®å¶ç´ãããSSDã¨GPUãåä¸ã®CPUåã¯PCIeã¹ã¤ããã«æ¥ç¶ããã¦ããå¿
è¦ããããããå
±ã«CPU2é
ä¸ã®PCIeã¹ãããã«æ¥ç¶ãã¦ããã
ãã³ããã¼ã¯ã«ä½¿ç¨ããã®ã¯TPC-Hãç°¡ç¥åããStar Schema Benchmark(SSBM)ã¨å¼ã°ãããã¹ãã§ãä¸æ ¸ã¨ãªãlineorderãã¼ãã«ã®ãµã¤ãºãæããã«RAMã«åã¾ãåããªãããscaling factorã調æ´ãã¦ããã
SSBMã§ã¯ä½ç¨®é¡ãã¯ã¨ãªãå®ç¾©ããã¦ããããåºæ¬çã«ã¯WHEREå¥/JOIN/GROUP BYã¨ãããéè¨ã¯ã¨ãªã®å ¸åçãªãã®ã§ãããä¾ãã°ä»¥ä¸ã®ãããªãã®ã§ããã
SELECT sum(lo_revenue), d_year, p_brand1 FROM lineorder, date1, part, supplier WHERE lo_orderdate = d_datekey AND lo_partkey = p_partkey AND lo_suppkey = s_suppkey AND p_category = 'MFGR#12â AND s_region = 'AMERICAâ GROUP BY d_year, p_brand1 ORDER BY d_year, p_brand1;
ãããå®è¡ãã¦ã¿ãçµæã以ä¸ã®éãããããï¼
éè²ãPostgreSQL(ãã¡ã¤ã«ã·ã¹ãã çµç±I/O)ã§ã®å®è¡çµæãæ©è²ãPG-Stromã§ã®å®è¡çµæã§ãããããè²ã®æ¿ãæ¹ãSSD x1æã§ã®å®è¡çµæãè²ã®èãæ¹ãSSD x2æ(md-raid0)ã§ã®å®è¡çµæã
ãããè¦ãéããSSD x1æã®å ´åãPG-Stromã¯æ¦ãçè«éç*2ã«éãã¦ããããSSD x2æã®ã¹ã«ã¼ãããã§ãã4.4GB/sã«ã¯ã¾ã å±ãã¦ããªãããã ãããã¯GPUãTesla K80ã¨ããããå¤ãã¢ãã«ã§ãã£ãäºããGROUP BYã§ã®éç´æ¼ç®ãNumericåã®ç·åãå¹³åãªã©ãKeplerä¸ä»£ã®GPUã«ã¯æ¯è¼çè¾ãå¦çã ã¨ããäºã¯èæ
®ããªããã°ãããªãã ãããï¼ä¾ãã°Q4-1ãQ4-2ã§ã¯I/Oãããéè¨å¦çã«ããã«ããã¯ãããããã«è¦ããï¼
ä¸æ¹PostgreSQLã®å ´åã¯SSD x1æã§600-750MB/sç¨åº¦ãSSD x2æã§1.6GB/sç¨åº¦ã®ã¹ã«ã¼ããããªã®ã§ãPG-Stromã®å ´åã¯I/Oããã¯ãªéè¨å¦çã«ããã¦2.3ï½3.0åç¨åº¦ã®åªä½æ§ãããã¨ããäºã«ãªãã ããã
ãã®è¾ºãSSDã¨GPUããããã¯CPUã®ã©ãã«å¾éè¦å ãããã®ã追åããã®ã¯ãªããªã骨ã®æããä½æ¥ã§ã¯ããããè¿ã ãææ°ã¢ãã«ã§ããTesla P40ã§å®è¡ã§ããããã«ãªãã®ã§ãææ°ä¸ä»£ã®GPUã§ã¯ã©ã®ç¨åº¦ã®ã¹ã«ã¼ãããã¾ã§èããããã®ãã試ãã¦ã¿ããã¨ããã§ããã
æ¬æ¥ã®è¨äºã®ãã詳ããå
容ã¯ãå
æ¥ãBigData基盤研究会#7ã®æ¹ã§åããã¦é ããè³æãå
¬éãã¦ããã®ã§ããã¡ããä½µãã¦åç
§ãã¦ããã ããã°ã