<!DOCTYPE html>
<html lang="en">
  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# 2490221586: http://ogp.me/ns/fb/2490221586#">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no" />
    <meta name="include_mode" content="async">

    <!-- SL:start:notranslate -->
    <title>GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）</title>
    <meta name="description" content="https://www.postgresql.jp/events/jpug-pgcon2014 2014年 日本PostgreSQLユーザ会主催の PostgreSQLカンファレンスでの講演内容です。">
    <!-- SL:end:notranslate -->

    <meta name="robots" content="index">
    <meta id='globalTrackingUrl' content="https://www.linkedin.com/li/track">
      
<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"applicationID":"22199103","queueTime":0,"agent":"","licenseKey":"64463c96e4","beacon":"bam.nr-data.net","transactionName":"cV9ZRUZWXQ1XEU1FDVtUUkJcVkZORAoHQQ==","applicationTime":384,"errorBeacon":"bam.nr-data.net"}</script>
<script type="text/javascript">(window.NREUM||(NREUM={})).loader_config={xpid:"XQ4PQlRRCQoJVVFR"};window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t("ee"),a=t(15),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,n,e){r(e.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,n){return t}).join(", ")))},{}],2:[function(t,n,e){function r(t,n,e,r,o){try{d?d-=1:i("err",[o||new UncaughtException(t,n,e)])}catch(s){try{i("ierr",[s,c.now(),!0])}catch(u){}}return"function"==typeof f&&f.apply(this,a(arguments))}function UncaughtException(t,n,e){this.message=t||"Uncaught error with no additional information",this.sourceURL=n,this.line=e}function o(t){i("err",[t,c.now()])}var i=t("handle"),a=t(16),s=t("ee"),c=t("loader"),f=window.onerror,u=!1,d=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(l){"stack"in l&&(t(8),t(7),"addEventListener"in window&&t(5),c.xhrWrappable&&t(9),u=!0)}s.on("fn-start",function(t,n,e){u&&(d+=1)}),s.on("fn-err",function(t,n,e){u&&(this.thrown=!0,o(e))}),s.on("fn-end",function(){u&&!this.thrown&&d>0&&(d-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(8),s=t(7),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",y="pushState",g=t("loader");g.features.stn=!0,t(6);var b=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e instanceof b&&(this.bstStart=g.now())}),o.on(w,function(t,n){var e=t[0];e instanceof b&&i("bst",[e,n,this.bstStart,g.now()])}),a.on(m,function(t,n,e){this.bstStart=g.now(),this.bstType=e}),a.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),this.bstType])}),s.on(m,function(){this.bstStart=g.now()}),s.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),"requestAnimationFrame"])}),o.on(y+p,function(t){this.time=g.now(),this.startPath=location.pathname+location.hash}),o.on(y+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performance[f](u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["c"+c]()},!1):window.performance[f]("webkit"+u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["webkitC"+c]()},!1)),document[f]("scroll",r,{passive:!0}),document[f]("keypress",r,!1),document[f]("click",r,!1)}},{}],5:[function(t,n,e){function r(t){for(var n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var a=t("ee").get("events"),s=t(18)(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var e=t[1],r=c(e,"nr@wrapped",function(){function t(){if("function"==typeof e.handleEvent)return e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof e];return n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){var r=t("ee").get("history"),o=t(18)(r);n.exports=r,o.inPlace(window.history,["pushState","replaceState"],"-")},{}],7:[function(t,n,e){var r=t("ee").get("raf"),o=t(18)(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],8:[function(t,n,e){function r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var i=t("ee").get("timer"),a=t(18)(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],9:[function(t,n,e){function r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,y,"fn-",s)}function i(t){g.push(t),h&&(x?x.then(a):w?w(a):(E=-E,O.data=E))}function a(){for(var t=0;t<g.length;t++)r([],g[t]);g.length&&(g=[])}function s(t,n){return n}function c(t,n){for(var e in t)n[e]=t[e];return n}t(5);var f=t("ee"),u=f.get("xhr"),d=t(18)(u),l=NREUM.o,p=l.XHR,h=l.MO,m=l.PR,w=l.SI,v="readystatechange",y=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],g=[];n.exports=u;var b=window.XMLHttpRequest=function(t){var n=new p(t);try{u.emit("new-xhr",[n],n),n.addEventListener(v,o,!1)}catch(e){try{u.emit("internal-error",[e])}catch(r){}}return n};if(c(p,b),b.prototype=p.prototype,d.inPlace(b.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,n){r(t,n),i(n)}),u.on("open-xhr-start",r),h){var x=m&&m.resolve();if(!w&&!m){var E=1,O=document.createTextNode(E);new h(a).observe(O,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===v||a()})},{}],10:[function(t,n,e){function r(t){var n=this.params,e=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<d;r++)t.removeEventListener(u[r],this.listener,!1);if(!n.aborted){if(e.duration=a.now()-this.startTime,4===t.readyState){n.status=t.status;var i=o(t,this.lastSize);if(i&&(e.rxSize=i),this.sameOrigin){var c=t.getResponseHeader("X-NewRelic-App-Data");c&&(n.cat=c.split(", ").pop())}}else n.status=0;e.cbTime=this.cbTime,f.emit("xhr-done",[t],t),s("xhr",[n,e,this.startTime])}}}function o(t,n){var e=t.responseType;if("json"===e&&null!==n)return n;var r="arraybuffer"===e||"blob"===e||"json"===e?t.response:t.responseText;return h(r)}function i(t,n){var e=c(n),r=t.params;r.host=e.hostname+":"+e.port,r.pathname=e.pathname,t.sameOrigin=e.sameOrigin}var a=t("loader");if(a.xhrWrappable){var s=t("handle"),c=t(11),f=t("ee"),u=["load","error","abort","timeout"],d=u.length,l=t("id"),p=t(14),h=t(13),m=window.XMLHttpRequest;a.features.xhr=!0,t(9),f.on("new-xhr",function(t){var n=this;n.totalCbs=0,n.called=0,n.cbTime=0,n.end=r,n.ended=!1,n.xhrGuids={},n.lastSize=null,p&&(p>34||p<10)||window.opera||t.addEventListener("progress",function(t){n.lastSize=t.loaded},!1)}),f.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),f.on("open-xhr-end",function(t,n){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),f.on("send-xhr-start",function(t,n){var e=this.metrics,r=t[0],o=this;if(e&&r){var i=h(r);i&&(e.txSize=i)}this.startTime=a.now(),this.listener=function(t){try{"abort"===t.type&&(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof n.onload))&&o.end(n)}catch(e){try{f.emit("internal-error",[e])}catch(r){}}};for(var s=0;s<d;s++)n.addEventListener(u[s],this.listener,!1)}),f.on("xhr-cb-time",function(t,n,e){this.cbTime+=t,n?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof e.onload||this.end(e)}),f.on("xhr-load-added",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&!this.xhrGuids[e]&&(this.xhrGuids[e]=!0,this.totalCbs+=1)}),f.on("xhr-load-removed",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&this.xhrGuids[e]&&(delete this.xhrGuids[e],this.totalCbs-=1)}),f.on("addEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-added",[t[1],t[2]],n)}),f.on("removeEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-removed",[t[1],t[2]],n)}),f.on("fn-start",function(t,n,e){n instanceof m&&("onload"===e&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),f.on("fn-end",function(t,n){this.xhrCbStart&&f.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,n],n)})}},{}],11:[function(t,n,e){n.exports=function(t){var n=document.createElement("a"),e=window.location,r={};n.href=t,r.port=n.port;var o=n.href.split("://");!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=n.hostname||e.hostname,r.pathname=n.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname);var i=!n.protocol||":"===n.protocol||n.protocol===e.protocol,a=n.hostname===document.domain&&n.port===e.port;return r.sameOrigin=i&&(!n.hostname||a),r}},{}],12:[function(t,n,e){function r(){}function o(t,n,e){return function(){return i(t,[f.now()].concat(s(arguments)),n?null:this,e),n?void 0:this}}var i=t("handle"),a=t(15),s=t(16),c=t("ee").get("tracer"),f=t("loader"),u=NREUM;"undefined"==typeof window.newrelic&&(newrelic=u);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(d,function(t,n){u[n]=o(l+n,!0,"api")}),u.addPageAction=o(l+"addPageAction",!0),u.setCurrentRouteName=o(l+"routeName",!0),n.exports=newrelic,u.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,n){var e={},r=this,o="function"==typeof n;return i(p+"tracer",[f.now(),t,e],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],e),o)try{return n.apply(this,arguments)}finally{c.emit("fn-end",[f.now()],e)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,n){h[n]=o(p+n)}),newrelic.noticeError=function(t){"string"==typeof t&&(t=new Error(t)),i("err",[t,f.now()])}},{}],13:[function(t,n,e){n.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(n){return}}}},{}],14:[function(t,n,e){var r=0,o=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);o&&(r=+o[1]),n.exports=r},{}],15:[function(t,n,e){function r(t,n){var e=[],r="",i=0;for(r in t)o.call(t,r)&&(e[i]=n(r,t[r]),i+=1);return e}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],16:[function(t,n,e){function r(t,n,e){n||(n=0),"undefined"==typeof e&&(e=t?t.length:0);for(var r=-1,o=e-n||0,i=Array(o<0?0:o);++r<o;)i[r]=t[n+r];return i}n.exports=r},{}],17:[function(t,n,e){n.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],18:[function(t,n,e){function r(t){return!(t&&t instanceof Function&&t.apply&&!t[a])}var o=t("ee"),i=t(16),a="nr@original",s=Object.prototype.hasOwnProperty,c=!1;n.exports=function(t,n){function e(t,n,e,o){function nrWrapper(){var r,a,s,c;try{a=this,r=i(arguments),s="function"==typeof e?e(r,a):e||{}}catch(f){l([f,"",[r,a,o],s])}u(n+"start",[r,a,o],s);try{return c=t.apply(a,r)}catch(d){throw u(n+"err",[r,a,d],s),d}finally{u(n+"end",[r,a,c],s)}}return r(t)?t:(n||(n=""),nrWrapper[a]=t,d(t,nrWrapper),nrWrapper)}function f(t,n,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c<n.length;c++)s=n[c],a=t[s],r(a)||(t[s]=e(a,f?s+o:o,i,s))}function u(e,r,o){if(!c||n){var i=c;c=!0;try{t.emit(e,r,o,n)}catch(a){l([a,e,r,o])}c=i}}function d(t,n){if(Object.defineProperty&&Object.keys)try{var e=Object.keys(t);return e.forEach(function(e){Object.defineProperty(n,e,{get:function(){return t[e]},set:function(n){return t[e]=n,n}})}),n}catch(r){l([r])}for(var o in t)s.call(t,o)&&(n[o]=t[o]);return n}function l(n){try{t.emit("internal-error",n)}catch(e){}}return t||(t=o),e.inPlace=f,e.flag=a,e}},{}],ee:[function(t,n,e){function r(){}function o(t){function n(t){return t&&t instanceof r?t:t?c(t,s,i):i()}function e(e,r,o,i){if(!l.aborted||i){t&&t(e,r,o);for(var a=n(o),s=h(e),c=s.length,f=0;f<c;f++)s[f].apply(a,r);var d=u[y[e]];return d&&d.push([g,e,r,a]),a}}function p(t,n){v[t]=h(t).concat(n)}function h(t){return v[t]||[]}function m(t){return d[t]=d[t]||o(e)}function w(t,n){f(t,function(t,e){n=n||"feature",y[e]=n,n in u||(u[n]=[])})}var v={},y={},g={on:p,emit:e,get:m,listeners:h,context:n,buffer:w,abort:a,aborted:!1};return g}function i(){return new r}function a(){(u.api||u.feature)&&(l.aborted=!0,u=l.backlog={})}var s="nr@context",c=t("gos"),f=t(15),u={},d={},l=n.exports=o();l.backlog=u},{}],gos:[function(t,n,e){function r(t,n,e){if(o.call(t,n))return t[n];var r=e();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,n,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[n]=r,r}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],handle:[function(t,n,e){function r(t,n,e,r){o.buffer([t],r),o.emit(t,n,e)}var o=t("ee").get("handle");n.exports=r,r.ee=o},{}],id:[function(t,n,e){function r(t){var n=typeof t;return!t||"object"!==n&&"function"!==n?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");n.exports=r},{}],loader:[function(t,n,e){function r(){if(!x++){var t=b.info=NREUM.info,n=l.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&n))return u.abort();f(y,function(n,e){t[n]||(t[n]=e)}),c("mark",["onload",a()+b.offset],null,"api");var e=l.createElement("script");e.src="https://"+t.agent,n.parentNode.insertBefore(e,n)}}function o(){"complete"===l.readyState&&i()}function i(){c("mark",["domContent",a()+b.offset],null,"api")}function a(){return E.exists&&performance.now?Math.round(performance.now()):(s=Math.max((new Date).getTime(),s))-b.offset}var s=(new Date).getTime(),c=t("handle"),f=t(15),u=t("ee"),d=window,l=d.document,p="addEventListener",h="attachEvent",m=d.XMLHttpRequest,w=m&&m.prototype;NREUM.o={ST:setTimeout,SI:d.setImmediate,CT:clearTimeout,XHR:m,REQ:d.Request,EV:d.Event,PR:d.Promise,MO:d.MutationObserver};var v=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1039.min.js"},g=m&&w&&w[p]&&!/CriOS/.test(navigator.userAgent),b=n.exports={offset:s,now:a,origin:v,features:{},xhrWrappable:g};t(12),l[p]?(l[p]("DOMContentLoaded",i,!1),d[p]("load",r,!1)):(l[h]("onreadystatechange",o),d[h]("onload",r)),c("mark",["firstbyte",s],null,"api");var x=0,E=t(17)},{}]},{},["loader",2,10,4,3]);</script>
  <!-- SL:start:notranslate -->
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="x-dns-prefetch-control" content="on">
  <meta name="thumbnail" content="https://cdn.slidesharecdn.com/ss_thumbnails/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02-thumbnail.jpg?cb=1417742188" />
  <!-- SL:end:notranslate -->
  <meta content="{&quot;selected&quot;:&quot;Selected&quot;,&quot;clipping.select_clipboard_modal.select_another_clipboard&quot;:&quot;Select another clipboard&quot;,&quot;ajax_signup.login.rsvp&quot;:&quot;Login to SlideShare to join this meeting\u2026&quot;,&quot;ajax_signup.login_to_ss&quot;:&quot;Login to SlideShare&quot;,&quot;slideview.comments_loggedin.organization&quot;:&quot;at {:organization}&quot;,&quot;slideview.comments_loggedin.commenting.failure&quot;:&quot;Hey something went wrong :-(\nCould you try again?&quot;,&quot;views.other&quot;:&quot;views&quot;,&quot;clipping.toast.change_clipboard&quot;:&quot;Change clipboard&quot;,&quot;slideview.comments_loggedin.block_user.failure&quot;:&quot;Oops! Something went wrong. Please try again after sometime.&quot;,&quot;lynda.domain&quot;:&quot;lynda&quot;,&quot;li_connect.login.no_match&quot;:&quot;Login does not match, please try again.&quot;,&quot;ajax_signup.signup.rsvp&quot;:&quot;Signup for SlideShare to join this meeting\u2026&quot;,&quot;ajax_signup.signup.create&quot;:&quot;Signup for SlideShare to start creating\u2026&quot;,&quot;ajax_signup.connect&quot;:&quot;connect&quot;,&quot;slideview.comments_loggedin.delete_comment.title&quot;:&quot;Are you sure you want to delete this comment?&quot;,&quot;slideview.comments_loggedin.spam_comment.title&quot;:&quot;Are you sure you want to mark this comment as spam?&quot;,&quot;lynda.premium_video&quot;:&quot;PREMIUM VIDEO&quot;,&quot;clipping.toast.share_clip&quot;:&quot;Share clip&quot;,&quot;ajax_signup.login.follow&quot;:&quot;Login to SlideShare to follow this user\u2026&quot;,&quot;ajax_signup.login.create&quot;:&quot;Login to SlideShare to start creating\u2026&quot;,&quot;share&quot;:&quot;Share&quot;,&quot;ajax_signup.login.addcontact&quot;:&quot;Login to SlideShare to follow\u2026&quot;,&quot;ajax_signup.signup.download&quot;:&quot;Signup for SlideShare to download\u2026&quot;,&quot;ajax_signup.signup.upload&quot;:&quot;Signup for SlideShare to start uploading\u2026&quot;,&quot;slideview.comments_loggedin.block_user.success&quot;:&quot;The user is blocked!&quot;,&quot;action-bar.like.why_not_share&quot;:&quot;Like this? Why not share?&quot;,&quot;slideshow.foundation_slideview.like&quot;:&quot;Like&quot;,&quot;action-bar.unlike.text&quot;:&quot;Unlike&quot;,&quot;ajax_signup.login.contest&quot;:&quot;Login to SlideShare to vote\u2026&quot;,&quot;ajax_signup.login.clip&quot;:&quot;Login to SlideShare. Don\u2019t lose your clips!&quot;,&quot;ajax_signup.signup.contest&quot;:&quot;Signup for SlideShare to vote\u2026&quot;,&quot;ajax_signup.signup.clip&quot;:&quot;Signup for SlideShare. Don\u2019t lose your clips!&quot;,&quot;clipping.filmstrip.message&quot;:&quot;Top clipped slide&quot;,&quot;lynda.tld&quot;:&quot;.com&quot;,&quot;li_connect.slideshare_added&quot;:&quot;Your SlideShare was successfully added to your LinkedIn profile.&quot;,&quot;ajax_signup.login.comments&quot;:&quot;Login to SlideShare to post a comment\u2026&quot;,&quot;ajax_signup.signup.follow&quot;:&quot;Signup for SlideShare to follow this user\u2026&quot;,&quot;clipping.select_clipboard_modal.select_new_clipboard&quot;:&quot;Select a new clipboard&quot;,&quot;ajax_signup.login.favorite&quot;:&quot;Login to SlideShare to like\u2026&quot;,&quot;ajax_signup.login.user&quot;:&quot;Login to SlideShare to register the username\u2026&quot;,&quot;ajax_signup.signup.addcontact&quot;:&quot;Signup for SlideShare to follow\u2026&quot;,&quot;ajax_signup.signup.comments&quot;:&quot;Signup for SlideShare to post a comment\u2026&quot;,&quot;ajax_signup.signup.zipcast&quot;:&quot;Signup for SlideShare to schedule a meeting\u2026&quot;,&quot;slideshow.foundation_slideview.likes_count&quot;:&quot;{:count,number} {:count,choice,singular#Like|plural#Likes}&quot;,&quot;select&quot;:&quot;Select&quot;,&quot;ajax_signup.login.download&quot;:&quot;Login to SlideShare to download\u2026&quot;,&quot;ajax_signup.login.AddToCommunity&quot;:&quot;Login to SlideShare to add this document to a group/event\u2026&quot;,&quot;ajax_signup.login.zipcast&quot;:&quot;Login to SlideShare to schedule a meeting\u2026&quot;,&quot;ajax_signup.signup.AddToCommunity&quot;:&quot;Signup for SlideShare to add this document to a group/event\u2026&quot;,&quot;ajax_signup.signup.business&quot;:&quot;Signup for SlideShare to continue\u2026&quot;,&quot;ajax_signup.signup_for_ss&quot;:&quot;Signup for SlideShare&quot;,&quot;slideview.comments_loggedin.block_user.title&quot;:&quot;Are you sure you want to block this user?&quot;,&quot;slideview.comments_loggedin.timestamp&quot;:&quot;less than a second ago&quot;,&quot;right_rail.recommended&quot;:&quot;Recommended&quot;,&quot;ajax_signup.signup.favorite&quot;:&quot;Signup for SlideShare to like\u2026&quot;,&quot;ajax_signup.signup.user&quot;:&quot;Signup for SlideShare to register the username\u2026&quot;,&quot;ajax_signup.login.business&quot;:&quot;Login to SlideShare to continue\u2026&quot;,&quot;ajax_signup.login.upload&quot;:&quot;Login to SlideShare to start uploading\u2026&quot;}" name="ss-i18n-translations" />
  <meta content="{&quot;clip.slideview.success_toast.message&quot;:&quot;Slide {0,number} clipped to: \u003Cbr /\u003E {1,anchor,text#{2,text}}&quot;,&quot;slideshow.foundation_slideview.loading&quot;:&quot;Loading\u2026&quot;,&quot;clip.clips.error_creating_clipboard&quot;:&quot;Error creating a clipboard.&quot;,&quot;ssplayer.event_manager.playershare.share_slideshare&quot;:&quot;Share SlideShare&quot;,&quot;clip.clips.error_clipping&quot;:&quot;Error while clipping.&quot;,&quot;profile.edit_marketing_settings.saved&quot;:&quot;Saved&quot;,&quot;clip.clips.error_adding_to_clipboard&quot;:&quot;Error adding to clipboard.&quot;,&quot;clip.slideview.share_message&quot;:&quot;Share Slide {0,number} from {1,text}&quot;,&quot;clip.clips.error_fetching_clipboards&quot;:&quot;Error fetching clipboards.&quot;}" name="ss-i18n-translations" />

    <link rel="shortcut icon" href="https://public.slidesharecdn.com/favicon.ico?d8e2a4ed15">
    <link rel="alternate" type="application/rss+xml" title="RSS" href="https://www.slideshare.net/rss/latest" />
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="SlideShare Search">

    <link href="https://public.slidesharecdn.com/ss_foundation/stylesheets/app_critical.css?480dbb8b8a" media="screen" rel="stylesheet" type="text/css" />
    <!--[if IE 9]><link href="https://public.slidesharecdn.com/ss_foundation/stylesheets/ie9_nav_bar_fix.css?8fb8af5274" media="screen" rel="stylesheet" type="text/css" /><![endif]-->
    <link rel="alternate" hreflang="en" href="https://www.slideshare.net/kaigai/gpgpupostgresql"/>
<link rel="alternate" hreflang="es" href="https://es.slideshare.net/kaigai/gpgpupostgresql"/>
<link rel="alternate" hreflang="fr" href="https://fr.slideshare.net/kaigai/gpgpupostgresql"/>
<link rel="alternate" hreflang="de" href="https://de.slideshare.net/kaigai/gpgpupostgresql"/>
<link rel="alternate" hreflang="pt" href="https://pt.slideshare.net/kaigai/gpgpupostgresql"/>
<link rel="alternate" hreflang="x-default" href= "https://www.slideshare.net/kaigai/gpgpupostgresql"/>


      <meta content="index" name="robots" />

  <link href="https://public.slidesharecdn.com/ss_foundation/stylesheets/slideview_critical.css?d64cac2a3c" media="screen" rel="stylesheet" type="text/css" />

    

<link href="https://public.slidesharecdn.com/stylesheets/ssplayer/combined_presentation.css?933e754ccb" media="screen" rel="stylesheet" type="text/css" />



    <link rel="dns-prefetch" href="//www.slideshare.net">
    <link rel="dns-prefetch" href="//public.slidesharecdn.com">
    <link rel="dns-prefetch" href="//image.slidesharecdn.com">
    <link rel="dns-prefetch" href="//cdn.slidesharecdn.com">
    <link rel="dns-prefetch" href="//www.linkedin.com">

    <script type='text/javascript'>
      // Inlining Modernizr
      window.Modernizr=function(a,b,c){function d(a){t.cssText=a}function e(a,b){return d(x.join(a+";")+(b||""))}function f(a,b){return typeof a===b}function g(a,b){return!!~(""+a).indexOf(b)}function h(a,b){for(var d in a){var e=a[d];if(!g(e,"-")&&t[e]!==c)return"pfx"==b?e:!0}return!1}function i(a,b,d){for(var e in a){var g=b[a[e]];if(g!==c)return d===!1?a[e]:f(g,"function")?g.bind(d||b):g}return!1}function j(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+z.join(d+" ")+d).split(" ");return f(b,"string")||f(b,"undefined")?h(e,b):(e=(a+" "+A.join(d+" ")+d).split(" "),i(e,b,c))}function k(){o.input=function(c){for(var d=0,e=c.length;e>d;d++)E[c[d]]=!!(c[d]in u);return E.list&&(E.list=!(!b.createElement("datalist")||!a.HTMLDataListElement)),E}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),o.inputtypes=function(a){for(var d,e,f,g=0,h=a.length;h>g;g++)u.setAttribute("type",e=a[g]),d="text"!==u.type,d&&(u.value=v,u.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&u.style.WebkitAppearance!==c?(q.appendChild(u),f=b.defaultView,d=f.getComputedStyle&&"textfield"!==f.getComputedStyle(u,null).WebkitAppearance&&0!==u.offsetHeight,q.removeChild(u)):/^(search|tel)$/.test(e)||(d=/^(url|email)$/.test(e)?u.checkValidity&&u.checkValidity()===!1:u.value!=v)),D[a[g]]=!!d;return D}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var l,m,n="2.8.2",o={},p=!0,q=b.documentElement,r="modernizr",s=b.createElement(r),t=s.style,u=b.createElement("input"),v=":)",w={}.toString,x=" -webkit- -moz- -o- -ms- ".split(" "),y="Webkit Moz O ms",z=y.split(" "),A=y.toLowerCase().split(" "),B={svg:"http://www.w3.org/2000/svg"},C={},D={},E={},F=[],G=F.slice,H=function(a,c,d,e){var f,g,h,i,j=b.createElement("div"),k=b.body,l=k||b.createElement("body");if(parseInt(d,10))for(;d--;)h=b.createElement("div"),h.id=e?e[d]:r+(d+1),j.appendChild(h);return f=["&#173;",'<style id="s',r,'">',a,"</style>"].join(""),j.id=r,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background="",l.style.overflow="hidden",i=q.style.overflow,q.style.overflow="hidden",q.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),q.style.overflow=i),!!g},I=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return H("@media "+b+" { #"+r+" { position: absolute; } }",function(b){d="absolute"==(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position}),d},J=function(){function a(a,e){e=e||b.createElement(d[a]||"div"),a="on"+a;var g=a in e;return g||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(a,""),g=f(e[a],"function"),f(e[a],"undefined")||(e[a]=c),e.removeAttribute(a))),e=null,g}var d={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return a}(),K={}.hasOwnProperty;m=f(K,"undefined")||f(K.call,"undefined")?function(a,b){return b in a&&f(a.constructor.prototype[b],"undefined")}:function(a,b){return K.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=G.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(G.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(G.call(arguments)))};return d}),C.flexbox=function(){return j("flexWrap")},C.flexboxlegacy=function(){return j("boxDirection")},C.canvas=function(){var a=b.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))},C.canvastext=function(){return!(!o.canvas||!f(b.createElement("canvas").getContext("2d").fillText,"function"))},C.webgl=function(){return!!a.WebGLRenderingContext},C.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:H(["@media (",x.join("touch-enabled),("),r,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=9===a.offsetTop}),c},C.geolocation=function(){return"geolocation"in navigator},C.postmessage=function(){return!!a.postMessage},C.websqldatabase=function(){return!!a.openDatabase},C.indexedDB=function(){return!!j("indexedDB",a)},C.hashchange=function(){return J("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},C.history=function(){return!(!a.history||!history.pushState)},C.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},C.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},C.rgba=function(){return d("background-color:rgba(150,255,150,.5)"),g(t.backgroundColor,"rgba")},C.hsla=function(){return d("background-color:hsla(120,40%,100%,.5)"),g(t.backgroundColor,"rgba")||g(t.backgroundColor,"hsla")},C.multiplebgs=function(){return d("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(t.background)},C.backgroundsize=function(){return j("backgroundSize")},C.borderimage=function(){return j("borderImage")},C.borderradius=function(){return j("borderRadius")},C.boxshadow=function(){return j("boxShadow")},C.textshadow=function(){return""===b.createElement("div").style.textShadow},C.opacity=function(){return e("opacity:.55"),/^0.55$/.test(t.opacity)},C.cssanimations=function(){return j("animationName")},C.csscolumns=function(){return j("columnCount")},C.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return d((a+"-webkit- ".split(" ").join(b+a)+x.join(c+a)).slice(0,-a.length)),g(t.backgroundImage,"gradient")},C.cssreflections=function(){return j("boxReflect")},C.csstransforms=function(){return!!j("transform")},C.csstransforms3d=function(){var a=!!j("perspective");return a&&"webkitPerspective"in q.style&&H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b){a=9===b.offsetLeft&&3===b.offsetHeight}),a},C.csstransitions=function(){return j("transition")},C.fontface=function(){var a;return H('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&0===g.indexOf(d.split(" ")[0])}),a},C.generatedcontent=function(){var a;return H(["#",r,"{font:0/0 a}#",r,':after{content:"',v,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},C.video=function(){var a=b.createElement("video"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(d){}return c},C.audio=function(){var a=b.createElement("audio"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(d){}return c},C.localstorage=function(){try{return localStorage.setItem(r,r),localStorage.removeItem(r),!0}catch(a){return!1}},C.sessionstorage=function(){try{return sessionStorage.setItem(r,r),sessionStorage.removeItem(r),!0}catch(a){return!1}},C.webworkers=function(){return!!a.Worker},C.applicationcache=function(){return!!a.applicationCache},C.svg=function(){return!!b.createElementNS&&!!b.createElementNS(B.svg,"svg").createSVGRect},C.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==B.svg},C.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(w.call(b.createElementNS(B.svg,"animate")))},C.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(w.call(b.createElementNS(B.svg,"clipPath")))};for(var L in C)m(C,L)&&(l=L.toLowerCase(),o[l]=C[L](),F.push((o[l]?"":"no-")+l));return o.input||k(),o.addTest=function(a,b){if("object"==typeof a)for(var d in a)m(a,d)&&o.addTest(d,a[d]);else{if(a=a.toLowerCase(),o[a]!==c)return o;b="function"==typeof b?b():b,"undefined"!=typeof p&&p&&(q.className+=" "+(b?"":"no-")+a),o[a]=b}return o},d(""),s=u=null,function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=s.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=r[a[p]];return b||(b={},q++,a[p]=q,r[q]=b),b}function f(a,c,d){if(c||(c=b),k)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():o.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||n.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),k)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function i(a){a||(a=b);var d=e(a);return!s.shivCSS||j||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||h(a,d),a}var j,k,l="3.7.0",m=a.html5||{},n=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,o=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,p="_html5shiv",q=0,r={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",j="hidden"in a,k=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){j=!0,k=!0}}();var s={elements:m.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:l,shivCSS:m.shivCSS!==!1,supportsUnknownElements:k,shivMethods:m.shivMethods!==!1,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=s,i(b)}(this,b),o._version=n,o._prefixes=x,o._domPrefixes=A,o._cssomPrefixes=z,o.mq=I,o.hasEvent=J,o.testProp=function(a){return h([a])},o.testAllProps=j,o.testStyles=H,o.prefixed=function(a,b,c){return b?j(a,b,c):j(a,"pfx")},q.className=q.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+F.join(" "):""),o}(this,this.document);

      // GA Segmentation
      window._gaq = window._gaq || []; _gaq.push(['_setAccount', 'UA-2330466-1']);_gaq.push(['_setDomainName', '.slideshare.net']);_gaq.push(['_addIgnoredRef', 'slideshare.net']);_gaq.push(['_setCustomVar', 1, 'member_type', 'LOGGEDOUT', 1]);
        _gaq.push(['_trackPageview']);

      // Comscore
      var _comscore = _comscore || [];
      _comscore.push({ c1: "2", c2: "6402952" });

      // Slideshare object
      var slideshare_object = {
        user: {"userGroup":"non-member","login":"guest","fb_userid":null,"is_pro":"false","has_uploads":null,"is_li_connected":false,"li_tracking_url":"https://www.linkedin.com/li/track","id":null,"su":false,"is_test_user":false,"is_valid_fbuser":false,"show_li_connect_cta":false,"loggedin":false,"name":null,"has_privacy_enabled":null},
        timer: { start: (new Date()).getTime(), end: '', execTime: '' },
        top_nav: { get_url: "/top_nav"},
        dev: false,
        init: [],
        feature_flag: [],
        is_mobile: "",
        deploy_environment: "production",
        rum_pagekey: "desktop_slideview_loggedout",
        is_ssl: true
      };
    </script>

    <meta content="https://public.slidesharecdn.com/images/artdeco/icons.svg?43e81fd2ef" name="ss-svg-icons" />

    <script src="https://public.slidesharecdn.com/ss_foundation/combined_experiments.js?59e3c7a1df" type="text/javascript"></script>

    

      <link rel="dns-prefetch" href="//js.bizographics.com">
  <script id="adQueue" type="text/javascript"><!--
 if(!slideshare_object.delayedLIAd){ slideshare_object._adQueue = []; } 
//--></script>
  <script type="text/javascript" id="ga-init">
  // <![CDATA[
    // Setting custom variable [slot = 3, scope = 3(page level)] for tracking source (related, search etc) of pageview
    window._gaq.push(['_setCustomVar', 3, 'source', 'not_set', 3]);
    window._gaq.push(['_trackEvent', 'bigfoot_slideview', 'pageload', slideshare_object.gam_cat_name, undefined, true]);

  // ]]>
    <!--
 slideshare_object.deploy_environment = 'production'; 
//-->
  </script>
    <link href="https://www.slideshare.net/kaigai/gpgpupostgresql" rel="canonical" />
  <link title="Slideshow json oEmbed Profile" type="application/json+oembed" href="https://www.slideshare.net/api/oembed/2?format=json&amp;url=http://www.slideshare.net/kaigai/gpgpupostgresql" rel="alternate" />
  <link title="Slideshow xml oEmbed Profile" type="text/xml+oembed" href="https://www.slideshare.net/api/oembed/2?format=xml&amp;url=http://www.slideshare.net/kaigai/gpgpupostgresql" rel="alternate" />
  <link media="handheld" href="https://www.slideshare.net/mobile/kaigai/gpgpupostgresql" rel="alternate" />

    <link href="android-app://net.slideshare.mobile/slideshare-app/ss/42381453" rel="alternate" />
    <link href="ios-app://917418728/slideshare-app/ss/42381453" rel="alternate" />
  <meta name="apple-itunes-app" content="app-id=917418728, affiliate-data=ct=smart_banner&amp;pt=10746, app-argument=slideshare-app://ss/42381453"/>
  <link rel="manifest" href="/manifest.json"/>


  <!-- fb open graph meta tags -->
    <meta content="2490221586" class="fb_og_meta" property="fb:app_id" name="fb_app_id" />
    <meta content="slideshare:presentation" class="fb_og_meta" property="og:type" name="og_type" />
    <meta content="https://www.slideshare.net/kaigai/gpgpupostgresql" class="fb_og_meta" property="og:url" name="og_url" />
    <meta content="https://cdn.slidesharecdn.com/ss_thumbnails/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02-thumbnail-4.jpg?cb=1417742188" class="fb_og_meta" property="og:image" name="og_image" />
    <!-- SL:start:notranslate -->
    <meta content="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）" class="fb_og_meta" property="og:title" name="og_title" />
    <meta content="https://www.postgresql.jp/events/jpug-pgcon2014 2014年 日本PostgreSQLユーザ会主催の PostgreSQLカンファレンスでの講演内容です。" class="fb_og_meta" property="og:description" name="og_description" />
    <!-- SL:end:notranslate -->
    <meta content="2014-12-05T01:14:45Z" class="fb_og_meta" property="slideshare:published" name="slideshow_published_time" />
    <meta content="https://www.slideshare.net/kaigai" class="fb_og_meta" property="slideshare:author" name="slideshow_author" />
    <meta content="9393" class="fb_og_meta" property="slideshare:view_count" name="slideshow_view_count" />
    <meta content="731" class="fb_og_meta" property="slideshare:embed_count" name="slideshow_embed_count" />
    <meta content="0" class="fb_og_meta" property="slideshare:comment_count" name="slideshow_comment_count" />
    <meta content="64" class="fb_og_meta" property="slideshare:download_count" name="slideshow_download_count" />
    <meta content="2014-12-05 01:14:45 UTC" class="fb_og_meta" property="slideshare:created_at" name="slideshow_created_at" />
    <meta content="2014-12-05 01:16:28 UTC" class="fb_og_meta" property="slideshare:updated_at" name="slideshow_updated_at" />
    <meta content="" class="fb_og_meta" property="slideshare:featured_on" name="slideshow_featured_on" />
    <meta content="25" class="fb_og_meta" property="slideshare:favorites_count" name="slideshow_favorites_count" />
    <meta content="Technology" class="fb_og_meta" property="slideshare:category" name="slideshow_category" />

  <!-- SL:start:notranslate -->
    <meta name="twitter:card" value="player" />
    <meta name="twitter:site" value="@slideshare" />
    <meta class="twitter_player" value="https://www.slideshare.net/slideshow/embed_code/key/zr1hj93S2fgXol" name="twitter:player" />
    <meta name="twitter:player:width" value="342" />
    <meta name="twitter:player:height" value="291" />
    <meta class="twitter_title" value="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）" name="twitter:title" />
    <meta class="twitter_image" value="https://cdn.slidesharecdn.com/ss_thumbnails/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02-thumbnail-4.jpg?cb=1417742188" name="twitter:image" />
    <meta name="twitter:app:name:googleplay" content="SlideShare Android"/>
    <meta name="twitter:app:id:googleplay" content="net.slideshare.mobile"/>
    <meta name="twitter:app:url:googleplay" content="https://www.slideshare.net/kaigai/gpgpupostgresql" />
    <meta name="twitter:app:name:iphone" content="SlideShare iOS" />
    <meta name="twitter:app:id:iphone" content="917418728" />
    <meta name="twitter:app:url:iphone" content="slideshare-app://ss/42381453" />
    <meta name="twitter:app:name:ipad" content="SlideShare iOS" />
    <meta name="twitter:app:id:ipad" content="917418728" />
    <meta name="twitter:app:url:ipad" content="slideshare-app://ss/42381453" />

  <meta property="al:android:url" content="slideshare-app://ss/42381453" />
  <meta property="al:android:app_name" content="SlideShare Android" />
  <meta property="al:android:package" content="net.slideshare.mobile" />
  <meta property="al:ios:url" content="slideshare-app://ss/42381453" />
  <meta property="al:ios:app_store_id" content="917418728" />
  <meta property="al:ios:app_name" content="SlideShare iOS" />
  <!-- SL:end:notranslate -->

  </head>

  <body id="pagekey-slideshare_desktop_slideview_loggedout" class="   locale-en">
      <!-- TOS update banner -->
      <div class="j-tos-update-banner tos-update-banner" style="display: none;">
  <button class="j-tos-close tos-close fa fa-times-circle"></button>
  <div class="text-div">
    <p class="j-mobile-text mobile-text" style="display: none;">
      Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our <a target="_blank" href="http://www.linkedin.com/legal/user-agreement">User Agreement</a> and <a target="_blank" href="http://www.linkedin.com/legal/privacy-policy">Privacy Policy</a>.
    </p>
    <p class="j-desktop-text desktop-text" style="display: none;">
      Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our <a target="_blank" href="http://www.linkedin.com/legal/privacy-policy">Privacy Policy</a> and <a target="_blank" href="http://www.linkedin.com/legal/user-agreement">User Agreement</a> for details.
    </p>
  </div>
</div>




      <div id="main-nav" class="contain-to-grid fixed">
        <div class="icon-bar four-up hide-for-medium-up icon-bar-custom">
          <a class="item" href="/" aria-labelledby="#home">
            <i class="icon-slideshare-logo"></i>
            <label id="home">SlideShare</label>
          </a>
          <a class="item" href="/explore" aria-labelledby="#explore">
            <i class="fa fa-compass"></i>
            <label id="explore">Explore</label>
          </a>
          <a class="item j-open-mobile-search" aria-labelledby="#search">
            <i class="fa fa-search"></i>
            <label id="search">Search</label>
          </a>
            <a class="item" class="void_fancybox void_redirect_link" href="https://www.slideshare.net/login" aria-labelledby="#you">
              <i class="fa fa-user"></i>
              <label id="you">You</label>
            </a>
        </div>


        <nav class="top-bar visible-for-medium-up" data-topbar>
          <ul class="title-area">
            <li class="name">
              <a href="/">
                <img id="main-navbar-logo" alt="LinkedIn SlideShare" src="https://public.slidesharecdn.com/images/logo/linkedin-ss/SS_Logo_White_Large.png?6d1f7a78a6">
              </a>
            </li>
          </ul>

          <section class="top-bar-section">
            <ul class="right upload-create button-group">
              <li class="has-form upload-create">
                <a href="/upload" class="button radius secondary">Upload</a>
              </li>

                <li>
                  <a href="https://www.slideshare.net/login" class="void_fancybox void_redirect_link" id="login">Login</a>
                </li>
                <li>
                  <a href="https://www.slideshare.net/w/signup" class="void_fancybox void_redirect_link" id="signup" title="Signup now for a SlideShare account">Signup</a>
                </li>
            </ul>

            <ul class="left">
              <li class="divider"></li>
              <li id="nav-search" class="has-form">
                <form id="nav-search-form" method="get" action="/search/slideshow">
                  <div class="input-box">
                  <input name="searchfrom" type="hidden" value="header">
                    <input id="nav-search-query" type="text" placeholder="Search" name="q" value="" autocomplete="off">
                    <button class="button expand" type="submit"><i class="fa fa-search"></i></button>
                    <ul class='search-suggestions dropdown f-dropdown medium' style="display:none;"></ul>
                  </div>
                </form>
              </li>
            </ul>
          </section>
        </nav>

          <div class="visible-for-medium-up sub-navbar">
            <div class="row">
              <div class="container">
                <ul class="sub-nav-cats left">
                    <li class="sub-nav-cat">
                      <a href="/" class="sub-nav-link" data-ga-action="click" data-ga-cat="sub_nav_cat" data-ga-label="Home" rel="nofollow">Home</a>
                    </li>
                    <li class="sub-nav-cat">
                      <a href="/featured/category/technology" class="sub-nav-link" data-ga-action="click" data-ga-cat="sub_nav_cat" data-ga-label="Technology" rel="nofollow">Technology</a>
                    </li>
                    <li class="sub-nav-cat">
                      <a href="/featured/category/education" class="sub-nav-link" data-ga-action="click" data-ga-cat="sub_nav_cat" data-ga-label="Education" rel="nofollow">Education</a>
                    </li>
                    <li class="sub-nav-cat">
                      <a href="/explore" class="sub-nav-link" data-ga-action="click" data-ga-cat="sub_nav_cat" data-ga-label="More Topics" rel="nofollow">More Topics</a>
                    </li>
                </ul>
                <ul class="sub-nav-cats right show-for-large-up sub-nav-link-ctas">
                  <li class="sub-nav-cat has-dropdown creators-hub-dropdown" data-dropdown="creators-hub-dropdown" data-options="is_hover:true;">
                    <a href="/ss/creators?from=sub-nav" class="sub-nav-link creators-hub" data-ga-action="click" data-ga-cat="sub_nav_cat" data-ga-label="creators_hub">For Uploaders</a>
                  </li>
                </ul>
                <ul id="creators-hub-dropdown" class="dropdown f-dropdown creators-hub-dropdown" data-dropdown-content>
                  <li>
                    <a href="/ss/creators/get-started?from=sub-nav"
                    data-ga-cat="sub_nav_cat"
                    data-ga-action="click"
                    data-ga-label="creators_hub_gs"
                    rel="nofollow">
                    Get Started</a>
                  </li>
                  <li class="divider"></li>
                  <li>
                    <a href="/ss/creators/tips-and-tricks?from=sub-nav"
                    data-ga-cat="sub_nav_cat"
                    data-ga-action="click"
                    data-ga-label="creators_hub_tat"
                    rel="nofollow">
                    Tips & Tricks</a>
                  </li>
                  <li class="divider"></li>
                  <li>
                    <a href="/ss/creators/tools?from=sub-nav"
                    data-ga-cat="sub_nav_cat"
                    data-ga-action="click"
                    data-ga-label="creators_hub_tools"
                    rel="nofollow">
                    Tools</a>
                  </li>
                </ul>
              </div>
            </div>
          </div>
      </div>

    <div class="wrapper">
        <div id="main-nav-mobile-search">
          <form name="mobile-search" action="/search/slideshow" method="get">
           <div class="input-box">
              <input type="text" placeholder="Search" name="q" value="" autocomplete="off">
              <a class="button expand">
                <i class="search-icon fa fa-search"></i>
                <i class="search-spinner fa fa-spinner fa-spin"></i>
              </a>
            </div>
          </form>
        </div>
        


      

      




<iframe id="download" style="display:none" src="" class="notify"></iframe>
<div id="j-downloading-alert" data-alert class="alert-box success radius
downloading-alert">
  <span class="copy-in-aria-label" aria-label="Your SlideShare is downloading."></span>
  <a href="#" class="close copy-in-aria-label" aria-label="&times;"></a>
</div>





<div id="slideview-container" class="">
  <div class="slideview-header-container row">
    <div class="columns">




      <div></div>
    </div>
  </div>

  <div class="row">

    <div id="main-panel" class="small-12 large-8 columns">


      <div class="sectionElements">

          

<div class="j-clips-toolbar clips-toolbar ">

  <div class="clips-progress progress">
    <span class="j-clips-meter clip-meter meter" style="width:0%"></span>
  </div>

  <div class="j-clips-info clips-info">
    <span class="j-clips-count clips-count copy-in-aria-label" aria-label="0"></span>
    <span class="j-clips-count-text clips-count-text notranslate copy-in-aria-label"></span>
  </div>

</div>


        <div class="playerWrapper">



            <div>
              <!-- For slideview page , combined js for player is now combined with slideview javascripts for logged out users-->


<div class="player lightPlayer fluidImage presentation_player" id="svPlayerId">
  <span class="j-fullscreen-title-banner fullscreen-title-banner" style="display: none;">
    GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）
  </span>

  <div class="stage valign-first-slide">
    <div class="player-cta-container">
          <div class="clip-button-top">
  <a id="clips-button-top" class="j-clips-button clip-button player-cta visible "
    href="/signup?login_source=slideview.clip.like&amp;from=clip&amp;layout=foundation&amp;from_source="
    rel="nofollow" data-reveal-id=login_modal style="display:none">
    <div class="container clearfix">
      <div class="svg-icon">
        <svg><use data-size="small" xlink:href="#clipboard-add-icon"></use></svg>
      </div>
      <span class="clip-button-text-clip notranslate copy-in-aria-label" aria-label="Clip slide" title="Clip to save this slide for later"></span>
    </div>
  </a>
</div>

    </div>
    <a class="exit-fullscreen j-exit-fullscreen" style="display: none;">
      <i class="fa fa-compress fa-2x"></i>
    </a>
    <div class="slide_container">
            <section data-index="1"  class="slide show" itemprop=image>
                <img class="slide_image"
                  src="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-1-638.jpg?cb=1417742188"
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-1-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-1-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-1-1024.jpg?cb=1417742188"
                  alt="GPGPUがPostgreSQLを加速する ～PG-Stromご紹介～ 
NEC OSS推進センター 
The PG-Strom Project 
海外 浩平 &lt;kaigai@ak.jp.nec.com&gt; 
(Tw: @kkaigai)  "/>
            </section>
            <section data-index="2"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-2-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-2-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-2-1024.jpg?cb=1417742188"
                  alt="自己紹介 
▌名前: 海外 浩平 
▌所属： NEC OSS推進センター 
▌好きなもの： コアの多いプロセッサ 
▌嫌いなもの： コアの少ないプロセッサ 
▌経歴: 
HPC  OSS/Linux  SAP  GPU/PostgreS..."/>
            </section>
            <section data-index="3"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-3-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-3-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-3-1024.jpg?cb=1417742188"
                  alt="処理性能向上のアプローチ 
Page. 3 
スケールアウト 
スケールアップ 
ホモジニアス・スケールアップ 
ヘテロジニアス・スケールアップ 
+ 
The PostgreSQL Conference 2014, Tokyo - GPGPU..."/>
            </section>
            <section data-index="4"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-4-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-4-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-4-1024.jpg?cb=1417742188"
                  alt="GPU (Graphic Processor Unit) の特徴 
▌GPUの特徴 
チップに占める演算ユニットの比率が高い 
キャッシュ・制御ロジックの比率が小さい 
単純な演算の並列処理に向く。 複雑なロジックの処理は苦手。 
値段..."/>
            </section>
            <section data-index="5"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-5-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-5-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-5-1024.jpg?cb=1417742188"
                  alt="GPU活用による計算の例 – 縮約アルゴリズム 
● 
item[0] 
step.1 
step.2 
step.4 
step.3 
N個のGPUコアによる 
Σi=0...N-1item[i] 
配列総和の計算 
◆ 
● 
▲ 
■ 
..."/>
            </section>
            <section data-index="6"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-6-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-6-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-6-1024.jpg?cb=1417742188"
                  alt="半導体技術のトレンド (1/2) – ヘテロジニアス化 
▌マルチコアCPUから、CPU/GPU統合型アーキテクチャへの移行 
▌HW性能向上からSWがフリーランチを享受できた時代は終わりつつある。 
HW特性を意識してSWを設計しないと、半..."/>
            </section>
            <section data-index="7"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-7-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-7-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-7-1024.jpg?cb=1417742188"
                  alt="半導体技術のトレンド (2/2) – ダークシリコン問題 
▌CPU/GPU統合型アーキテクチャの背景 
トランジスタ集積度向上のスピード &gt; トランジスタあたり消費電力削減のスピード 
排熱が追いつかないので、全ての回路に同時に電力供給す..."/>
            </section>
            <section data-index="8"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-8-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-8-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-8-1024.jpg?cb=1417742188"
                  alt="RDBMSとボトルネックを考える (1/2) 
Page. 8 
Storage 
Processor 
データ 
RAM 
データサイズ &gt; RAM容量 
データサイズ &lt; RAM容量 
Storage 
Processor 
データ 
RA..."/>
            </section>
            <section data-index="9"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-9-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-9-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-9-1024.jpg?cb=1417742188"
                  alt="現代のメモリボトルネックの世界 Join、Aggregation、Sort、Projectionなど 戦略 
•バーストしやすいアクセスパターン 
•並列計算アルゴリズムの適用 
伝統的なディスクI/Oボトルネックの世界 SeqScan、Ind..."/>
            </section>
            <section data-index="10"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-10-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-10-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-10-1024.jpg?cb=1417742188"
                  alt="PG-Stromのアプローチ 
▌PG-Stromとは 
PostgreSQL用の拡張モジュール 
SQL処理ワークロードの一部をGPUで並列実行し、高速化を実現。 
Full-Scan、Hash-Join、Aggregate の３種類の..."/>
            </section>
            <section data-index="11"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-11-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-11-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-11-1024.jpg?cb=1417742188"
                  alt="PostgreSQL 
PG-Strom 
PG-Stromのアーキテクチャ (1/2) 
Page. 11 
GPU Code Generator 
Storage 
Storage Manager 
Shared Buffer 
Query..."/>
            </section>
            <section data-index="12"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-12-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-12-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-12-1024.jpg?cb=1417742188"
                  alt="PG-Stromのアーキテクチャ (2/2) 
▌要素技術① OpenCL 
ヘテロジニアス計算環境を用いた並列計算フレームワーク 
NVIDIAやAMDのGPUだけでなく、CPU並列にも適用可能 
言語仕様にランタイムコンパイラを含む。..."/>
            </section>
            <section data-index="13"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-13-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-13-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-13-1024.jpg?cb=1417742188"
                  alt="要素技術① OpenCL (1/2) 
▌OpenCL の特徴 
GPUだけでなく、CPUやMICも含め “OpenCLデバイス” として抽象化。 
•とはいえ、概ねGPUの特徴を踏襲しているが…。 
三種類のメモリ階層 (global, ..."/>
            </section>
            <section data-index="14"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-14-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-14-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-14-1024.jpg?cb=1417742188"
                  alt="要素技術① OpenCL (2/2) 
Page. 14 
GPU ソースコード (text) 
OpenCL runtime 
OpenCL Interface 
OpenCL runtime 
OpenCL runtime 
OpenCL ..."/>
            </section>
            <section data-index="15"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-15-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-15-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-15-1024.jpg?cb=1417742188"
                  alt="GPUコードの自動生成 
Page. 15 
postgres=# SET pg_strom.show_device_kernel = on; SET postgres=# EXPLAIN (verbose, costs off) SELECT..."/>
            </section>
            <section data-index="16"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-16-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-16-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-16-1024.jpg?cb=1417742188"
                  alt="PG-Stromの処理イメージ① – Hash-Joinのケース 
Page. 16 
Inner relation 
Outer relation 
Inner relation 
Outer relation 
Hash表 
Hash表 
..."/>
            </section>
            <section data-index="17"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-17-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-17-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-17-1024.jpg?cb=1417742188"
                  alt="ベンチマーク (1/2) – Simple Tables Join 
[測定条件] 
▌2億件 x 10万件 x 10万件 ... のINNER JOINをテーブル数を変化させながら実行 
▌使用したクエリ： SELECT * FROM t0 ..."/>
            </section>
            <section data-index="18"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-18-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-18-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-18-1024.jpg?cb=1417742188"
                  alt="PG-Stromの処理イメージ② – 集約演算のケース 
▌Aggregate/Sortより前にGpuPreAggを置く事で、CPUが処理する行数を減らす。 
▌GPU搭載RAMの制約により、テーブル全体に集約演算を施す事は困難だが、 数万行～..."/>
            </section>
            <section data-index="19"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-19-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-19-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-19-1024.jpg?cb=1417742188"
                  alt="ベンチマーク (2/2) – Aggregation + Tables Join 
[測定条件] 
▌2億件 x 10万件 x 10万件 ... のINNER JOINをテーブル数を変化させながら実行 
▌使用したクエリ： 
SELECT ca..."/>
            </section>
            <section data-index="20"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-20-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-20-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-20-1024.jpg?cb=1417742188"
                  alt="要素技術② – Custom-Scan Interface 
Page. 20 
Table.A 
アクセス対象テーブル 
条件句 
id &gt; 200 
候補パス① 
SeqScan 
cost=400 
候補パス② 
TidScan 
una..."/>
            </section>
            <section data-index="21"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-21-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-21-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-21-1024.jpg?cb=1417742188"
                  alt="Yes!! Custom-Scan Interface got merged to v9.5 
Page. 21 
まず、コンセンサスである Scan部分のカスタムロジックを 拡張モジュールで実装できるよう インターフェースを定義。 ↓ 次にJ..."/>
            </section>
            <section data-index="22"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-22-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-22-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-22-1024.jpg?cb=1417742188"
                  alt="Custom-Scan Interfaceの拡張 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL 
Page. 22 
Table.X 
統計情報 
T..."/>
            </section>
            <section data-index="23"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-23-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-23-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-23-1024.jpg?cb=1417742188"
                  alt="Custom-Scan Interfaceの斜め上な使い方 
▌データの流れ 
GpuScanやSeqScanが行を読み出し、上位ノードで処理、さらに上位へ… 
一行毎に TupleTableSlot を介してデータの受け渡しを行う。 
▌..."/>
            </section>
            <section data-index="24"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-24-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-24-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-24-1024.jpg?cb=1417742188"
                  alt="PostgreSQL 
PG-Strom 
要素技術③ – 行指向データ構造 
Page. 24 
Storage 
Storage Manager 
Shared Buffer 
Query Parser 
Query Optimizer 
..."/>
            </section>
            <section data-index="25"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-25-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-25-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-25-1024.jpg?cb=1417742188"
                  alt="なぜGPUと列指向データの相性が良いか 
Page. 25 
SOURCE: Maxwell: The Most Advanced CUDA GPU Ever Made 
Core 
Core 
Core 
Core 
Core 
Core 
..."/>
            </section>
            <section data-index="26"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-26-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-26-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-26-1024.jpg?cb=1417742188"
                  alt="PostgreSQLのタプル形式 
Page. 26 
struct HeapTupleHeaderData { union { HeapTupleFields t_heap; DatumTupleFields t_datum; } t_cho..."/>
            </section>
            <section data-index="27"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-27-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-27-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-27-1024.jpg?cb=1417742188"
                  alt="列指向キャッシュの悪夢 (1/2) 
▌列指向キャッシュと行列変換 
Page. 27 
postgres=# explain (analyze, costs off) select * from t0 natural join t1 natu..."/>
            </section>
            <section data-index="28"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-28-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-28-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-28-1024.jpg?cb=1417742188"
                  alt="列指向キャッシュの悪夢 (2/2) 
Page. 28 
テーブル (行指向データ) ⇩ 列指向キャッシュへの変換 （最初の一回だけ） 
PG-Strom内部形式 (列指向データ) ⇩ PostgreSQLの データ受渡し形式 (行指向データ)..."/>
            </section>
            <section data-index="29"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-29-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-29-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-29-1024.jpg?cb=1417742188"
                  alt="GPUアクセラレーションのポイント (1/2) 
Page. 29 
•CPUは希少リソース。いかにCPUに仕事をさせないかがポイント。 
•CPUに仕事をさせる場合、メモリ性能を発揮しやすいパターンを意識する。 
Storage 
Share..."/>
            </section>
            <section data-index="30"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-30-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-30-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-30-1024.jpg?cb=1417742188"
                  alt="GPUアクセラレーションのポイント (2/2) 
Page. 30 
•CPUは希少リソース。いかにCPUに仕事をさせないかがポイント。 
•CPUに仕事をさせる場合、メモリ性能を発揮しやすいパターンを意識する。 
Storage 
Share..."/>
            </section>
            <section data-index="31"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-31-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-31-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-31-1024.jpg?cb=1417742188"
                  alt="PostgreSQLのshared_bufferと統合した結果 
▌列指向キャッシュと行列変換 
Page. 31 
postgres=# explain (analyze, costs off) select * from t0 natura..."/>
            </section>
            <section data-index="32"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-32-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-32-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-32-1024.jpg?cb=1417742188"
                  alt="PG-Stromの現在と今後 (1/2) – 現在 
▌対応済みのロジック 
GpuScan ... 条件句付き全件スキャンのGPU処理 
GpuHashJoin ... Hash-JoinのGPU実装 
GpuPreAgg ... GP..."/>
            </section>
            <section data-index="33"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-33-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-33-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-33-1024.jpg?cb=1417742188"
                  alt="PG-Stromの現在と今後 (2/2) – 今後 
▌今後対応するロジック 
Outer Join 
Sort 
Aggregate Push-down 
... その他？ 
▌対応するデータ型？ 
▌対応する関数？ 
LIKE句、..."/>
            </section>
            <section data-index="34"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-34-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-34-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-34-1024.jpg?cb=1417742188"
                  alt="どういう領域で使いたいか 
▌アプリケーション： 1st ターゲットとしてBIツールを想定 
▌データサイズは高々1.0TB未満、中堅企業／大企業の部門 
現状、In-memoryでデータを持たねばならないため 
▌GPU と Postgre..."/>
            </section>
            <section data-index="35"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-35-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-35-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-35-1024.jpg?cb=1417742188"
                  alt="(参考) ROLAPとMOLAP 
▌PG-Stromの利用シーンは 
ROLAP向けバックエンドRDBMS / 応答速度高速化 
MOLAP向けキューブ作成処理 / バッチ処理高速化 
Page. 35 
ERP 
SCM 
CRM 
F..."/>
            </section>
            <section data-index="36"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-36-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-36-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-36-1024.jpg?cb=1417742188"
                  alt="想定利用シーン (1/2) – OLTP/OLAP統合 
▌OLTP/OLAPデータベースを分ける理由 
複数のデータソースを統合する 
参照系ワークロードへの最適化 
▌PG-Stromの適用により... 
性能のカギとなるJoinやA..."/>
            </section>
            <section data-index="37"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-37-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-37-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-37-1024.jpg?cb=1417742188"
                  alt="想定利用シーン (2/2) – 一緒にトライしませんか？ 
▌どういった領域に適用可能だろうか？ 
▌どういった用途で使えるだろうか？ 
▌どういったワークロードに困っているだろうか？ 
PG-Stromプロジェクトはフィールドから学びたいと..."/>
            </section>
            <section data-index="38"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-38-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-38-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-38-1024.jpg?cb=1417742188"
                  alt="PG-Strom Roadmap 
Page. 38 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  "/>
            </section>
            <section data-index="39"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-39-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-39-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-39-1024.jpg?cb=1417742188"
                  alt="How to use (1/3) – インストールに必要なのは 
▌OS: Linux (RHEL 6.x で動作確認) 
▌PostgreSQL 9.5devel (with Custom-Plan Interface) 
▌PG-Strom..."/>
            </section>
            <section data-index="40"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-40-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-40-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-40-1024.jpg?cb=1417742188"
                  alt="How to use (2/3) – ビルド、インストール、起動 
Page. 40 
[kaigai@saba ~]$ git clone https://github.com/pg-strom/devel.git pg_strom [kai..."/>
            </section>
            <section data-index="41"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-41-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-41-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-41-1024.jpg?cb=1417742188"
                  alt="How to use (3/3) – AWSで楽々デプロイ 
Page. 41 
“strom” で検索！ 
AWS GPUインスタンス仕様 (g2.2xlarge) 
CPU 
Xeon E5-2670 (8 xCPU) 
RAM 
15GB..."/>
            </section>
            <section data-index="42"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-42-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-42-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-42-1024.jpg?cb=1417742188"
                  alt="補足① – 自分で試してみたい人へ 
Page. 42 
check it out! https://github.com/pg-strom/devel 
The PostgreSQL Conference 2014, Tokyo - GPGP..."/>
            </section>
            <section data-index="43"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-43-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-43-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-43-1024.jpg?cb=1417742188"
                  alt="補足② – 一緒に試してみたい人へ 
▌PG-Stromの検証環境を用意しました。 
▌一定の条件下で、共同検証に無償利用する事ができます。 
ウチのシステムのSQLが早くなるかどうか試してみたい。 
こんな使い道だと効果が大きそう。試して..."/>
            </section>
            <section data-index="44"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-44-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-44-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-44-1024.jpg?cb=1417742188"
                  alt="イノベーションのジレンマ 
Page. 44 
SOURCE: The Innovator&#x27;s Dilemma, Clayton M. Christensen 
Performance demanded at the high end of t..."/>
            </section>
            <section data-index="45"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-45-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-45-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-45-1024.jpg?cb=1417742188"
                  alt="コミュニティと共に進む 
Page. 45 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  "/>
            </section>
            <section data-index="46"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-46-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-46-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-46-1024.jpg?cb=1417742188"
                  alt="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）"/>
            </section>
            <section data-index="47"  class="slide" >
                <i class="fa fa-spinner fa-spin"></i>
                <img class="slide_image"
                  src=""
                  data-small="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-47-320.jpg?cb=1417742188"
                  data-normal="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-47-638.jpg?cb=1417742188"
                  data-full="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-47-1024.jpg?cb=1417742188"
                  alt="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）"/>
            </section>
        <div class="j-next-container next-container">
          <div class="content-container">
            <div class="next-slideshow-wrapper">
              <div class="j-next-slideshow next-slideshow">
                <div class="title-container">
                  <span class="title-text">Upcoming SlideShare</span>
                </div>
                <div class="j-next-url info">
                  <div class="thumb-container">
                    <img class="j-next-thumb thumb" />
                  </div>
                  <div class="text-container">
                    <span class="j-next-title next-title"></span>
                  </div>
                </div>
              </div>
              <div class="next-timer">Loading in …<span class="j-timer-count timer-count">5</span></div>
              <div class="j-next-cancel next-cancel">&#215;</div>
            </div>
          </div>
        </div>
    </div>
  </div> <!-- end stage -->

  <div class="toolbar_wrapper j-player-toolbar">
    <div class="toolbar normal">
      
<!-- using div.bar-[top, bottom]-margin to fix toolbar spacing with a taller progressbar (improve slide scrubbing UX) -->
<div class="j-progress-bar progress-bar-wrapper">
  <div class="progress-bar-spacing"></div>
  <div class="buffered-bar"></div>
  <div class="j-slides-loaded-bar progress-bar"></div>
  <div class="j-progress-tooltip progress-tooltip" style="display: none;">
    <div class="j-tooltip-content progress-tooltip-wrapper">
      <img class="j-tooltip-thumb tooltip-thumb" onerror="this.src=''"
            slide-thumb-1="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-1-320.jpg?cb=1417742188"
            slide-thumb-2="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-2-320.jpg?cb=1417742188"
            slide-thumb-3="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-3-320.jpg?cb=1417742188"
            slide-thumb-4="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-4-320.jpg?cb=1417742188"
            slide-thumb-5="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-5-320.jpg?cb=1417742188"
            slide-thumb-6="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-6-320.jpg?cb=1417742188"
            slide-thumb-7="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-7-320.jpg?cb=1417742188"
            slide-thumb-8="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-8-320.jpg?cb=1417742188"
            slide-thumb-9="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-9-320.jpg?cb=1417742188"
            slide-thumb-10="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-10-320.jpg?cb=1417742188"
            slide-thumb-11="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-11-320.jpg?cb=1417742188"
            slide-thumb-12="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-12-320.jpg?cb=1417742188"
            slide-thumb-13="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-13-320.jpg?cb=1417742188"
            slide-thumb-14="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-14-320.jpg?cb=1417742188"
            slide-thumb-15="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-15-320.jpg?cb=1417742188"
            slide-thumb-16="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-16-320.jpg?cb=1417742188"
            slide-thumb-17="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-17-320.jpg?cb=1417742188"
            slide-thumb-18="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-18-320.jpg?cb=1417742188"
            slide-thumb-19="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-19-320.jpg?cb=1417742188"
            slide-thumb-20="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-20-320.jpg?cb=1417742188"
            slide-thumb-21="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-21-320.jpg?cb=1417742188"
            slide-thumb-22="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-22-320.jpg?cb=1417742188"
            slide-thumb-23="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-23-320.jpg?cb=1417742188"
            slide-thumb-24="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-24-320.jpg?cb=1417742188"
            slide-thumb-25="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-25-320.jpg?cb=1417742188"
            slide-thumb-26="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-26-320.jpg?cb=1417742188"
            slide-thumb-27="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-27-320.jpg?cb=1417742188"
            slide-thumb-28="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-28-320.jpg?cb=1417742188"
            slide-thumb-29="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-29-320.jpg?cb=1417742188"
            slide-thumb-30="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-30-320.jpg?cb=1417742188"
            slide-thumb-31="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-31-320.jpg?cb=1417742188"
            slide-thumb-32="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-32-320.jpg?cb=1417742188"
            slide-thumb-33="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-33-320.jpg?cb=1417742188"
            slide-thumb-34="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-34-320.jpg?cb=1417742188"
            slide-thumb-35="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-35-320.jpg?cb=1417742188"
            slide-thumb-36="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-36-320.jpg?cb=1417742188"
            slide-thumb-37="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-37-320.jpg?cb=1417742188"
            slide-thumb-38="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-38-320.jpg?cb=1417742188"
            slide-thumb-39="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-39-320.jpg?cb=1417742188"
            slide-thumb-40="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-40-320.jpg?cb=1417742188"
            slide-thumb-41="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-41-320.jpg?cb=1417742188"
            slide-thumb-42="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-42-320.jpg?cb=1417742188"
            slide-thumb-43="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-43-320.jpg?cb=1417742188"
            slide-thumb-44="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-44-320.jpg?cb=1417742188"
            slide-thumb-45="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-45-320.jpg?cb=1417742188"
            slide-thumb-46="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-46-320.jpg?cb=1417742188"
            slide-thumb-47="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/85/gpgpupostgresql-postgresql2014-47-320.jpg?cb=1417742188"
      >
      <span class="j-slidecount-label slidecount-label">1</span>
    </div>
    <div class="progress-tooltip-caret"></div>
  </div>
</div>
<div class="progress-bar-spacing"></div>



<div class="j-tools bot-actions">
</div><!-- .bot-actions -->


  <div class="j-tools bot-actions">
    <a data-tooltip
      aria-haspopup="true"
      style="display: none"
      class="j-tooltip j-download action-download has-tip"
      title="Save this presentation"
      href="/login?from_source=%2Fkaigai%2Fgpgpupostgresql%3Ffrom_action%3Dsave&amp;from=download&amp;layout=foundation"
      data-target="#login_modal"
      data-placement="top">
      <i class="fa fa-download fa-lg" style="margin-top: 1px;"></i>
    </a>
  </div>




  <div class="nav">
      <button id="btnPrevious" title="Previous Slide">
        <div class="j-prev-btn arrow-left disabled"></div>
      </button>
    <label class="goToSlideLabel">
      <span id="current-slide" class="j-current-slide">1</span> of <span id="total-slides" class="j-total-slides">47</span>
    </label>
      <button id="btnNext" title="Next Slide">
        <div class="j-next-btn arrow-right"></div>
      </button>
  </div>



<div class="navActions">



    <button id="btnFullScreen" class="j-tooltip btnFullScreen" title="View Fullscreen">
      <span class="fa fa-stack">
        <i class="fa fa-expand fa-stack-1x"></i>
      </span>
    </button>
    <button id="btnLeaveFullScreen" class="j-tooltip btnLeaveFullScreen" title="Exit Fullscreen">
      <span class="fa-stack">
        <i class="fa fa-compress fa-stack-1x"></i>
      </span>
    </button>

</div>


    </div>
  </div>

  <div class="success-toast-wrapper hide"></div>

  <div class="image_maps"></div>
</div>

<div id="j-lead-form-placeholder" style="display:none">
</div>

            </div>
        </div>

        <div id="lastScreen" style="display: none;">
          <div class="lastScreen">
  <div class="jsplLastScreenOverlay j-last-screen-overlay"></div>
  <div class="pro-overlay j-lastscreen">
    <div class="proSharingText">Like this presentation? Why not share!</div>
    <ul class="lastActions j-last-screen-actions">
      <li class="share-cta j-share-cta lastscreen-share-cta"><a class="share-btn"><span class="lastScreen-sprite"></span>Share</a></li>
      <li class="email-cta j-email-cta"><a class="email-btn"><span class="lastScreen-sprite"></span>Email</a></li>
      <li class="replay last">
        <a class="replay-btn lastScreenReplay j-tooltip j-last-screen-replay" data-original-title="View again" title="View again">
          <span class="lastScreen-sprite">&nbsp;</span>
        </a>
      </li>
      <li class="close-btn lastScreen-sprite j-lastscreen-close">
        <a>&nbsp;</a>
      </li>
    </ul>
    <div class="related-presentations j-lastscreen-related">
      <ul class="presentation-list">
        <li>
         <a href="https://public.slidesharecdn.com/kaigai/jp-gpgpupostgresql" title="(JP) GPGPUがPostgreSQLを加速する" >
           <img class="j-thumbnail" data-original="//cdn.slidesharecdn.com/ss_thumbnails/20141113dbtechshowcasenecpgstrom-141113055252-conversion-gate01-thumbnail.jpg?cb=1415858165" alt="(JP) GPGPUがPostgreSQLを加速する" />
           <span class="presentation-meta">
             <span class="title">(JP) GPGPUがPostgreSQLを加速する</span>
             <span class="author">by&nbsp;Kohei KaiGai</span>
             <span class="view-count">20670&nbsp;views</span>
           </span>
         </a>
        </li>
        <li>
         <a href="https://public.slidesharecdn.com/kaigai/postgresql-64441503" title="並列クエリを実行するPostgreSQLのアーキテクチャ" >
           <img class="j-thumbnail" data-original="//cdn.slidesharecdn.com/ss_thumbnails/20160727dbloungetokyo01parallelpostgresql-160727151825-thumbnail.jpg?cb=1469632794" alt="並列クエリを実行するPostgreSQLのアーキテクチャ" />
           <span class="presentation-meta">
             <span class="title">並列クエリを実行するPostgreSQLのアーキテクチャ</span>
             <span class="author">by&nbsp;Kohei KaiGai</span>
             <span class="view-count">4035&nbsp;views</span>
           </span>
         </a>
        </li>
        <li>
         <a href="https://public.slidesharecdn.com/kaigai/sqlgpussd-japanese" title="SQL+GPU+SSD=∞ (Japanese)" >
           <img class="j-thumbnail" data-original="//cdn.slidesharecdn.com/ss_thumbnails/20151127ltkaigaisqlgpussdjp-151127113618-lva1-app6892-thumbnail.jpg?cb=1448624762" alt="SQL+GPU+SSD=∞ (Japanese)" />
           <span class="presentation-meta">
             <span class="title">SQL+GPU+SSD=∞ (Japanese)</span>
             <span class="author">by&nbsp;Kohei KaiGai</span>
             <span class="view-count">7589&nbsp;views</span>
           </span>
         </a>
        </li>
        <li>
         <a href="https://public.slidesharecdn.com/kaigai/20170127-jaws-hpcug8" title="20170127 JAWS HPC-UG#8" >
           <img class="j-thumbnail" data-original="//cdn.slidesharecdn.com/ss_thumbnails/20170127jawsughpclt-170129122722-thumbnail.jpg?cb=1485692935" alt="20170127 JAWS HPC-UG#8" />
           <span class="presentation-meta">
             <span class="title">20170127 JAWS HPC-UG#8</span>
             <span class="author">by&nbsp;Kohei KaiGai</span>
             <span class="view-count">301&nbsp;views</span>
           </span>
         </a>
        </li>
        <li>
         <a href="https://public.slidesharecdn.com/ooyamams/postgresql-69896127" title="PostgreSQLによるデータ分析ことはじめ" >
           <img class="j-thumbnail" data-original="//cdn.slidesharecdn.com/ss_thumbnails/postgresql-161207015311-thumbnail.jpg?cb=1481075875" alt="PostgreSQLによるデータ分析ことはじめ" />
           <span class="presentation-meta">
             <span class="title">PostgreSQLによるデータ分析ことはじめ</span>
             <span class="author">by&nbsp;Ohyama Masanori</span>
             <span class="view-count">1206&nbsp;views</span>
           </span>
         </a>
        </li>
        <li>
         <a href="https://public.slidesharecdn.com/kaigai/20170310indatabaseanalytics1" title="20170310_InDatabaseAnalytics_#1" >
           <img class="j-thumbnail" data-original="//cdn.slidesharecdn.com/ss_thumbnails/20170311pgstromlimitbreaker-170311034833-thumbnail.jpg?cb=1489204208" alt="20170310_InDatabaseAnalytics_#1" />
           <span class="presentation-meta">
             <span class="title">20170310_InDatabaseAnalytics_#1</span>
             <span class="author">by&nbsp;Kohei KaiGai</span>
             <span class="view-count">1210&nbsp;views</span>
           </span>
         </a>
        </li>
      </ul>
    </div>

  </div> <!-- end of div class pro-overlay -->
  <div class="j-modal-share modal-share mobile-hide" style="display: none;" id="last-screen-modal-share" data-ga-track-category="" data-ga-track-action="">
  <div class="j-modal-popup modal-popup">
    <div class="j-modal-close modal-close"></div>
    <div class="modal-content-wrapper">
      <div class="j-modal-content modal-content" id="modal-content" data-slideshowid="">
        <header class="j-tabs tabs">
          <a id="button-share-tab" class="selected j-button-share-tab">Share SlideShare</a>
          <hr class="divider"/>
        </header>
        <div class="j-share-tab share-tab">
          <div>
            <ul class="j-share-social-list share-social-list" data-canonical-url="https://www.slideshare.net/kaigai/gpgpupostgresql">
              <li class="facebook" data-network="facebook">
                <div class="social-hover">
                  <a class="share-link" rel="nofollow" data-u="https://www.slideshare.net/kaigai/gpgpupostgresql" title="Share on Facebook">Facebook</a>
                </div>
              </li>
              <li class="twitter" data-network="twitter">
                <div class="social-hover">
                  <a class="share-link" rel="nofollow"  data-url="https://www.slideshare.net/kaigai/gpgpupostgresql" data-text="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014） by @kkaigai" data-related="@kkaigai" data-via="SlideShare" title="Tweet on Twitter">Twitter</a>
                </div>
              </li>
              <li class="linkedin" data-network="linkedin">
                <div class="social-hover">
                  <a class="share-link" rel="nofollow" data-url="https://www.slideshare.net/kaigai/gpgpupostgresql" data-text="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014） by Kohei KaiGai via slideshare" title="Share on Linkedin">LinkedIn</a>
                </div>
              </li>
              <li class="googleplus" data-network="googleplus">
                <div class="social-hover">
                  <a class="share-link" rel="nofollow" data-url="https://www.slideshare.net/kaigai/gpgpupostgresql" title="Share on Google+">Google+</a>
                </div>
              </li>
            </ul>
          </div>
          <div class="section share-email">
            <span class="header">Email</span>
            <form id="share-email-form" class="j-share-email-form">
              <input id="share-email-to" data-ga="to" class="j-share-email-to j-email-clear j-share-expand-trigger" name="recipients" placeholder="Enter email addresses"></input>
              <div class="share-email-expand j-share-expand">
                <input id="share-email-name" data-ga="name" class="j-share-email-name j-email-clear" name="name" type="text" placeholder="from…"></input>
                <span class="j-email-flash email-flash"></span>
                <input id="share-email-send" data-ga="send" class="j-share-email-send button btn btn-inverse" type="submit" value="Send" />
                <div style="clear:both"></div>
              </div>
            </form>
            <div id="email-sent" class="j-email-sent section"><div>
              <span class="success-text">Email sent successfully!</span></div>
            </div>
          </div>
          <div class="j-share-embed section share-embed">
            <span class="header">Embed</span>
            <textarea id="share-embed-link" class="j-share-embed-link j-share-expand-trigger" readonly data-ga="link"></textarea>
            <div class="share-embed-options j-share-expand">
              <div class="embed-size">
                <span class="title">Size (px)</span>
                <select class="j-embed-size-picker embed-size-picker j-update-embed" id="embed-size-picker" data-ga="size-picker"></select>
              </div>
                <div class="embed-start">
                  <span class="title">Start on</span>
                  <select class="j-embed-start-picker embed-start-picker j-update-embed" id="embed-start-picker" data-ga="start-picker"></select>
                </div>
              <div class="embed-show-related" style="display:none">
                <input type="checkbox" name="related-content" checked="checked" class="j-embed-related-cbox embed-related-cbox j-update-embed" data-ga="related">
                <span>Show related SlideShares at end</span>
              </div>
            </div>
          </div>
          <div class="wordpress-container section">
            <span class="header">WordPress Shortcode</span>
            <input type="text" name="embed-code" id="share-embed-wp" value="" readonly="readonly" class="j-share-embed-wp text quiet h-wpembedcode j-share-expand-trigger" data-ga="wp-link">
          </div>
          <div class="share-link-container section">
            <span class="header">Link</span>
            <input type="input" class="j-share-link-url j-share-expand-trigger" id="share-link-url" data-ga="link" readonly></input>
          </div>
        </div>
      </div>
    </div>
  </div>
</div><!-- share modal -->

</div><!-- last screen ends here -->

        </div>
      </div>

      <div class="slideshow-info-container" itemscope itemtype="https://schema.org/MediaObject">


        <div class="slideshow-info">
          <meta itemprop="inLanguage" content="en">
          <meta itemprop="image" content="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-1-638.jpg?cb=1417742188">
          <meta itemprop="thumbnailUrl" content="https://cdn.slidesharecdn.com/ss_thumbnails/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02-thumbnail.jpg?cb=1417742188">
          <meta itemprop="embedURL" content="https://www.slideshare.net/slideshow/embed_code/key/zr1hj93S2fgXol">
          <meta itemprop="playerType" content="HTML5 Flash">
          <meta itemprop="interactionCount" content="UserComments:0">
          <meta itemprop="interactionCount" content="UserLikes:25">
          <meta itemprop="interactionCount" content="UserDownloads:64">
          <meta itemprop="interactionCount" content="UserPageVisits:9393">
          <meta itemprop="interactionCount" content="UserPlays:9393">
          <meta itemprop="interactionCount" content="UserPlusOnes:0" id="meta-google">


          <div class="slideshow-title-container row add-padding-right">
            <div class="small-10 columns">
              <h1 class="notranslate slideshow-title-text" itemprop="headline">
                <span class="j-title-breadcrumb">
                  GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）
                </span>
              </h1>
            </div>

          <div class="small-2 columns text-right format-views">
                <span class="notranslate pippin-data">
                  9,393 views<br>
                </span>
            </div>
          </div>

          <ul id="slideshow-actions" class="slideshow-actions">
            <li class="item-action">
              <button class="tiny art-deco share" data-action="share">Share</button>
            </li>
              <li class="item-action">
                <button class="tiny art-deco like button" data-action="like" href="/signup?login_source=slideview.popup.like&amp;from=favorite&amp;layout=foundation&amp;from_source=https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql" rel="nofollow">Like</button>
              </li>
              <li class="item-action">
                <button class="tiny art-deco download button" data-action="download" href="/login?from_source=%2Fkaigai%2Fgpgpupostgresql%3Ffrom_action%3Dsave&amp;from=download&amp;layout=foundation" rel="nofollow">
                  Download
                </button>
              </li>
          </ul>


          <div class="author-container add-padding-right" itemprop="author" itemscope itemtype="https://schema.org/Person">

            <div class="left author-thumbnail">
              <a href="/kaigai?utm_campaign=profiletracking&amp;utm_medium=sssite&amp;utm_source=ssslideview" class="author-photo-wrapper" title="kaigai" itemprop="url">
                <img alt="Kohei KaiGai" class="author-photo" itemprop="image" src="//cdn.slidesharecdn.com/profile-photo-kaigai-48x48.jpg?cb=1498884640" />
              </a>
            </div>

            <div class="author-text">
              <h2 style="display:inline;">
                <a class="j-author-name"
                  title="kaigai"
                  rel="author"
                  href="/kaigai?utm_campaign=profiletracking&amp;utm_medium=sssite&amp;utm_source=ssslideview"
                  data-ga-cat="bigfoot_slideview"
                  data-ga-action="authorlinkclick">
                  <span itemprop="name">Kohei KaiGai</span></a></h2><small class="lighter-color-text" itemprop="jobTitle">, Software Architect, Intrapreneur</small>


              <div class="author-cta-container">

                  <div class="follow-container">
                    <span class="j-follow " data-contactee-id="27108967">

                        <a class="follow-btn" data-contactee="27108967" href="/signup?login_source=slideview.popup.follow&from=addcontact&from_source=https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql">
                          <i class="fa fa-plus"></i> Follow
                        </a>

                      <div class="j-follow-progress indicator">
                        <i class="fa fa-spinner fa-spin"></i>
                      </div>
                    </span>
                  </div>
              </div>
            </div>
          </div>

            <div class="social-share-container add-padding-right">
              <button id="sv-linkedin-share" class="j-share-item button-li tiny radius" data-network="linkedin" data-ga-action="viralshareLinkedIn_click">
                <i class="fa fa-linkedin fa-lg"></i>
              </button>

              <button id="sv-facebook-share" class="j-share-item button-fb tiny radius" data-network="facebook" data-ga-action="viralsharefacebook">
                <i class="fa fa-facebook fa-lg"></i>
              </button>

              <button id="sv-twitter-share" class="j-share-item button-tw tiny radius" data-network="twitter" data-ga-action="viralsharetwitter_click">
                <i class="fa fa-twitter fa-lg"></i>
              </button>
            </div>

          <p>
            <small>
              Published on <time datetime="Dec 5, 2014" itemprop="datePublished">Dec 5, 2014</time>
            </small>
          </p>

            <div class="slideshow-description-container add-padding-right">
              <div class="description row"
                data-ga-cat="bigfoot_slideview"
                data-ga-action="description>more">
                <div class="large-10 columns">
                  <p id="slideshow-description-paragraph" class="notranslate">
                    https:&#x2F;&#x2F;www.postgresql.jp&#x2F;events&#x2F;jpug-pgcon2014<br />2014年 日本PostgreSQLユーザ会主催の<br />PostgreSQLカンファレンスでの講演内容です。
                  </p>
                </div>
                <div class="large-2 columns">
                  <button class="j-expand-text empty_btn_design">
                    ...<i class="fa fa-caret-down"></i>
                  </button>
                </div>
              </div>
            </div>


            <div class="categories-container add-padding-right">
              <span>Published in:</span>
                <a rel="nofollow" href="/featured/category/technology">Technology</a><span class="comma"></span>
            </div>



        </div>


        <div class="slideshow-tabs-container show-for-medium-up">
          <dl class="tabs" data-tab>
              <dd class="active">
                <a href="#comments-panel">
                  <i class="fa fa-comment"></i>
                    0 Comments
                </a>
              </dd>

            <dd class="">
              <a href="#likes-panel">
                <i class="fa fa-heart"></i>
                <span class="j-favs-count">
                  25 Likes
                </span>
              </a>
            </dd>


            <dd>
              <a href="#stats-panel" class="j-stats-tab">
                <i class="fa fa-bar-chart"></i>
                Statistics
              </a>
            </dd>

            <dd>
              <a href="#notes-panel">
                <i class="fa fa-file-text"></i>
                Notes
              </a>
            </dd>
          </dl>

          <div class="tabs-content">

              <div id="comments-panel" class="content active commentsWrapper commentsNotes">
                <ul class="hide">

                  <li id="commentsTemplate">
                    <div class="row">
                      <div class="small-1 columns thumbnail">
                        <a class="j-author-photo notranslate commenter" title="Commenter Title" rel="nofollow">
                          <img class="nickname"
                            alt="Full Name"
                            src="https://public.slidesharecdn.com/images/user-48x48.png" />
                        </a>
                      </div>

                      <div class="small-11 columns">
                        <a class="j-author-photo notranslate commenter" title="Commenter Title" rel="nofollow">
                          <span class="j-username notranslate" data-ga-cat="bigfoot_slideview" data-ga-action="commentuserlinkclick">Full Name</span>
                          <span class="bioStub notranslate">
                            <span class="j-commenter-role"></span>
                            <span class="j-commenter-org"></span>
                          </span>
                        </a>

                        <div class="commentText notranslate">
                          Comment goes here.
                        </div>

                        <time class="commentTimestamp small-text lighter-color-text">12 hours ago</time>&nbsp;&nbsp;

                        <span class="commentMeta">
                          <span class="commentActions small-text">
                            <a href="#" class="j-action-delete">Delete</a>
                            <a href="#" class="j-reply">Reply</a>
                            <a href="#" class="j-action-spam">Spam</a>
                            <a href="#" class="j-action-block">Block</a>
                          </span>
                        </span>

                        <div id="confirmDialog" class="panel callout block-message">
                          <div>
                            <span class="title">Are you sure you want to</span>
                            <a href="#" id="yes">Yes</a>
                            <a href="#" id="no">No</a>
                          </div>
                        </div>

                        <div id="messageDialog" class="block-message">
                          Your message goes here
                        </div>

                        <span class="j-loading" style="display: none;">
                          <i class="fa fa-spinner fa-spin"></i>
                        </span>
                      </div>
                    </div>
                  </li>
                </ul>


                  <form action="#" method="post" accept-charset="utf-8" id="postComment" class="j-comment-post postComment">
                    <div class="row">
                      <div class="small-1 columns thumbnail">
                          <div class="left">
                            <img class="nickname" alt="no profile picture user"
                              src="//public.slidesharecdn.com/images/user-48x48.png" />
                          </div>
                      </div>

                      <div class="small-11 columns">
                        <div class="row collapse">
                          <div class="small-10 columns">
                            <input class="j-post-comment-input comment-text" type="text" placeholder="Share your thoughts…" />
                          </div>
                          <div class="small-2 columns">
                              <a id="login-provider-slideshare" class="postfix" rel="nofollow" href="/signup?login_source=slideview.popup.comment&from=comments&from_source=https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql">
                                <button type="button" class="postfix">Post</button>
                              </a>
                          </div>
                        </div>
                      </div>
                    </div>
                  </form>

                <ul id="commentsList" class="user-list no-bullet">
                    <li>
                      <p class="empty-stat-box text-center">
                        <em>Be the first to comment</em>
                      </p>
                    </li>
                </ul>

              </div>


            <div class="content" id="likes-panel">
              <ul id="favsList" class="j-favs-list notranslate user-list no-bullet" itemtype="http://schema.org/UserLikes" itemscope>
                    <li itemtype="http://schema.org/Person" itemscope>
                      <div class="row">

                        <div class="small-1 columns thumbnail">
                          <a class="j-author-photo notranslate"
                            title="t8kobayashi"
                            itemprop="url"
                            rel="nofollow"
                            href="/t8kobayashi?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <img itemprop="image"
                              class="j-lazy-thumb"
                              alt="t8kobayashi"
                              src="//public.slidesharecdn.com/images/user-48x48.png"
                              data-original="//public.slidesharecdn.com/images/user-48x48.png" />
                          </a>
                        </div>

                        <div class="small-11 columns">

                          <a class="favoriter notranslate"
                            title="t8kobayashi"
                            rel="nofollow"
                            href="/t8kobayashi?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <span class="j-username notranslate" data-ga-cat="bigfoot_slideview" data-ga-action="favoriteuserlinkclick" itemprop="name">t8kobayashi</span>
                            <span class="bioStub notranslate small-text light-color-text">
                              <span class="j-favoriter-role">
                                
                                <span></span>
                              </span>
                              <span class="j-favoriter-org">
                                
                                <span></span>
                              </span>
                            </span>

                            <div class="j-tags favTags"></div>

                            <time class="commentTimestamp small-text lighter-color-text">
                              3 minutes ago
                            </time>
                          </a>
                        </div>
                      </div>
                    </li>
                    <li itemtype="http://schema.org/Person" itemscope>
                      <div class="row">

                        <div class="small-1 columns thumbnail">
                          <a class="j-author-photo notranslate"
                            title="slidekufuup"
                            itemprop="url"
                            rel="nofollow"
                            href="/slidekufuup?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <img itemprop="image"
                              class="j-lazy-thumb"
                              alt="slidekufuup"
                              src="//public.slidesharecdn.com/images/user-48x48.png"
                              data-original="//public.slidesharecdn.com/images/user-48x48.png" />
                          </a>
                        </div>

                        <div class="small-11 columns">

                          <a class="favoriter notranslate"
                            title="slidekufuup"
                            rel="nofollow"
                            href="/slidekufuup?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <span class="j-username notranslate" data-ga-cat="bigfoot_slideview" data-ga-action="favoriteuserlinkclick" itemprop="name">Yoshihiko Mori</span>
                            <span class="bioStub notranslate small-text light-color-text">
                              <span class="j-favoriter-role">
                                , 
                                <span>ソフトウェアエンジニア　主任</span>
                              </span>
                              <span class="j-favoriter-org">
                                 at 
                                <span>三菱電機</span>
                              </span>
                            </span>

                            <div class="j-tags favTags"></div>

                            <time class="commentTimestamp small-text lighter-color-text">
                              3 weeks ago
                            </time>
                          </a>
                        </div>
                      </div>
                    </li>
                    <li itemtype="http://schema.org/Person" itemscope>
                      <div class="row">

                        <div class="small-1 columns thumbnail">
                          <a class="j-author-photo notranslate"
                            title="atsushineki"
                            itemprop="url"
                            rel="nofollow"
                            href="/atsushineki?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <img itemprop="image"
                              class="j-lazy-thumb"
                              alt="atsushineki"
                              src="//public.slidesharecdn.com/images/user-48x48.png"
                              data-original="//cdn.slidesharecdn.com/profile-photo-atsushineki-48x48.jpg" />
                          </a>
                        </div>

                        <div class="small-11 columns">

                          <a class="favoriter notranslate"
                            title="atsushineki"
                            rel="nofollow"
                            href="/atsushineki?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <span class="j-username notranslate" data-ga-cat="bigfoot_slideview" data-ga-action="favoriteuserlinkclick" itemprop="name">Atsushi Neki</span>
                            <span class="bioStub notranslate small-text light-color-text">
                              <span class="j-favoriter-role">
                                
                                <span></span>
                              </span>
                              <span class="j-favoriter-org">
                                
                                <span></span>
                              </span>
                            </span>

                            <div class="j-tags favTags"></div>

                            <time class="commentTimestamp small-text lighter-color-text">
                              3 months ago
                            </time>
                          </a>
                        </div>
                      </div>
                    </li>
                    <li itemtype="http://schema.org/Person" itemscope>
                      <div class="row">

                        <div class="small-1 columns thumbnail">
                          <a class="j-author-photo notranslate"
                            title="mid.d2"
                            itemprop="url"
                            rel="nofollow"
                            href="/mid.d2?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <img itemprop="image"
                              class="j-lazy-thumb"
                              alt="mid.d2"
                              src="//public.slidesharecdn.com/images/user-48x48.png"
                              data-original="//cdn.slidesharecdn.com/profile-photo-mid.d2-48x48.jpg" />
                          </a>
                        </div>

                        <div class="small-11 columns">

                          <a class="favoriter notranslate"
                            title="mid.d2"
                            rel="nofollow"
                            href="/mid.d2?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <span class="j-username notranslate" data-ga-cat="bigfoot_slideview" data-ga-action="favoriteuserlinkclick" itemprop="name">Mid Xanadu</span>
                            <span class="bioStub notranslate small-text light-color-text">
                              <span class="j-favoriter-role">
                                
                                <span></span>
                              </span>
                              <span class="j-favoriter-org">
                                
                                <span></span>
                              </span>
                            </span>

                            <div class="j-tags favTags"></div>

                            <time class="commentTimestamp small-text lighter-color-text">
                              1 year ago
                            </time>
                          </a>
                        </div>
                      </div>
                    </li>
                    <li itemtype="http://schema.org/Person" itemscope>
                      <div class="row">

                        <div class="small-1 columns thumbnail">
                          <a class="j-author-photo notranslate"
                            title="maropu0804"
                            itemprop="url"
                            rel="nofollow"
                            href="/maropu0804?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <img itemprop="image"
                              class="j-lazy-thumb"
                              alt="maropu0804"
                              src="//public.slidesharecdn.com/images/user-48x48.png"
                              data-original="//cdn.slidesharecdn.com/profile-photo-maropu0804-48x48.jpg" />
                          </a>
                        </div>

                        <div class="small-11 columns">

                          <a class="favoriter notranslate"
                            title="maropu0804"
                            rel="nofollow"
                            href="/maropu0804?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideshow">

                            <span class="j-username notranslate" data-ga-cat="bigfoot_slideview" data-ga-action="favoriteuserlinkclick" itemprop="name">Takeshi Yamamuro</span>
                            <span class="bioStub notranslate small-text light-color-text">
                              <span class="j-favoriter-role">
                                , 
                                <span>DBMS Research Engineer</span>
                              </span>
                              <span class="j-favoriter-org">
                                
                                <span></span>
                              </span>
                            </span>

                            <div class="j-tags favTags"></div>

                            <time class="commentTimestamp small-text lighter-color-text">
                              1 year ago
                            </time>
                          </a>
                        </div>
                      </div>
                    </li>
              </ul>

                <div class="more-container text-center">
                  <a href="#" class="j-more-favs">
                    Show More
                    <div style="inline-block"><i class="fa fa-caret-down"></i></div>
                  </a>
                </div>
            </div>

            <div class="content" id="downloads-panel">
                <div class="empty-stat-box">No Downloads</div>
            </div>

            <div class="content" id="stats-panel">
              <div class="row info-stats">
                <div class="small-4 columns">
                  <strong>Views</strong>
                  <div class="row">
                    <div class="small-8 columns stat-label">Total views</div>
                    <div class="small-4 columns stat-value text-right">
                      9,393
                    </div>

                    <div class="small-8 columns stat-label">On SlideShare</div>
                    <div class="j-slideshare-views small-4 columns stat-value text-right ">
                      0
                    </div>

                    <div class="small-8 columns stat-label">From Embeds</div>
                    <div class="j-embed-views small-4 columns stat-value text-right">
                      0
                    </div>

                    <div class="small-8 columns stat-label">Number of Embeds</div>
                    <div class="small-4 columns stat-value text-right">
                      731
                    </div>
                  </div>
                </div>

                <div class="small-4 columns">
                  <strong>Actions</strong>
                  <div class="row">
                    <div class="small-8 columns stat-label">Shares</div>
                    <div class="small-4 columns stat-value text-right j-total-shares">0</div>

                    <div class="small-8 columns stat-label">Downloads</div>
                    <div class="small-4 columns stat-value text-right ">
                      64
                    </div>

                    <div class="small-8 columns stat-label">Comments</div>
                    <div class="small-4 columns stat-value text-right">
                      0
                    </div>

                    <div class="small-8 columns stat-label">Likes</div>
                    <div class="small-4 columns stat-value text-right">
                      25
                    </div>
                  </div>
                </div>

                <div class="small-4 columns">
                  <strong>
                    Embeds
                    <span class="j-embed-views notranslate from-embed hint">0</span>
                  </strong>

                  <div class="j-info-embeds">
                      <div class="j-no-embeds no-embeds">No embeds</div>
                    <div class="row no-translate j-embeds-container" style="max-height:120px; overflow:auto;">
                    </div>
                  </div>
                </div>
              </div>

              <hr>

              <div class="row">
                <div class="small-12 columns">
                  <strong class="copy-in-aria-label" aria-label="Report content"></strong><br>
                  <div class="flag flag-inappropriate">
                    <a class="action-flag" rel="nofollow" href="/signup?login_source=slideview.popup.flags&amp;from=flagss&amp;from_source=https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql">
                      <span class="j-tooltip flagged copy-in-aria-label" title="This Presentation has been flagged" aria-label="Flagged as inappropriate"></span>
                      <span class="j-tooltip flag copy-in-aria-label" title="Flag this presentation as inappropriate" aria-label="Flag as inappropriate"></span>
                    </a>
                  </div>

                  <div>
                    <a href="http://www.linkedin.com/legal/copyright-policy" rel="nofollow" class="copy-in-aria-label" aria-label="Copyright Complaint"></a>
                  </div>
                </div>
              </div>
            </div>

            <div class="content" id="notes-panel">
              <div id="empty-note" class="empty-stat-box">No notes for slide</div>
            </div>
          </div>
        </div>

            <div class="notranslate transcript add-padding-right j-transcript"  >
              <h3 class="transcript-header">
                  <i class="fa fa-file-o"></i>
                  GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014）
              </h3>
              <ol class="j-transcripts transcripts no-bullet no-style" itemprop="text">
                    <li>
      1.
    GPGPUがPostgreSQLを加速する ～PG-Stromご紹介～ 
NEC OSS推進センター 
The PG-Strom Project 
海外 浩平 &lt;kaigai@ak.jp.nec.com&gt; 
(Tw: @kkaigai)  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-2-638.jpg?cb=1417742188" title="自己紹介 
▌名前: 海外 浩平 
▌所属： NEC OSS推進センター 
▌好きなもの： コアの多いプロセッサ 
▌..." target="_blank">
        2.
      </a>
    自己紹介 
▌名前: 海外 浩平 
▌所属： NEC OSS推進センター 
▌好きなもの： コアの多いプロセッサ 
▌嫌いなもの： コアの少ないプロセッサ 
▌経歴: 
HPC  OSS/Linux  SAP  GPU/PostgreSQL 
▌Tw: @kkaigai 
▌主な仕事 
SELinux周り諸々 (2004~) 
•Lockless AVC、JFFS2 XATTRなど 
PostgreSQL周り諸々 (2006~) 
•SE-PostgreSQL、Security Barrier View、Writable FDWなど 
PG-Strom (2012~) 
Page. 2 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-3-638.jpg?cb=1417742188" title="処理性能向上のアプローチ 
Page. 3 
スケールアウト 
スケールアップ 
ホモジニアス・スケールアップ 
ヘテ..." target="_blank">
        3.
      </a>
    処理性能向上のアプローチ 
Page. 3 
スケールアウト 
スケールアップ 
ホモジニアス・スケールアップ 
ヘテロジニアス・スケールアップ 
+ 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL 
 
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-4-638.jpg?cb=1417742188" title="GPU (Graphic Processor Unit) の特徴 
▌GPUの特徴 
チップに占める演算ユニットの比..." target="_blank">
        4.
      </a>
    GPU (Graphic Processor Unit) の特徴 
▌GPUの特徴 
チップに占める演算ユニットの比率が高い 
キャッシュ・制御ロジックの比率が小さい 
単純な演算の並列処理に向く。 複雑なロジックの処理は苦手。 
値段の割にコア数が多い 
•GTX750Ti(640core)で 1万5千円くらい 
GPU 
CPU 
Model 
Nvidia Tesla K20X 
Intel Xeon E5-2690 v3 
Architecture 
Kepler 
Haswell 
Launch 
Nov-2012 
Sep-2014 
# of transistors 
7.1billion 
3.84billion 
# of cores 
2688 (simple) 
12 (functional) 
Core clock 
732MHz 
2.6GHz, up to 3.5GHz 
Peak Flops 
(single precision) 
3.95TFLOPS 
998.4GFLOPS 
(AVX2使用) 
DRAM size 
6GB, GDDR5 
768GB/socket, DDR4 
Memory band 
250GB/s 
68GB/s 
Power consumption 
235W 
135W 
Price 
$3,000 
$2,094 
Page. 4 
SOURCE: CUDA C Programming Guide (v6.5) 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-5-638.jpg?cb=1417742188" title="GPU活用による計算の例 – 縮約アルゴリズム 
● 
item[0] 
step.1 
step.2 
step.4..." target="_blank">
        5.
      </a>
    GPU活用による計算の例 – 縮約アルゴリズム 
● 
item[0] 
step.1 
step.2 
step.4 
step.3 
N個のGPUコアによる 
Σi=0...N-1item[i] 
配列総和の計算 
◆ 
● 
▲ 
■ 
★ 
● 
◆ 
● 
● 
◆ 
▲ 
● 
● 
◆ 
● 
● 
◆ 
▲ 
■ 
● 
● 
◆ 
● 
● 
◆ 
▲ 
● 
● 
◆ 
● 
item[1] 
item[2] 
item[3] 
item[4] 
item[5] 
item[6] 
item[7] 
item[8] 
item[9] 
item[10] 
item[11] 
item[12] 
item[13] 
item[14] 
item[15] 
log2N ステップで items[]の総和を計算 
HW支援によるコア間の同期機構 
Page. 5 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-6-638.jpg?cb=1417742188" title="半導体技術のトレンド (1/2) – ヘテロジニアス化 
▌マルチコアCPUから、CPU/GPU統合型アーキテクチャへ..." target="_blank">
        6.
      </a>
    半導体技術のトレンド (1/2) – ヘテロジニアス化 
▌マルチコアCPUから、CPU/GPU統合型アーキテクチャへの移行 
▌HW性能向上からSWがフリーランチを享受できた時代は終わりつつある。 
HW特性を意識してSWを設計しないと、半導体の能力を引き出せない。 
Page. 6 
SOURCE: THE HEART OF AMD INNOVATION, Lisa Su, at AMD Developer Summit 2013 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-7-638.jpg?cb=1417742188" title="半導体技術のトレンド (2/2) – ダークシリコン問題 
▌CPU/GPU統合型アーキテクチャの背景 
トランジス..." target="_blank">
        7.
      </a>
    半導体技術のトレンド (2/2) – ダークシリコン問題 
▌CPU/GPU統合型アーキテクチャの背景 
トランジスタ集積度向上のスピード &gt; トランジスタあたり消費電力削減のスピード 
排熱が追いつかないので、全ての回路に同時に電力供給するワケにはいかない。 
同じチップ上に特性の異なる回路を実装。ピーク電力消費を抑える。 
Page. 7 
SOURCE: Compute Power with Energy-Efficiency, Jem Davies, at AMD Fusion Developer Summit 2011 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-8-638.jpg?cb=1417742188" title="RDBMSとボトルネックを考える (1/2) 
Page. 8 
Storage 
Processor 
データ 
R..." target="_blank">
        8.
      </a>
    RDBMSとボトルネックを考える (1/2) 
Page. 8 
Storage 
Processor 
データ 
RAM 
データサイズ &gt; RAM容量 
データサイズ &lt; RAM容量 
Storage 
Processor 
データ 
RAM 
将来は？ 
Processor 
広帯域 RAM 
不揮発型 RAM 
データ 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-9-638.jpg?cb=1417742188" title="現代のメモリボトルネックの世界 Join、Aggregation、Sort、Projectionなど 戦略 
•バース..." target="_blank">
        9.
      </a>
    現代のメモリボトルネックの世界 Join、Aggregation、Sort、Projectionなど 戦略 
•バーストしやすいアクセスパターン 
•並列計算アルゴリズムの適用 
伝統的なディスクI/Oボトルネックの世界 SeqScan、IndexScanなど 戦略 
•I/Oの量 (サイズ、回数) を減らす 
•ディスク分散 (RAID) 
RDBMSとボトルネックを考える (2/2) 
Page. 9 
Processor 
RAM 
Storage 
帯域： 数十~数百GB/s 
帯域： 数百MB/s～数GB/s 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-10-638.jpg?cb=1417742188" title="PG-Stromのアプローチ 
▌PG-Stromとは 
PostgreSQL用の拡張モジュール 
SQL処理ワー..." target="_blank">
        10.
      </a>
    PG-Stromのアプローチ 
▌PG-Stromとは 
PostgreSQL用の拡張モジュール 
SQL処理ワークロードの一部をGPUで並列実行し、高速化を実現。 
Full-Scan、Hash-Join、Aggregate の３種類のワークロードに対応 
(2014年11月時点のβ版での対応状況) 
▌コンセプト 
SQL構文からGPU用のネイティブ命令を動的に生成。JITコンパイル。 
CPU/GPU協調による非同期並列実行 
▌利点 
利用者からは完全に透過的に動作。 
•SQL構文や周辺ツール、ドライバを含めPostgreSQL向けのソフトウェア資産を利用可 
GPU+OSSの組み合わせにより、低コストでの性能改善が計れる。 
▌注意点 
ただし、現時点ではインメモリ・データストアが前提。 
Page. 10 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-11-638.jpg?cb=1417742188" title="PostgreSQL 
PG-Strom 
PG-Stromのアーキテクチャ (1/2) 
Page. 11 
GPU..." target="_blank">
        11.
      </a>
    PostgreSQL 
PG-Strom 
PG-Stromのアーキテクチャ (1/2) 
Page. 11 
GPU Code Generator 
Storage 
Storage Manager 
Shared Buffer 
Query Parser 
Query Optimizer 
Query Executor 
SQL問い合わせ 
構文解析 
実行計画作成 
クエリ実行 
Custom-Scan Interface 
GpuScan 
GpuHashJoin 
GpuPreAgg 
GPU Program Manager 
PG-Strom OpenCL Server 
Message Queue 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-12-638.jpg?cb=1417742188" title="PG-Stromのアーキテクチャ (2/2) 
▌要素技術① OpenCL 
ヘテロジニアス計算環境を用いた並列計算..." target="_blank">
        12.
      </a>
    PG-Stromのアーキテクチャ (2/2) 
▌要素技術① OpenCL 
ヘテロジニアス計算環境を用いた並列計算フレームワーク 
NVIDIAやAMDのGPUだけでなく、CPU並列にも適用可能 
言語仕様にランタイムコンパイラを含む。 
▌要素技術② Custom-Scan Interface 
あたかもPostgreSQLのSQL処理ロジックであるかのように、 拡張モジュールがスキャンやジョインを実装するための機能。 
PostgreSQL v9.5で一部機能がマージ。フル機能の標準化に向けて、 開発者コミュニティで議論が進んでいる。 
▌要素技術③ 行指向データ構造 
PostgreSQLの共有バッファをDMA転送元として利用する。 
GPUの性能を引き出すには列指向データが最適ではあるものの、 行列変換が非常にコスト高で本末転倒に。 
Page. 12 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-13-638.jpg?cb=1417742188" title="要素技術① OpenCL (1/2) 
▌OpenCL の特徴 
GPUだけでなく、CPUやMICも含め “Open..." target="_blank">
        13.
      </a>
    要素技術① OpenCL (1/2) 
▌OpenCL の特徴 
GPUだけでなく、CPUやMICも含め “OpenCLデバイス” として抽象化。 
•とはいえ、概ねGPUの特徴を踏襲しているが…。 
三種類のメモリ階層 (global, local, constant) 
一定数のスレッドがプログラムカウンタを共有 (WARP; NVIDIAでは32個) 
C言語ライクなソースコードから、JITコンパイルによってプラットフォーム 固有のネイティブ実行コードを生成。 
▌CUDAとの比較 
① JITコンパイルの仕組みを自前で作らなくても良い事、 ② 先ずは幅広く使用してもらう事、を優先して OpenCL を選択 
Page. 13 
CUDA 
OpenCL 
利点 
•細かな最適化が可能 
•NVIDIA GPUの最新機能 
•ドライバの実績・安定性 
•マルチプラットフォームへの対応 
•JITコンパイラを言語仕様に含む 
•CPU並列へも対応が可能 
課題 
•AMD、Intel環境での利用不可 
•ドライバの実績・安定性 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-14-638.jpg?cb=1417742188" title="要素技術① OpenCL (2/2) 
Page. 14 
GPU ソースコード (text) 
OpenCL run..." target="_blank">
        14.
      </a>
    要素技術① OpenCL (2/2) 
Page. 14 
GPU ソースコード (text) 
OpenCL runtime 
OpenCL Interface 
OpenCL runtime 
OpenCL runtime 
OpenCL Devices 
N x computing units 
Global Memory 
Local Memory 
Constant Memory 
cl_program オブジェクト 
cl_kernel オブジェクト 
DMA バッファ③ 
DMA バッファ② 
DMA バッファ① 
clBuildProgram() 
clCreateKernel() 
コマンドキュー 
Just-in-Time コンパイル 
kernel関数 ルックアップ 
コードとデータをペアにして コマンドキューへ投入 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-15-638.jpg?cb=1417742188" title="GPUコードの自動生成 
Page. 15 
postgres=# SET pg_strom.show_device_..." target="_blank">
        15.
      </a>
    GPUコードの自動生成 
Page. 15 
postgres=# SET pg_strom.show_device_kernel = on; SET postgres=# EXPLAIN (verbose, costs off) SELECT cat, avg(x) from t0 WHERE x &lt; y GROUP BY cat; QUERY PLAN -------------------------------------------------------------------------------------------- HashAggregate Output: cat, pgstrom.avg(pgstrom.nrows(x IS NOT NULL), pgstrom.psum(x)) Group Key: t0.cat -&gt; Custom (GpuPreAgg) Output: NULL::integer, cat, NULL::integer, NULL::integer, NULL::integer, NULL::integer, NULL::double precision, NULL::double precision, NULL::text, pgstrom.nrows(x IS NOT NULL), pgstrom.psum(x) Bulkload: On Kernel Source: #include &quot;opencl_common.h&quot; #include &quot;opencl_gpupreagg.h&quot; #include &quot;opencl_textlib.h&quot; : &lt;...snip...&gt; static bool gpupreagg_qual_eval(__private cl_int *errcode, __global kern_parambuf *kparams, __global kern_data_store *kds, __global kern_data_store *ktoast, size_t kds_index) { pg_float8_t KVAR_7 = pg_float8_vref(kds,ktoast,errcode,6,kds_index); pg_float8_t KVAR_8 = pg_float8_vref(kds,ktoast,errcode,7,kds_index); return EVAL(pgfn_float8lt(errcode, KVAR_7, KVAR_8)); } 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-16-638.jpg?cb=1417742188" title="PG-Stromの処理イメージ① – Hash-Joinのケース 
Page. 16 
Inner relation ..." target="_blank">
        16.
      </a>
    PG-Stromの処理イメージ① – Hash-Joinのケース 
Page. 16 
Inner relation 
Outer relation 
Inner relation 
Outer relation 
Hash表 
Hash表 
次処理 
次処理 
CPU側は Join結果を 参照するだけ 
CPUによる Hash表探索 
CPUによる Projection処理 
並列 Projection 
並列Hash表探索 
標準のHash-Join実装 
GpuHashJoin実装 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-17-638.jpg?cb=1417742188" title="ベンチマーク (1/2) – Simple Tables Join 
[測定条件] 
▌2億件 x 10万件 x 10..." target="_blank">
        17.
      </a>
    ベンチマーク (1/2) – Simple Tables Join 
[測定条件] 
▌2億件 x 10万件 x 10万件 ... のINNER JOINをテーブル数を変化させながら実行 
▌使用したクエリ： SELECT * FROM t0 natural join t1 [natural join t2 ...]; 
▌全てのテーブルは事前にバッファにロード済み 
▌HW: Express5800 HR120b-1, CPU: Xeon E5-2640, RAM: 256GB, GPU: NVIDIA GTX980 
Page. 17 
178.7 
334.0 
513.6 
713.1 
941.4 
1181.3 
1452.2 
1753.4 
29.1 
30.5 
35.6 
36.6 
43.6 
49.5 
50.1 
60.6 
0 
200 
400 
600 
800 
1000 
1200 
1400 
1600 
1800 
2000 
2 
3 
4 
5 
6 
7 
8 
9 
Query response time 
number of joined tables 
Simple Tables Join 
PostgreSQL 
PG-Strom 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-18-638.jpg?cb=1417742188" title="PG-Stromの処理イメージ② – 集約演算のケース 
▌Aggregate/Sortより前にGpuPreAggを置..." target="_blank">
        18.
      </a>
    PG-Stromの処理イメージ② – 集約演算のケース 
▌Aggregate/Sortより前にGpuPreAggを置く事で、CPUが処理する行数を減らす。 
▌GPU搭載RAMの制約により、テーブル全体に集約演算を施す事は困難だが、 数万行～数十万行単位での “部分集約” を作るのは容易。 
▌高速化のポイントはCPUが処理しなければならない仕事を減らす事。 
GroupAggregate 
Sort 
SeqScan 
Tbl_1 
結果セット 
数行 
数千万行 
数千万行 
count(*), avg(X), Y 
X, Y 
X, Y 
X, Y, Z (table definition) 
GroupAggregate 
Sort 
GpuScan 
Tbl_1 
結果セット 
数行 
数百行 
数千万行 
sum(nrows), avg_ex(nrows, psum), Y 
Y, nrows, psum_X 
X, Y 
X, Y, Z (table definition) 
GpuPreAgg 
Y, nrows, psum_X 
数百行 
SELECT count(*), AVG(X), Y FROM Tbl_1 GROUP BY Y; 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL 
Page. 18  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-19-638.jpg?cb=1417742188" title="ベンチマーク (2/2) – Aggregation + Tables Join 
[測定条件] 
▌2億件 x 10..." target="_blank">
        19.
      </a>
    ベンチマーク (2/2) – Aggregation + Tables Join 
[測定条件] 
▌2億件 x 10万件 x 10万件 ... のINNER JOINをテーブル数を変化させながら実行 
▌使用したクエリ： 
SELECT cat, AVG(x) FROM t0 natural join t1 [natural join t2 ...] GROUP BY CAT; 
▌他の測定条件は前試験と同一 
Page. 19 
157.4 
238.2 
328.3 
421.7 
525.5 
619.3 
712.8 
829.2 
44.0 
43.2 
42.8 
45.0 
48.5 
50.8 
61.0 
66.7 
0 
100 
200 
300 
400 
500 
600 
700 
800 
900 
1000 
2 
3 
4 
5 
6 
7 
8 
9 
Query response time 
number of joined tables 
Aggregation + Tables Join 
PostgreSQL 
PG-Strom 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-20-638.jpg?cb=1417742188" title="要素技術② – Custom-Scan Interface 
Page. 20 
Table.A 
アクセス対象テーブ..." target="_blank">
        20.
      </a>
    要素技術② – Custom-Scan Interface 
Page. 20 
Table.A 
アクセス対象テーブル 
条件句 
id &gt; 200 
候補パス① 
SeqScan 
cost=400 
候補パス② 
TidScan 
unavailable 
候補パス③ 
IndexScan 
cost=10 
統計情報 
候補パス④ 
CustomScan 
(GpuScan) 
cost=40 
ビルトイン 
ロジック 
Table.X 
統計情報 
Table.Y 
統計情報 
結合対象テーブル 
候補パス① 
NestLoop 
cost=8000 
候補パス② 
HashJoin 
cost=800 
候補パス③ 
MergeJoin 
cost=1200 
候補パス④ 
CustomScan 
(GpuHashJoin) 
cost=500 
ビルトイン 
ロジック 
結合条件 
x.id = y.id 
候補パス③ 
IndexScan 
cost=10 
Table.A 
WINNER! 
Table.X 
統計情報 
Table.Y 
統計情報 
候補パス④ 
CustomScan 
(GpuHashJoin) 
cost=500 
結合条件 
x.id = y.id 
WINNER! 
拡張モジュールが実装す 
るSQL実行ロジックを、標 
準のものと同列に並べて 
取捨選択を行う。 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL 
 
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-21-638.jpg?cb=1417742188" title="Yes!! Custom-Scan Interface got merged to v9.5 
Page. 21 
ま..." target="_blank">
        21.
      </a>
    Yes!! Custom-Scan Interface got merged to v9.5 
Page. 21 
まず、コンセンサスである Scan部分のカスタムロジックを 拡張モジュールで実装できるよう インターフェースを定義。 ↓ 次にJoinのカスタムロジックを 開発者コミュニティで議論 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-22-638.jpg?cb=1417742188" title="Custom-Scan Interfaceの拡張 
The PostgreSQL Conference 2014, T..." target="_blank">
        22.
      </a>
    Custom-Scan Interfaceの拡張 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL 
Page. 22 
Table.X 
統計情報 
Table.Y 
統計情報 
結合対象テーブル 
候補パス① NestLoop 
候補パス② HashJoin 
候補パス③ MergeJoin 
候補パス④ CustomScan (GpuHashJoin) 
ビルトイン ロジック 
結合条件 x.id = y.id 
X 
Y 
X 
Y 
NestLoop ロジック 
HashJoin ロジック 
X 
Y 
MergeJoin ロジック 
X 
Y 
GpuHashJoin ロジック 
Join結果 Relation 
Join後の結果Relationを スキャンしているように見える。 
Joinが入るべき場所を、Foreign-/Custom-Scanで置き換える。 
活用例： “Remote Joinの結果” をスキャンするように見えるFDWなど。 
▌Join replacement by foreign-/custom-scan  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-23-638.jpg?cb=1417742188" title="Custom-Scan Interfaceの斜め上な使い方 
▌データの流れ 
GpuScanやSeqScanが行を..." target="_blank">
        23.
      </a>
    Custom-Scan Interfaceの斜め上な使い方 
▌データの流れ 
GpuScanやSeqScanが行を読み出し、上位ノードで処理、さらに上位へ… 
一行毎に TupleTableSlot を介してデータの受け渡しを行う。 
▌プロトコルに従う必要がないケース 
親ノード子ノードが同一のモジュールによって管理されている場合。 
独自のデータ形式を用いてデータの受け渡しを行っても問題ない。 
“Bulkload: On”  複数行(1万～10万行程度)を一回の呼び出しで受け渡す 
Page. 23 
postgres=# EXPLAIN SELECT * FROM t0 NATURAL JOIN t1; QUERY PLAN ----------------------------------------------------------------------------- Custom (GpuHashJoin) (cost=2234.00..468730.50 rows=19907950 width=106) hash clause 1: (t0.aid = t1.aid) Bulkload: On -&gt; Custom (GpuScan) on t0 (cost=500.00..267167.00 rows=20000024 width=73) -&gt; Custom (MultiHash) (cost=734.00..734.00 rows=40000 width=37) hash keys: aid Buckets: 46000 Batches: 1 Memory Usage: 99.97% -&gt; Seq Scan on t1 (cost=0.00..734.00 rows=40000 width=37) Planning time: 0.220 ms (9 rows) 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-24-638.jpg?cb=1417742188" title="PostgreSQL 
PG-Strom 
要素技術③ – 行指向データ構造 
Page. 24 
Storage 
..." target="_blank">
        24.
      </a>
    PostgreSQL 
PG-Strom 
要素技術③ – 行指向データ構造 
Page. 24 
Storage 
Storage Manager 
Shared Buffer 
Query Parser 
Query Optimizer 
Query Executor 
SQL問い合わせ 
構文解析 
実行計画作成 
クエリ実行 
Custom-Plan APIs 
GpuScan 
GpuHashJoin 
GpuPreAgg 
DMA転送 (via PCI-E bus) 
GPU Program Manager 
PG-Strom OpenCL Server 
Message Queue 
T-Tree Columnar Cache 
GPU Code Generator 
キャッシュ構築 (行列変換) 
処理結果返却 (列行変換) 
以前の実装では、 列指向データ構造で テーブル内容を キャッシュしていた 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-25-638.jpg?cb=1417742188" title="なぜGPUと列指向データの相性が良いか 
Page. 25 
SOURCE: Maxwell: The Most Ad..." target="_blank">
        25.
      </a>
    なぜGPUと列指向データの相性が良いか 
Page. 25 
SOURCE: Maxwell: The Most Advanced CUDA GPU Ever Made 
Core 
Core 
Core 
Core 
Core 
Core 
Core 
Core 
Core 
Core 
SOURCE: How to Access Global Memory Efficiently in CUDA C/C++ Kernels 
coalesced memory access 
Global Memory (DRAM) 
Wide Memory Bandwidth (256-384bits) 
WARP: 命令ポインタを共有する GPUの命令処理単位。 32個単位である事が多い。 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-26-638.jpg?cb=1417742188" title="PostgreSQLのタプル形式 
Page. 26 
struct HeapTupleHeaderData { un..." target="_blank">
        26.
      </a>
    PostgreSQLのタプル形式 
Page. 26 
struct HeapTupleHeaderData { union { HeapTupleFields t_heap; DatumTupleFields t_datum; } t_choice; /* current TID of this or newer tuple */ ItemPointerData t_ctid; /* number of attributes + various flags */ uint16 t_infomask2; /* various flag bits, see below */ uint16 t_infomask; /* sizeof header incl. bitmap, padding */ uint8 t_hoff; /* ^ - 23 bytes - ^ */ /* bitmap of NULLs -- VARIABLE LENGTH */ bits8 t_bits[1]; /* MORE DATA FOLLOWS AT END OF STRUCT */ }; 
HeapTupleHeader 
NULL bitmap (if has null) 
OID of row (if exists) 
Padding 
1st Column 
2nd Column 
4th Column 
Nth Column 
NULL値なら データは入ってない 
途中に 可変長データが 入っていると、 後ろのフィールドの 位置がずれる 
全フィールドが 比NULLなら NULL Bitmapはない 
Row OIDは 無い場合も多い 
GPU向けとしては、 割と最悪に近いデータ構造 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-27-638.jpg?cb=1417742188" title="列指向キャッシュの悪夢 (1/2) 
▌列指向キャッシュと行列変換 
Page. 27 
postgres=# exp..." target="_blank">
        27.
      </a>
    列指向キャッシュの悪夢 (1/2) 
▌列指向キャッシュと行列変換 
Page. 27 
postgres=# explain (analyze, costs off) select * from t0 natural join t1 natural join t2; QUERY PLAN ------------------------------------------------------------------------------ Custom (GpuHashJoin) (actual time=54.005..9635.134 rows=20000000 loops=1) hash clause 1: (t0.aid = t1.aid) hash clause 2: (t0.bid = t2.bid) number of requests: 144 total time to load: 584.67ms total time to materialize: 7245.14ms &lt;-- 全体の70%!! average time in send-mq: 37us average time in recv-mq: 0us max time to build kernel: 1us DMA send: 5197.80MB/sec, len: 2166.30MB, time: 416.77ms, count: 470 DMA recv: 5139.62MB/sec, len: 287.99MB, time: 56.03ms, count: 144 kernel exec: total: 441.71ms, avg: 3067us, count: 144 -&gt; Custom (GpuScan) on t0 (actual time=4.011..584.533 rows=20000000 loops=1) -&gt; Custom (MultiHash) (actual time=31.102..31.102 rows=40000 loops=1) hash keys: aid -&gt; Seq Scan on t1 (actual time=0.007..5.062 rows=40000 loops=1) -&gt; Custom (MultiHash) (actual time=17.839..17.839 rows=40000 loops=1) hash keys: bid -&gt; Seq Scan on t2 (actual time=0.019..6.794 rows=40000 loops=1) Execution time: 10525.754 ms 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-28-638.jpg?cb=1417742188" title="列指向キャッシュの悪夢 (2/2) 
Page. 28 
テーブル (行指向データ) ⇩ 列指向キャッシュへの変換 （..." target="_blank">
        28.
      </a>
    列指向キャッシュの悪夢 (2/2) 
Page. 28 
テーブル (行指向データ) ⇩ 列指向キャッシュへの変換 （最初の一回だけ） 
PG-Strom内部形式 (列指向データ) ⇩ PostgreSQLの データ受渡し形式 (行指向データ) 
[Hash-Join処理] テーブル間で対応する レコードを探索する処理 
処理時間の内訳 
You cannot see the wood for the trees （木を見て森を見ず） 
GPU内のロジックを最適化するために、足回り (= PostgreSQLとの インターフェース部分) で無視できない処理コストが発生している。 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-29-638.jpg?cb=1417742188" title="GPUアクセラレーションのポイント (1/2) 
Page. 29 
•CPUは希少リソース。いかにCPUに仕事をさせ..." target="_blank">
        29.
      </a>
    GPUアクセラレーションのポイント (1/2) 
Page. 29 
•CPUは希少リソース。いかにCPUに仕事をさせないかがポイント。 
•CPUに仕事をさせる場合、メモリ性能を発揮しやすいパターンを意識する。 
Storage 
Shared Buffer 
T-Tree columnar cache 
結果バッファ 
PostgreSQL 行イメージ スロット 
CPUのタスク キャッシュ構築の際に、 一度だけ行列変換 極めて高い負荷 
CPUのタスク キャッシュ構築の際に、 一度だけ行列変換 極めて高い負荷 
PCI-Eのタスク 列指向データなので、 必要なデータだけを転送 低い負荷 
CPUのタスク 処理結果をPostgreSQLへ返 す際に、毎回、列行変換 極めて高い負荷 
GPUのタスク 列データに対して演算処理を 実行。GPUの特性に従って 最適化されたコード。 
列指向データの利用時 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-30-638.jpg?cb=1417742188" title="GPUアクセラレーションのポイント (2/2) 
Page. 30 
•CPUは希少リソース。いかにCPUに仕事をさせ..." target="_blank">
        30.
      </a>
    GPUアクセラレーションのポイント (2/2) 
Page. 30 
•CPUは希少リソース。いかにCPUに仕事をさせないかがポイント。 
•CPUに仕事をさせる場合、メモリ性能を発揮しやすいパターンを意識する。 
Storage 
Shared Buffer 
結果バッファ 
PostgreSQL 行イメージ スロット 
CPUのタスク DMA転送前の 可視性チェックのみ。 軽い負荷 
CPUのタスク キャッシュ構築の際に、 一度だけ行列変換 極めて高い負荷 
PCI-Eのタスク 行指向データなので、 全てのデータを転送する 少し高い負荷 
CPUのタスク 結果バッファへのポインタを セットするだけ。 極めて軽い負荷 
GPUのタスク 行データに対して演算処理を実行。 最適なデータ構造ではないが、 コアの数で処理速度をカバー 
行指向データの利用時 
独自の キャッシュは 持たない 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-31-638.jpg?cb=1417742188" title="PostgreSQLのshared_bufferと統合した結果 
▌列指向キャッシュと行列変換 
Page. 31 
..." target="_blank">
        31.
      </a>
    PostgreSQLのshared_bufferと統合した結果 
▌列指向キャッシュと行列変換 
Page. 31 
postgres=# explain (analyze, costs off) select * from t0 natural join t1 natural join t2; QUERY PLAN ----------------------------------------------------------- Custom (GpuHashJoin) (actual time=111.085..4286.562 rows=20000000 loops=1) hash clause 1: (t0.aid = t1.aid) hash clause 2: (t0.bid = t2.bid) number of requests: 145 total time for inner load: 29.80ms total time for outer load: 812.50ms total time to materialize: 1527.95ms &lt;-- 大幅に削減 average time in send-mq: 61us average time in recv-mq: 0us max time to build kernel: 1us DMA send: 5198.84MB/sec, len: 2811.40MB, time: 540.77ms, count: 619 DMA recv: 3769.44MB/sec, len: 2182.02MB, time: 578.87ms, count: 290 proj kernel exec: total: 264.47ms, avg: 1823us, count: 145 main kernel exec: total: 622.83ms, avg: 4295us, count: 145 -&gt; Custom (GpuScan) on t0 (actual time=5.736..812.255 rows=20000000 loops=1) -&gt; Custom (MultiHash) (actual time=29.766..29.767 rows=80000 loops=1) hash keys: aid -&gt; Seq Scan on t1 (actual time=0.005..5.742 rows=40000 loops=1) -&gt; Custom (MultiHash) (actual time=16.552..16.552 rows=40000 loops=1) hash keys: bid -&gt; Seq Scan on t2 (actual time=0.022..7.330 rows=40000 loops=1) Execution time: 5161.017 ms &lt;-- 応答性能は大幅改善 
やや、性能劣化 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-32-638.jpg?cb=1417742188" title="PG-Stromの現在と今後 (1/2) – 現在 
▌対応済みのロジック 
GpuScan ... 条件句付き全件..." target="_blank">
        32.
      </a>
    PG-Stromの現在と今後 (1/2) – 現在 
▌対応済みのロジック 
GpuScan ... 条件句付き全件スキャンのGPU処理 
GpuHashJoin ... Hash-JoinのGPU実装 
GpuPreAgg ... GPUによる集約関数の前処理 
▌対応しているデータ型 
整数型 (smallint, integer, bigint) 
浮動小数点型 (real, float) 
文字列型 (text, varchar(n), char(n)) 
日付時刻型 (date, time, timestamp) 
NUMERIC型 
▌対応している関数 
各データ型の四則演算オペレータ 
各データ型の大小比較オペレータ 
浮動小数点型の数値計算関数 
集約演算： MIN, MAX, SUM, AVG, 標準偏差, 分散, 共分散 
Page. 32 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-33-638.jpg?cb=1417742188" title="PG-Stromの現在と今後 (2/2) – 今後 
▌今後対応するロジック 
Outer Join 
Sort ..." target="_blank">
        33.
      </a>
    PG-Stromの現在と今後 (2/2) – 今後 
▌今後対応するロジック 
Outer Join 
Sort 
Aggregate Push-down 
... その他？ 
▌対応するデータ型？ 
▌対応する関数？ 
LIKE句、正規表現？ 
日付/時刻関数 
PostGIS関数？？ 
幾何関数？ 
ユーザ定義関数？ 
▌足回りの強化 
Page. 33 
Shared Buffer 
block-0 
block-N 
block-N/3 
block-2N/3 
領域分割と 並列スキャン 
現在 
将来 
いかにオンメモリとはいえ、シングルCPUで GPUにデータを供給するのは厳しい 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-34-638.jpg?cb=1417742188" title="どういう領域で使いたいか 
▌アプリケーション： 1st ターゲットとしてBIツールを想定 
▌データサイズは高々1...." target="_blank">
        34.
      </a>
    どういう領域で使いたいか 
▌アプリケーション： 1st ターゲットとしてBIツールを想定 
▌データサイズは高々1.0TB未満、中堅企業／大企業の部門 
現状、In-memoryでデータを持たねばならないため 
▌GPU と PostgreSQL、どちらも安価な組み合わせ。 
Page. 34 
商用データ解析 アプライアンス 
商用/OSS RDBMS 
応答速度・大／バッチ処理 
応答速度・小／リアルタイム処理 
データサイズ・小 
データサイズ・大 
1.0TB 未満 
1.0TB 以上 
コスト アドバンテージ 
処理速度 アドバンテージ 
PG-Strom 
Hadoop? 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-35-638.jpg?cb=1417742188" title="(参考) ROLAPとMOLAP 
▌PG-Stromの利用シーンは 
ROLAP向けバックエンドRDBMS / 応..." target="_blank">
        35.
      </a>
    (参考) ROLAPとMOLAP 
▌PG-Stromの利用シーンは 
ROLAP向けバックエンドRDBMS / 応答速度高速化 
MOLAP向けキューブ作成処理 / バッチ処理高速化 
Page. 35 
ERP 
SCM 
CRM 
Finance 
DWH 
DWH 
業務系システム (OLTPの世界) 
情報系システム (OLAPの世界) 
ETL 
ROLAP: BIツールの要求に応じて DBが集計処理を実行 
MOLAP: 事前計算で作成した キューブを参照する 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-36-638.jpg?cb=1417742188" title="想定利用シーン (1/2) – OLTP/OLAP統合 
▌OLTP/OLAPデータベースを分ける理由 
複数のデー..." target="_blank">
        36.
      </a>
    想定利用シーン (1/2) – OLTP/OLAP統合 
▌OLTP/OLAPデータベースを分ける理由 
複数のデータソースを統合する 
参照系ワークロードへの最適化 
▌PG-Stromの適用により... 
性能のカギとなるJoinやAggregateを並列処理、リアルタイム化 
OLAPとETLが不要とする事で、システムコストを圧縮 
Page. 36 
ERP 
CRM 
SCM 
BI 
OLTP database 
OLAP database 
ETL 
OLAP Cubes 
Master / Fact Tables 
BI 
PG-Strom 
性能のカギ 
•マスタ＆ファクト テーブルの結合 
•グループ化＆ 集約演算 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-37-638.jpg?cb=1417742188" title="想定利用シーン (2/2) – 一緒にトライしませんか？ 
▌どういった領域に適用可能だろうか？ 
▌どういった用途で..." target="_blank">
        37.
      </a>
    想定利用シーン (2/2) – 一緒にトライしませんか？ 
▌どういった領域に適用可能だろうか？ 
▌どういった用途で使えるだろうか？ 
▌どういったワークロードに困っているだろうか？ 
PG-Stromプロジェクトはフィールドから学びたいと考えています 
Page. 37 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-38-638.jpg?cb=1417742188" title="PG-Strom Roadmap 
Page. 38 
The PostgreSQL Conference 2014,..." target="_blank">
        38.
      </a>
    PG-Strom Roadmap 
Page. 38 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-39-638.jpg?cb=1417742188" title="How to use (1/3) – インストールに必要なのは 
▌OS: Linux (RHEL 6.x で動作確認..." target="_blank">
        39.
      </a>
    How to use (1/3) – インストールに必要なのは 
▌OS: Linux (RHEL 6.x で動作確認) 
▌PostgreSQL 9.5devel (with Custom-Plan Interface) 
▌PG-Strom 拡張モジュール 
▌OpenCL ドライバ (NVIDIAランタイムなど) 
Page. 39 
shared_preload_libraries = &#x27;$libdir/pg_strom‘ shared_buffers = &lt;DBサイズと同程度&gt; 
PG-Stromを使用するために最低限必要な設定 
postgres=# SET pg_strom.enabled = on; SET 
実行時に PG-Strom の有効/無効を切り替える 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-40-638.jpg?cb=1417742188" title="How to use (2/3) – ビルド、インストール、起動 
Page. 40 
[kaigai@saba ~]..." target="_blank">
        40.
      </a>
    How to use (2/3) – ビルド、インストール、起動 
Page. 40 
[kaigai@saba ~]$ git clone https://github.com/pg-strom/devel.git pg_strom [kaigai@saba ~]$ cd pg_strom [kaigai@saba pg_strom]$ make &amp;&amp; make install [kaigai@saba pg_strom]$ vi $PGDATA/postgresql.conf 
[kaigai@saba ~]$ pg_ctl start server starting [kaigai@saba ~]$ LOG: registering background worker &quot;PG-Strom OpenCL Server&quot; LOG: starting background worker process &quot;PG-Strom OpenCL Server&quot; LOG: database system was shut down at 2014-11-09 17:45:51 JST LOG: autovacuum launcher started LOG: database system is ready to accept connections LOG: PG-Strom: [0] OpenCL Platform: NVIDIA CUDA LOG: PG-Strom: (0:0) Device GeForce GTX 980 (1253MHz x 16units, 4095MB) LOG: PG-Strom: (0:1) Device GeForce GTX 750 Ti (1110MHz x 5units, 2047MB) LOG: PG-Strom: [1] OpenCL Platform: Intel(R) OpenCL LOG: PG-Strom: Platform &quot;NVIDIA CUDA (OpenCL 1.1 CUDA 6.5.19)&quot; was installed LOG: PG-Strom: Device &quot;GeForce GTX 980&quot; was installed LOG: PG-Strom: shmem 0x7f447f6b8000-0x7f46f06b7fff was mapped (len: 10000MB) LOG: PG-Strom: buffer 0x7f34592795c0-0x7f44592795bf was mapped (len: 65536MB) LOG: Starting PG-Strom OpenCL Server LOG: PG-Strom: 24 of server threads are up 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-41-638.jpg?cb=1417742188" title="How to use (3/3) – AWSで楽々デプロイ 
Page. 41 
“strom” で検索！ 
AWS ..." target="_blank">
        41.
      </a>
    How to use (3/3) – AWSで楽々デプロイ 
Page. 41 
“strom” で検索！ 
AWS GPUインスタンス仕様 (g2.2xlarge) 
CPU 
Xeon E5-2670 (8 xCPU) 
RAM 
15GB 
GPU 
NVIDIA GRID K2 (1536core) 
Storage 
60GB of SSD 
Price 
$0.898/hour、$646.56/mon 
(*) 2014年11月8日現在の東京リージョン オンデマンドインスタンス価格 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-42-638.jpg?cb=1417742188" title="補足① – 自分で試してみたい人へ 
Page. 42 
check it out! https://github.c..." target="_blank">
        42.
      </a>
    補足① – 自分で試してみたい人へ 
Page. 42 
check it out! https://github.com/pg-strom/devel 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-43-638.jpg?cb=1417742188" title="補足② – 一緒に試してみたい人へ 
▌PG-Stromの検証環境を用意しました。 
▌一定の条件下で、共同検証に無償..." target="_blank">
        43.
      </a>
    補足② – 一緒に試してみたい人へ 
▌PG-Stromの検証環境を用意しました。 
▌一定の条件下で、共同検証に無償利用する事ができます。 
ウチのシステムのSQLが早くなるかどうか試してみたい。 
こんな使い道だと効果が大きそう。試してみたい。 
Page. 43 
PG-Strom検証環境 
CPU 
Intel Xeon E5-2670 v3 (12C, 2.3GHz) x2 
RAM 
768GB 
GPU 
NVIDIA Tesla K20C x1 
NVIDIA GTX980 x1 
NVIDIA GTX750Ti x1 
HDD 
2.1TB (300GB SAS 10krpm, x8; RAID5) 
OS 
Red Hat Enterprise Linux 6.x 
DB 
PostgreSQL 9.5devel + PG-Strom 
その他 
応相談 
興味がある方は pg-strom@bid.jp.nec.com まで 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-44-638.jpg?cb=1417742188" title="イノベーションのジレンマ 
Page. 44 
SOURCE: The Innovator&#x27;s Dilemma, Cl..." target="_blank">
        44.
      </a>
    イノベーションのジレンマ 
Page. 44 
SOURCE: The Innovator&#x27;s Dilemma, Clayton M. Christensen 
Performance demanded at the high end of the market 
Performance demanded at the low end of the marker or in a new emerging segment 
Product Performance 
Time 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>
  <li>
      <a href="https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-45-638.jpg?cb=1417742188" title="コミュニティと共に進む 
Page. 45 
The PostgreSQL Conference 2014, Toky..." target="_blank">
        45.
      </a>
    コミュニティと共に進む 
Page. 45 
The PostgreSQL Conference 2014, Tokyo - GPGPU Accelerates PostgreSQL  
  </li>

              </ol>
            </div>
      </div>
    </div>

    <aside id="side-panel" class="small-12 large-4 columns j-related-more-tab">
      
<dl class="tabs related-tabs small" data-tab>
    <dd class="active">
      <a href="#related-tab-content" data-ga-cat="bigfoot_slideview" data-ga-action="relatedslideshows_tab">
        Recommended
      </a>
    </dd>
</dl>

<div class="tabs-content">
    <ul id="related-tab-content" class="content active no-bullet notranslate">
          <li class='lynda-item'>
  <a data-ssid="42381453"
    data-source-name="LYNDA_RECOMMENDER"
    data-lynda-id="167065"
    data-designkey="b1"
    data-lynda-type="1"
    data-algorithm-id="123"
    data-source-model="123"
    data-language=""
    data-course-type=""
    data-urn-type="LyndaCourse"
    class='j-lynda-impression j-recommendation-tracking'
    title="Up and Running with Bitcoin"
    href='http://www.lynda.com/Business-Finance-tutorials/Up-Running-Bitcoin/167065-2.html?utm_medium=integrated-partnership&utm_source=slideshare'
    target='_blank'>

    <div class='lynda-thumbnail'>
      <img class='j-thumbnail j-lazy-thumb'
        alt="Up and Running with Bitcoin"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="https://cdn.lynda.com/courses/167065-635392850663273826_88x158_thumb.jpg" />

      <div class='lynda-play-icon-overlay'></div>
    </div>

    <div class='lynda-content'>
      <div class='title'>
        Up and Running with Bitcoin
      </div>

      <div class='lynda-video-text design-b1'>
          <strong class="copy-in-aria-label" aria-label="lynda"></strong><span class="copy-in-aria-label" aria-label=".com"></span>
        <strong class='all-caps copy-in-aria-label' aria-label="PREMIUM VIDEO"></strong>
      </div>

    </div>
  </a>
</li>

          <li class='lynda-item'>
  <a data-ssid="42381453"
    data-source-name="LYNDA_RECOMMENDER"
    data-lynda-id="184920"
    data-designkey="b1"
    data-lynda-type="1"
    data-algorithm-id="123"
    data-source-model="123"
    data-language=""
    data-course-type=""
    data-urn-type="LyndaCourse"
    class='j-lynda-impression j-recommendation-tracking'
    title="Programming the Internet of Things with Android"
    href='http://www.lynda.com/Android-tutorials/Programming-Internet-Things-Android/184920-2.html?utm_medium=integrated-partnership&utm_source=slideshare'
    target='_blank'>

    <div class='lynda-thumbnail'>
      <img class='j-thumbnail j-lazy-thumb'
        alt="Programming the Internet of Things with Android"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="https://cdn.lynda.com/courses/184920-635549191115385350_88x158_thumb.jpg" />

      <div class='lynda-play-icon-overlay'></div>
    </div>

    <div class='lynda-content'>
      <div class='title'>
        Programming the Internet of Things with Android
      </div>

      <div class='lynda-video-text design-b1'>
          <strong class="copy-in-aria-label" aria-label="lynda"></strong><span class="copy-in-aria-label" aria-label=".com"></span>
        <strong class='all-caps copy-in-aria-label' aria-label="PREMIUM VIDEO"></strong>
      </div>

    </div>
  </a>
</li>

          <li class='lynda-item'>
  <a data-ssid="42381453"
    data-source-name="LYNDA_RECOMMENDER"
    data-lynda-id="105390"
    data-designkey="b1"
    data-lynda-type="1"
    data-algorithm-id="123"
    data-source-model="123"
    data-language=""
    data-course-type=""
    data-urn-type="LyndaCourse"
    class='j-lynda-impression j-recommendation-tracking'
    title="Cloud Computing First Look"
    href='http://www.lynda.com/Business-Collaboration-tutorials/Cloud-Computing-First-Look/105390-2.html?utm_medium=integrated-partnership&utm_source=slideshare'
    target='_blank'>

    <div class='lynda-thumbnail'>
      <img class='j-thumbnail j-lazy-thumb'
        alt="Cloud Computing First Look"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="https://cdn.lynda.com/courses/105390_88x158_thumb.jpg" />

      <div class='lynda-play-icon-overlay'></div>
    </div>

    <div class='lynda-content'>
      <div class='title'>
        Cloud Computing First Look
      </div>

      <div class='lynda-video-text design-b1'>
          <strong class="copy-in-aria-label" aria-label="lynda"></strong><span class="copy-in-aria-label" aria-label=".com"></span>
        <strong class='all-caps copy-in-aria-label' aria-label="PREMIUM VIDEO"></strong>
      </div>

    </div>
  </a>
</li>


        <li class="j-related-item">
  <a data-ssid="41504248"
    data-algo-id="21"
    data-source-name="BROWSEMAP"
    data-source-model="21"
    data-urn-type="Slideshow"
    data-score="1"
    class="j-related-impression slideview_related_item j-recommendation-tracking"
    title="(JP) GPGPUがPostgreSQLを加速する"
    href="/kaigai/jp-gpgpupostgresql">

    <div class="related-thumbnail">
      <img class="j-thumbnail j-lazy-thumb"
        alt="(JP) GPGPUがPostgreSQLを加速する"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="//cdn.slidesharecdn.com/ss_thumbnails/20141113dbtechshowcasenecpgstrom-141113055252-conversion-gate01-thumbnail-2.jpg?cb=1415858165" />
    </div>

    <div class="related-content">
      <div class="title">
        (JP) GPGPUがPostgreSQLを加速する
      </div>

        <div class="author">Kohei KaiGai</div>

    </div>
  </a>
</li>

        <li class="j-related-item">
  <a data-ssid="64441503"
    data-algo-id="21"
    data-source-name="BROWSEMAP"
    data-source-model="21"
    data-urn-type="Slideshow"
    data-score="1"
    class="j-related-impression slideview_related_item j-recommendation-tracking"
    title="並列クエリを実行するPostgreSQLのアーキテクチャ"
    href="/kaigai/postgresql-64441503">

    <div class="related-thumbnail">
      <img class="j-thumbnail j-lazy-thumb"
        alt="並列クエリを実行するPostgreSQLのアーキテクチャ"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="//cdn.slidesharecdn.com/ss_thumbnails/20160727dbloungetokyo01parallelpostgresql-160727151825-thumbnail-2.jpg?cb=1469632794" />
    </div>

    <div class="related-content">
      <div class="title">
        並列クエリを実行するPostgreSQLのアーキテクチャ
      </div>

        <div class="author">Kohei KaiGai</div>

    </div>
  </a>
</li>

        <li class="j-related-item">
  <a data-ssid="55575390"
    data-algo-id="21"
    data-source-name="BROWSEMAP"
    data-source-model="21"
    data-urn-type="Slideshow"
    data-score="1"
    class="j-related-impression slideview_related_item j-recommendation-tracking"
    title="SQL+GPU+SSD=∞ (Japanese)"
    href="/kaigai/sqlgpussd-japanese">

    <div class="related-thumbnail">
      <img class="j-thumbnail j-lazy-thumb"
        alt="SQL+GPU+SSD=∞ (Japanese)"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="//cdn.slidesharecdn.com/ss_thumbnails/20151127ltkaigaisqlgpussdjp-151127113618-lva1-app6892-thumbnail-2.jpg?cb=1448624762" />
    </div>

    <div class="related-content">
      <div class="title">
        SQL+GPU+SSD=∞ (Japanese)
      </div>

        <div class="author">Kohei KaiGai</div>

    </div>
  </a>
</li>

        <li class="j-related-item">
  <a data-ssid="71508791"
    data-algo-id="21"
    data-source-name="BROWSEMAP"
    data-source-model="21"
    data-urn-type="Slideshow"
    data-score="1"
    class="j-related-impression slideview_related_item j-recommendation-tracking"
    title="20170127 JAWS HPC-UG#8"
    href="/kaigai/20170127-jaws-hpcug8">

    <div class="related-thumbnail">
      <img class="j-thumbnail j-lazy-thumb"
        alt="20170127 JAWS HPC-UG#8"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="//cdn.slidesharecdn.com/ss_thumbnails/20170127jawsughpclt-170129122722-thumbnail-2.jpg?cb=1485692935" />
    </div>

    <div class="related-content">
      <div class="title">
        20170127 JAWS HPC-UG#8
      </div>

        <div class="author">Kohei KaiGai</div>

    </div>
  </a>
</li>

        <li class="j-related-item">
  <a data-ssid="69896127"
    data-algo-id="21"
    data-source-name="BROWSEMAP"
    data-source-model="21"
    data-urn-type="Slideshow"
    data-score="1"
    class="j-related-impression slideview_related_item j-recommendation-tracking"
    title="PostgreSQLによるデータ分析ことはじめ"
    href="/ooyamams/postgresql-69896127">

    <div class="related-thumbnail">
      <img class="j-thumbnail j-lazy-thumb"
        alt="PostgreSQLによるデータ分析ことはじめ"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="//cdn.slidesharecdn.com/ss_thumbnails/postgresql-161207015311-thumbnail-2.jpg?cb=1481075875" />
    </div>

    <div class="related-content">
      <div class="title">
        PostgreSQLによるデータ分析ことはじめ
      </div>

        <div class="author">Ohyama Masanori</div>

    </div>
  </a>
</li>

        <li class="j-related-item">
  <a data-ssid="73039293"
    data-algo-id="21"
    data-source-name="BROWSEMAP"
    data-source-model="21"
    data-urn-type="Slideshow"
    data-score="1"
    class="j-related-impression slideview_related_item j-recommendation-tracking"
    title="20170310_InDatabaseAnalytics_#1"
    href="/kaigai/20170310indatabaseanalytics1">

    <div class="related-thumbnail">
      <img class="j-thumbnail j-lazy-thumb"
        alt="20170310_InDatabaseAnalytics_#1"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="//cdn.slidesharecdn.com/ss_thumbnails/20170311pgstromlimitbreaker-170311034833-thumbnail-2.jpg?cb=1489204208" />
    </div>

    <div class="related-content">
      <div class="title">
        20170310_InDatabaseAnalytics_#1
      </div>

        <div class="author">Kohei KaiGai</div>

    </div>
  </a>
</li>

        <li class="j-related-item">
  <a data-ssid="69228794"
    data-algo-id="21"
    data-source-name="BROWSEMAP"
    data-source-model="21"
    data-urn-type="Slideshow"
    data-score="1"
    class="j-related-impression slideview_related_item j-recommendation-tracking"
    title="PostgreSQL 9.6 新機能紹介"
    href="/masahikosawada98/postgresql-96-69228794">

    <div class="related-thumbnail">
      <img class="j-thumbnail j-lazy-thumb"
        alt="PostgreSQL 9.6 新機能紹介"
        src="//public.slidesharecdn.com/images/thumbnail.png"
        data-original="//cdn.slidesharecdn.com/ss_thumbnails/postgresql9-161118052650-thumbnail-2.jpg?cb=1479448284" />
    </div>

    <div class="related-content">
      <div class="title">
        PostgreSQL 9.6 新機能紹介
      </div>

        <div class="author">Masahiko Sawada</div>

    </div>
  </a>
</li>

    </ul>

</div>

    </aside>
  </div>
</div>


<div id="first-clip-tour" class="hide">
</div>

<div id="clip-intention-tour" class="hide">
</div>





      

      

        <footer>
            <div class="row">
              <div class="columns">
                <div id="smt-lang-selector"></div>
                <ul class="j-languages-selector language-links text-center">
                  <li class="smt-item j-www">
                    <a class="smt-link"
                      href="https://www.slideshare.net/kaigai/gpgpupostgresql"
                      title="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014） - English" lang="en" hreflang="en">English
                    </a>
                  </li>
                  <li class="smt-item j-es">
                    <a class="smt-link"
                      href="https://es.slideshare.net/kaigai/gpgpupostgresql"
                      title="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014） - Espanol" lang="es" hreflang="es">Espa&#xF1;ol
                    </a>
                  </li>
                  <li class="smt-item j-pt">
                    <a class="smt-link"
                      href="https://pt.slideshare.net/kaigai/gpgpupostgresql"
                      title="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014） - Portugues" lang="pt" hreflang="pt">Portugu&#xEA;s
                    </a>
                  </li>
                  <li class="smt-item j-fr">
                    <a class="smt-link"
                      href="https://fr.slideshare.net/kaigai/gpgpupostgresql"
                      title="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014） - Fran&ccedil;ais" lang="fr" hreflang="fr">Fran&ccedil;ais
                    </a>
                  </li>
                  <li class="smt-item j-de">
                    <a class="smt-link"
                      href="https://de.slideshare.net/kaigai/gpgpupostgresql"
                      title="GPGPUがPostgreSQLを加速する （PostgreSQLカンファレンス2014） - Deutsche" lang="de" hreflang="de">Deutsch
                    </a>
                  </li>
                </ul>
              </div>
            </div>

          <div class="row">
            <div class="columns">
              <ul class="main-links text-center">
                <li><a href="/about">About</a></li>
                <li class="hidden-for-small"><a href="/developers">Dev & API</a></li>
                <li><a href="http://blog.slideshare.net/">Blog</a></li>
                <li><a href="/terms">Terms</a></li>
                <li><a href="/privacy">Privacy</a></li>
                <li><a href="http://www.linkedin.com/legal/copyright-policy">Copyright</a></li>
                <li class="hidden-for-small"><a href="https://www.linkedin.com/help/slideshare">Support</a></li>
              </ul>
            </div>
          </div>

          <div class="row">
            <div class="columns">
              <ul class="social-links text-center">
                <li>
                  <a title="Follow us on LinkedIn" href="http://www.linkedin.com/company/linkedin" class="fa fa-linkedin-square fa-lg" rel="nofollow" target="_blank"></a>
                </li>
                <li>
                  <a title="Follow us on Facebook" href="http://www.facebook.com/LinkedIn" class="fa fa-facebook-square fa-lg" rel="nofollow" target="_blank"></a>
                </li>
                <li>
                  <a title="Follow us on Twitter" href="http://twitter.com/SlideShare" class="fa fa-twitter-square fa-lg" rel="nofollow" target="_blank"></a>
                </li>
                <li>
                  <a title="Follow us on Google+" href="http://www.google.com/+LinkedIn" class="fa fa-google-plus-square fa-lg" rel="nofollow" target="_blank"></a>
                </li>
                <li>
                  <a href="https://www.slideshare.net/rss/latest" class="fa fa-rss-square fa-lg"></a>
                </li>
              </ul>
            </div>
          </div>

          <div class="row">
            <div class="columns">
              <p class="copyright text-center">LinkedIn Corporation &copy; 2017</p>
              <p></p>
            </div>
          </div>
        </footer>
    </div>

    <div id="alert-modal" class="reveal-modal" data-reveal="">
      <p></p>
      <a class="close-reveal-modal">×</a>
    </div>

    <div class="modal_popup_container">
          
<div id="clipboard-share-modal" class="reveal-modal small mobile-hide" aria-hidden="true" aria-labelledby="modal-title" role="dialog" data-reveal data-ga-track-category="" data-ga-track-action="" translate="no">
  <div class="j-modal-popup modal-popup">
    <div id="modal-content" class="j-modal-content">
      <h4 class="j-modal-title modal-title notranslate">Share Clipboard</h4>
      <hr />
      <a class="close-reveal-modal" href="#" aria-label="Close">&times;</a>
      <div class="section share-email">
        <form class="j-share-email-form">
          <h5>Email</h5>
          <input class="j-share-email-to j-email-clear notranslate" name="recipients" placeholder="Enter email addresses" title="Enter email addresses" type="text">
          <div class="clearfix">
            <input data-ga="name" class="j-share-email-name j-email-clear notranslate" name="name" type="text" placeholder="From" title="From">
            <textarea class="j-share-email-msg j-email-clear notranslate share-message-textarea" name="message" placeholder="Add a message" title="Add a message"></textarea>
            <div class="j-email-flash email-flash"></div>
            <input id="share-email-send"class="button btn btn-inverse email-send-button notranslate" title="Send" type="submit" value="Send">
          </div>
        </form>
        <div id="email-sent" class="j-email-sent sent-section">
          <span class="success-text notranslate">Email sent successfully..</span>
        </div>
      </div>
      <div class="row">
        <ul class="j-share-social-list share-social-list" data-canonical-url="">
          <li class="facebook" data-network="facebook">
            <a class="share-link"
              rel="nofollow"
              title="Share on Facebook">Facebook</a>
          </li>
          <li class="twitter" data-network="twitter">
            <a class="share-link"
              rel="nofollow"
              title="Tweet on Twitter">Twitter</a>
          </li>
          <li class="linkedin" data-network="linkedin">
            <a class="share-link"
              rel="nofollow"
              title="Share on LinkedIn">LinkedIn</a>
          </li>
          <li class="googleplus" data-network="googleplus">
            <div class="social-hover">
              <a class="share-link"
                rel="nofollow"
                title="Share on Google+">Google+</a>
            </div>
          </li>
        </ul>
      </div>
      <div class="row">
        <div class="share-link-container">
          <label for="share-link-url">Link</label>
          <input id="share-link-url" class="j-share-link-url" type="text" data-ga="link"></input>
        </div>
      </div>
    </div>
  </div>
</div>

    <div id="top-clipboards-modal"
     class="reveal-modal xlarge top-clipboards-modal"
     data-reveal
     aria-labelledby="modal-title"
     aria-hidden="true"
     role="dialog">
  <h4 class="modal-title">Public clipboards featuring this slide</h4>
  <hr />
  <button class="close-reveal-modal button-lrg" aria-label="Close">&times;</button>
  <div class="loading text-center">
    <svg><use data-size="small" xlink:href="#loader"></use></svg>
  </div>
  <div class="empty">
    No public clipboards found for this slide
  </div>

  <div class="clipboards row">
    <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3"></ul>
  </div>
</div>

    
<div id="download-interstitial-modal" class="download-interstitial reveal-modal medium" aria-hidden="false" role="dialog" data-reveal>
  <div class="modal-content-container">
    <a class="close-reveal-modal" href="#" aria-label="Close">&times;</a>
    <div class="modal-content">
      <div class="modal-inner-content">
        <div class="row">
          <h3 class="text-center">Save the most important slides with Clipping</h3>
        </div>
        <div class="row">
          <!-- make only 8/12 columns and centered -->
          <div class="medium-10 small-centered columns">
            <p class="text-center">Clipping is a handy way to collect and organize the most important slides from a presentation. You can keep your great finds in clipboards organized around topics.</p>
            <button class="art-deco small primary start-clipping">Start clipping</button>
            <button class="art-deco small tertiary button continue-download" data-reveal-id="login_modal" href="/login?from_source=%2Fkaigai%2Fgpgpupostgresql%3Ffrom_action%3Dsave&amp;from=download&amp;layout=foundation">No thanks. Continue to download.</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

    <div id="select-clipboard-modal" class="reveal-modal medium" data-reveal aria-labelledby="modal-title" aria-hidden="true" role="dialog" translate="no">
  <div class="modal-header-container">
    <h4 class="modal-title">Select another clipboard</h4>
    <hr />
    <a class="close-reveal-modal button-lrg" href="#" aria-label="Close">&times;</a>
  </div>

  <div class="loading">
    <svg><use data-size="small" xlink:href="#loader"></use></svg>
  </div>

  <div class="modal-content">

    <div class="default-clipboard-panel radius">
      <p>Looks like you’ve clipped this slide to <strong class="default-clipboard-title"></strong> already.</p>
    </div>

    <div class="clipboard-search-input-container">
      <i class="fa fa-search"></i>
      <input class="clipboard-search-input" type="text" placeholder="Search for a clipboard">
    </div>

    <div class="clipboard-list-container">
      <ul class="existing-clipboard-list"></ul>
      <ul class="clipboard-list"></ul>
      <div class="clipboard-create-new">
        <div class="clipboard-item-thumb">
          <i class="fa fa-plus"></i>
        </div>
        <div class="clipboard-item-title">Create a clipboard</div>
      </div>
    </div>
  </div>
</div>

    <div id="clipboard-create-modal" class="reveal-modal medium" data-reveal aria-labelledby="modal-title" aria-hidden="true" role="dialog" translate="no">
    <div class="first-clip-message hide">
      <h3>You just clipped your first slide!</h3>
      <span>
        Clipping is a handy way to collect important slides you want to go back to later. Now customize the name of a clipboard to store your clips.
      </span>
    </div>
    <h4 class="modal-title"></h4>
    <hr />
    <form data-abide>
    <div class="row">
      <div class="j-title-wrapper input-wrapper notranslate">
        <label>Name*
          <input type="text" class="j-title-input" placeholder="Best of Slides"/>
          <small class="j-title-error error hide"></small>
        </label>
      </div>
    </div>

    <div class="row">
      <div class="j-description-wrapper input-wrapper notranslate">
        <label>Description
          <input type="text" class="j-description-input" placeholder="Add a brief description so others know what your Clipboard is about."/>
          <small class="j-description-error error hide"></small>
        </label>
      </div>
    </div>

    <div class="row">
      <label>Visibility
        <div class="switch small notranslate">
          <small id="privacy-switch-description">Others can see my Clipboard</small>
          <input id="privacy-switch" class="j-privacy-input" type="checkbox" />
          <label for="privacy-switch"></label>
        </div>
      </label>
    </div>

        <div class="row">
          <div class="pull-right">
            <button class="j-cancel-button button-ghost small notranslate" type="button">Cancel</button>
            <button class="j-submit-button button-linkedin small notranslate" type="submit">Save</button>
          </div>
        </div>
    </form>
    <input type="hidden" class="j-i18n-edit-clipboard-modal" value='{&quot;formTitleEdit&quot;:&quot;Edit Clipboard&quot;,&quot;formTitleCreate&quot;:&quot;Create a clipboard&quot;,&quot;privacyDisabled&quot;:&quot;Others can see my Clipboard&quot;,&quot;privacyEnabled&quot;:&quot;Clipboard is visible only to me.&quot;}'
    />

</div>


    </div>

    <script src="https://public.slidesharecdn.com/ss_foundation/combined_foundation_base.js?8438fd2ac0" type="text/javascript"></script>

    <script>
      $(window).load(function() {
        loadCSS("//public.slidesharecdn.com/ss_foundation/stylesheets/app.css?115ed91197c9bd8f37832e915577e618626016ef");
      });
    </script>

      <meta content="{&quot;jsplayer_toolbar_clips.clip_count_info&quot;:&quot;{:count,choice,0#Be the first to clip this slide|singular#person clipped this slide|plural#people clipped this slide}&quot;}" name="ss-i18n-translations" />

  <script type="text/javascript">
    $.extend(true, slideshare_object, {"preview":"no","is_free_author":false,"stats":{"url":"https://www.slideshare.net/~/slideshow/stats/42381453.json"},"jsplayer":{"embed_code":"\u003Ciframe src=\"https://www.slideshare.net/slideshow/embed_code/key/zr1hj93S2fgXol\" width=\"597\" height=\"486\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen\u003E \u003C/iframe\u003E \u003Cdiv style=\"margin-bottom:5px\"\u003E \u003Cstrong\u003E \u003Ca href=\"https://www.slideshare.net/kaigai/gpgpupostgresql\" title=\"GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09\" target=\"_blank\"\u003EGPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09\u003C/a\u003E \u003C/strong\u003E from \u003Cstrong\u003E\u003Ca target=\"_blank\" href=\"https://www.slideshare.net/kaigai\"\u003EKohei KaiGai\u003C/a\u003E\u003C/strong\u003E \u003C/div\u003E","container":"svPlayerId","iframe_code":"\u003Ciframe src=\"{iframe_url}\" width=\"{width}\" height=\"{height}\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen\u003E \u003C/iframe\u003E \u003Cdiv style=\"margin-bottom:5px\"\u003E \u003Cstrong\u003E \u003Ca href=\"https://www.slideshare.net/kaigai/gpgpupostgresql\" title=\"GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09\" target=\"_blank\"\u003EGPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09\u003C/a\u003E \u003C/strong\u003E from \u003Cstrong\u003E\u003Ca target=\"_blank\" href=\"https://www.slideshare.net/kaigai\"\u003EKohei KaiGai\u003C/a\u003E\u003C/strong\u003E \u003C/div\u003E","fullscreen_url":"/fullscreen/kaigai/gpgpupostgresql","share_text":"GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09 by Kohei KaiGai via slideshare","spinner_url_fullscreen":"//public.slidesharecdn.com/images/ssplayer/loading_black.gif?468e48bc3a","html_ttffont_url_suffix":".js","bambooleaf_enabled":null,"show_image_player":true,"next_slideshow_pos":null,"is_only_private":false,"hosted_in":"slideview","inpage_full_screen":true,"bambooleaf_presentation":false,"disable_lastscreen":false,"preload_after_pageload":true,"fullscreen_bgcolor":"jsplBgColorBlack","autoplayOnEmbed":false,"ppt_location":"20141205jpugconferencenecpgstrom-141205011445-conversion-gate02","lastscreen":{"url":"https://www.slideshare.net/kaigai/gpgpupostgresql","related":[{"thumbnail":"//cdn.slidesharecdn.com/ss_thumbnails/20141113dbtechshowcasenecpgstrom-141113055252-conversion-gate01-thumbnail.jpg?cb=1415858165","views":20670,"author":"Kohei KaiGai","title":"(JP) GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b","url":"https://public.slidesharecdn.com/kaigai/jp-gpgpupostgresql","author_login":"kaigai"},{"thumbnail":"//cdn.slidesharecdn.com/ss_thumbnails/20160727dbloungetokyo01parallelpostgresql-160727151825-thumbnail.jpg?cb=1469632794","views":4035,"author":"Kohei KaiGai","title":"\u4e26\u5217\u30af\u30a8\u30ea\u3092\u5b9f\u884c\u3059\u308bPostgreSQL\u306e\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3","url":"https://public.slidesharecdn.com/kaigai/postgresql-64441503","author_login":"kaigai"},{"thumbnail":"//cdn.slidesharecdn.com/ss_thumbnails/20151127ltkaigaisqlgpussdjp-151127113618-lva1-app6892-thumbnail.jpg?cb=1448624762","views":7589,"author":"Kohei KaiGai","title":"SQL+GPU+SSD=\u221e (Japanese)","url":"https://public.slidesharecdn.com/kaigai/sqlgpussd-japanese","author_login":"kaigai"},{"thumbnail":"//cdn.slidesharecdn.com/ss_thumbnails/20170127jawsughpclt-170129122722-thumbnail.jpg?cb=1485692935","views":301,"author":"Kohei KaiGai","title":"20170127 JAWS HPC-UG#8","url":"https://public.slidesharecdn.com/kaigai/20170127-jaws-hpcug8","author_login":"kaigai"},{"thumbnail":"//cdn.slidesharecdn.com/ss_thumbnails/postgresql-161207015311-thumbnail.jpg?cb=1481075875","views":1206,"author":"Ohyama Masanori","title":"PostgreSQL\u306b\u3088\u308b\u30c7\u30fc\u30bf\u5206\u6790\u3053\u3068\u306f\u3058\u3081","url":"https://public.slidesharecdn.com/ooyamams/postgresql-69896127","author_login":"ooyamams"},{"thumbnail":"//cdn.slidesharecdn.com/ss_thumbnails/20170311pgstromlimitbreaker-170311034833-thumbnail.jpg?cb=1489204208","views":1210,"author":"Kohei KaiGai","title":"20170310_InDatabaseAnalytics_#1","url":"https://public.slidesharecdn.com/kaigai/20170310indatabaseanalytics1","author_login":"kaigai"}]},"render_links":"default","disable_eagerload":true,"wp_code":"[slideshare id=42381453\u0026doc=20141205jpugconferencenecpgstrom-141205011445-conversion-gate02]","page":1,"video_slides_count":0,"image_bucket_location":"https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02","related_position":0,"bambooleaf_hash":false,"has_video":false,"next_prev_experiment":true,"spinner_url":"//public.slidesharecdn.com/images/ssplayer/loading_bigfoot.gif?8d8fb5905f","track_slide_enable":1,"timestamp":1417742188,"show_related_content":"1","embed_sizes":{"config":{"defaultPreset":"preset4"},"presets":{"preset4":{"size":{"width":595,"height":485},"displaySize":{"width":70,"height":53}},"preset1":{"size":{"width":340,"height":290},"displaySize":{"width":40,"height":30}},"preset2":{"size":{"width":425,"height":355},"displaySize":{"width":50,"height":38}},"preset3":{"size":{"width":510,"height":420},"displaySize":{"width":60,"height":45}}}},"id":42381453,"toolbar_html":"\n\u003C!-- using div.bar-[top, bottom]-margin to fix toolbar spacing with a taller progressbar (improve slide scrubbing UX) --\u003E\n\u003Cdiv class=\"j-progress-bar progress-bar-wrapper\"\u003E\n  \u003Cdiv class=\"progress-bar-spacing\"\u003E\u003C/div\u003E\n  \u003Cdiv class=\"buffered-bar\"\u003E\u003C/div\u003E\n  \u003Cdiv class=\"j-slides-loaded-bar progress-bar\"\u003E\u003C/div\u003E\n  \u003Cdiv class=\"j-progress-tooltip progress-tooltip\" style=\"display: none;\"\u003E\n    \u003Cdiv class=\"j-tooltip-content progress-tooltip-wrapper\"\u003E\n      \u003Cimg class=\"j-tooltip-thumb tooltip-thumb\" onerror=\"this.src=''\"\n      \u003E\n      \u003Cspan class=\"j-slidecount-label slidecount-label\"\u003E1\u003C/span\u003E\n    \u003C/div\u003E\n    \u003Cdiv class=\"progress-tooltip-caret\"\u003E\u003C/div\u003E\n  \u003C/div\u003E\n\u003C/div\u003E\n\u003Cdiv class=\"progress-bar-spacing\"\u003E\u003C/div\u003E\n\n\n\n\u003Cdiv class=\"j-tools bot-actions\"\u003E\n\u003C/div\u003E\u003C!-- .bot-actions --\u003E\n\n\n  \u003Cdiv class=\"j-tools bot-actions\"\u003E\n    \u003Ca data-tooltip\n      aria-haspopup=\"true\"\n      style=\"display: none\"\n      class=\"j-tooltip j-download action-download has-tip\"\n      title=\"Save this \"\n      href=\"/login?from_source=%2Fkaigai%2Fgpgpupostgresql%3Ffrom_action%3Dsave\u0026amp;from=download\u0026amp;layout=foundation\"\n      data-target=\"#login_modal\"\n      data-placement=\"top\"\u003E\n      \u003Ci class=\"fa fa-download fa-lg\" style=\"margin-top: 1px;\"\u003E\u003C/i\u003E\n    \u003C/a\u003E\n  \u003C/div\u003E\n\n\n\n\n  \u003Cdiv class=\"nav\"\u003E\n      \u003Cbutton id=\"btnPrevious\" title=\"Previous Slide\"\u003E\n        \u003Cdiv class=\"j-prev-btn arrow-left disabled\"\u003E\u003C/div\u003E\n      \u003C/button\u003E\n    \u003Clabel class=\"goToSlideLabel\"\u003E\n      \u003Cspan id=\"current-slide\" class=\"j-current-slide\"\u003E1\u003C/span\u003E of \u003Cspan id=\"total-slides\" class=\"j-total-slides\"\u003E47\u003C/span\u003E\n    \u003C/label\u003E\n      \u003Cbutton id=\"btnNext\" title=\"Next Slide\"\u003E\n        \u003Cdiv class=\"j-next-btn arrow-right\"\u003E\u003C/div\u003E\n      \u003C/button\u003E\n  \u003C/div\u003E\n\n\n\n\u003Cdiv class=\"navActions\"\u003E\n\n\n\n    \u003Cbutton id=\"btnFullScreen\" class=\"j-tooltip btnFullScreen\" title=\"View Fullscreen\"\u003E\n      \u003Cspan class=\"fa fa-stack\"\u003E\n        \u003Ci class=\"fa fa-expand fa-stack-1x\"\u003E\u003C/i\u003E\n      \u003C/span\u003E\n    \u003C/button\u003E\n    \u003Cbutton id=\"btnLeaveFullScreen\" class=\"j-tooltip btnLeaveFullScreen\" title=\"Exit Fullscreen\"\u003E\n      \u003Cspan class=\"fa-stack\"\u003E\n        \u003Ci class=\"fa fa-compress fa-stack-1x\"\u003E\u003C/i\u003E\n      \u003C/span\u003E\n    \u003C/button\u003E\n\n\u003C/div\u003E\n\n","is_private":false,"image_ready":true,"author_id":27108967,"replayscreen":{"html":"\u003Ca href=\"#\" class=\"j-replay-button replay-button\" \u003E\n  \u003Ci class=\"fa fa-refresh\"\u003E\u003C/i\u003E\n  View again\n\u003C/a\u003E\n"},"iframe_url":"//www.slideshare.net/slideshow/embed_code/key/zr1hj93S2fgXol","slide_count":47,"slide_error_template":"\u003Cstyle type=\"text/css\"\u003E\n  .jsplayer-slide-error {\n    background-color: #000;\n    padding: 20% 0 13% !important;\n  }\n  .jsplayer-slide-error div {\n    text-align: center;\n  }\n  .jsplayer-slide-error img {\n    height: 79px !important;\n    margin: 0 0 10px;\n    width: 80px !important;\n  }\n  .jsplayer-slide-error .slide-error-body {\n    color: #eee;\n    font-family: 'Lucida Grande',Verdana, Arial, Helvetica, sans-serif;\n    padding: 0 !important;\n  }\n  .jsplayer-slide-error .slide-error-body p {\n    font-size: 0.8em;\n    line-height: 1.1em;\n    margin: 7px 0 11px;\n  }\n  .jsplayer-slide-error .slide-error-body input[type=button] {\n    margin: 7px 0 0;\n    padding: 7px 14px;\n  }\n\u003C/style\u003E\n\u003Cdiv class=\"jsplayer-slide-error\"\u003E\n  \u003Cdiv style=\"position:relative;\"\u003E\n    \u003Cimg src='https://public.slidesharecdn.com/images/ssplayer/error_dudes-80x79.png' height=\"79\" width=\"80\" /\u003E\n    \u003Cdiv class=\"slide-error-body\"\u003E\n      \u003Cp\u003EWe were unable to load the slide.\u003C/p\u003E\n      \u003Cinput class=\"btn btn-large\" type=\"button\" value=\"Reload slide\" /\u003E\n    \u003C/div\u003E\n  \u003C/div\u003E\n\u003C/div\u003E\n","player_bgcolor":"jsplBgColorBigfoot","disable_share":false,"slide_titles":[],"sharescreen":{"slideshow_id":42381453,"html":"\u003Cdiv class=\"shareScreen\"\u003E\n  \u003Ca href=\"#\" class=\"close\"\u003E\u0026times;\u003C/a\u003E\n  \u003Cul class=\"shareMethods\"\u003E\n    \u003Cli class=\"embed\"\u003E\n      \u003Clabel for=\"embed-code\"\u003EEmbed\u003C/label\u003E\n      \u003Cinput type='text' class=\"shareScreenEmbedCode\" value=\"code\" name=\"embed-code\" /\u003E\n    \u003C/li\u003E\n    \u003Cli class=\"url last\"\u003E\n      \u003Clabel for=\"embed-url\"\u003EURL\u003C/label\u003E\n      \u003Cinput type='text' class=\"shareScreenSSUrl\" value=\"code\" name=\"embed-url\" /\u003E\n    \u003C/li\u003E\n  \u003C/ul\u003E\n  \u003Cform class=\"emailShare\"\u003E\n    \u003Cfieldset\u003E\n      \u003Clegend\u003EEmail this\u003C/legend\u003E\n      \u003Cinput type=\"hidden\" class=\"shareDefaultMessage\" value=\"I think you will find this useful.\" /\u003E\n      \u003Cul\u003E\n        \u003Cli\u003E\n          \u003Clabel for=\"name\"\u003EYour name\u003C/label\u003E\n          \u003Cinput class='shareScreenFromName' type=\"text\" value=\"\" /\u003E\n        \u003C/li\u003E\n        \u003Cli\u003E\n          \u003Clabel for=\"mailID\"\u003EEmail to\u003C/label\u003E\n          \u003Cinput class=\"shareScreenMailID\" type=\"text\" value=\"\" /\u003E\n        \u003C/li\u003E\n        \u003Cli class=\"submit\"\u003E\n          \u003Clabel\u003E\u0026nbsp;\u003C/label\u003E\n          \u003Cinput class=\"shareSprite\" type=\"submit\" value=\"\" /\u003E\n        \u003C/li\u003E\n      \u003C/ul\u003E\n      \u003C/fieldset\u003E\n  \u003C/form\u003E\n\u003C/div\u003E\u003C!-- shareScreen ends here --\u003E\n","title":"GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08Postgr...","url":"https://www.slideshare.net/kaigai/gpgpupostgresql","user_name":""},"stripped_title":"gpgpupostgresql","pin_image_url":"https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-1-638.jpg?cb=1417742188","start_slide":1,"twitter_recommended_users":"@kkaigai","player_type":"presentation","mode":"image","slideview_url":"/kaigai/gpgpupostgresql","html_eotfont_url_suffix":"-eot.js","use_ssl":true,"meta_error_template":"\u003Cstyle type=\"text/css\"\u003E\n  .jsplayer-slide-error {\n    background-color: #000;\n    padding: 20% 0 13% !important;\n  }\n  .jsplayer-slide-error div {\n    text-align: center;\n  }\n  .jsplayer-slide-error img {\n    height: 79px !important;\n    margin: 0 0 10px;\n    width: 80px !important;\n  }\n  .jsplayer-slide-error .slide-error-body {\n    color: #eee;\n    font-family: 'Lucida Grande',Verdana, Arial, Helvetica, sans-serif;\n    padding: 0 !important;\n  }\n  .jsplayer-slide-error .slide-error-body p {\n    font-size: 0.8em;\n    line-height: 1.1em;\n    margin: 8px 0;\n  }\n  .jsplayer-slide-error .slide-error-body input[type=button] {\n    margin: 7px 0 0;\n    padding: 7px 14px;\n  }\n\u003C/style\u003E\n\u003Cdiv class=\"jsplayer-slide-error\"\u003E\n  \u003Cdiv style=\"position:relative;\"\u003E\n    \u003Cimg src='https://public.slidesharecdn.com/images/ssplayer/error_dudes-80x79.png' height=\"79\" width=\"80\" /\u003E\n    \u003Cdiv class=\"slide-error-body\"\u003E\n      \u003Cp\u003EWe have encountered an error.\u003C/p\u003E\n      \u003Cp\u003EPlease refresh the page.\u003C/p\u003E\n    \u003C/div\u003E\n  \u003C/div\u003E\n\u003C/div\u003E\n","rel_slide_urls":[],"bucket_location":"https://html.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/","twitter_share_text":"GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09 by @kkaigai"},"gam_cat_name":"technology","userimage_placeholder":"//public.slidesharecdn.com/images/user-48x48.png","dev":false,"doc":"20141205jpugconferencenecpgstrom-141205011445-conversion-gate02","li_bar":{"get_url":"/li_bar"},"asset_id":"115ed91197c9bd8f37832e915577e618626016ef","bizo_partner_id":870,"key":false,"comments":{"total_count":0,"ajaxurl":"/~/slideshow/comments/42381453.json","captcha_url":"https://s3.amazonaws.com/ss-captchas/"},"category":{"featured":0},"analytics_api_enabled":true,"version_no":"1417742188","activities":{"favorites":{"count":5,"url":"/~/slideshow/favorites_list/42381453.json","total":25}},"top_nav":{"get_url":"/top_nav"},"startSlide":1,"flagging":{"flagged_value":null},"embeds_count":4,"default_tab":".svMoreAuthor","totalSlides":47,"user":{"clips_number":0,"clipboards_url":null,"clipboards":null,"member_type":"non-member"},"presentationId":42381453,"fb_app_name":"slideshare","facebook_app_id":"2490221586","downloads":{"allow":true,"sp_isdwnl":true},"li_sponsored_content_related":{"placeholders":[{"id":"sponsored-content-1","position":0}],"url":"https://www.linkedin.com/csp/javascript"},"show_branding":1,"stripped_title":"gpgpupostgresql","useHttp":1,"slideshow":{"type":"presentation","iframe_code":"\u003Ciframe src=\"{iframe_url}\" width=\"{width}\" height=\"{height}\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen\u003E \u003C/iframe\u003E \u003Cdiv style=\"margin-bottom:5px\"\u003E \u003Cstrong\u003E \u003Ca href=\"https://www.slideshare.net/kaigai/gpgpupostgresql\" title=\"GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09\" target=\"_blank\"\u003EGPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09\u003C/a\u003E \u003C/strong\u003E from \u003Cstrong\u003E\u003Ca target=\"_blank\" href=\"https://www.slideshare.net/kaigai\"\u003EKohei KaiGai\u003C/a\u003E\u003C/strong\u003E \u003C/div\u003E","clips":{},"total_slides":47,"is_clippable":true,"mobile_app_url":"slideshare-app://ss/42381453","allow_clips":true,"is_clickgen_enabled":false,"is_author_premium":false,"wp_code":"[slideshare id=42381453\u0026doc=20141205jpugconferencenecpgstrom-141205011445-conversion-gate02]","zeroclipboard_url":"https://static.slidesharecdn.com/ZeroClipboardv2.swf","title":"GPGPU\u304cPostgreSQL\u3092\u52a0\u901f\u3059\u308b \uff08PostgreSQL\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b92014\uff09","fullscreen_bg_color":"Black","recommendations":{"finalRankerModel":"model_001","designKey":"design_001"},"embed_sizes":{"config":{"defaultPreset":"preset4"},"presets":{"preset4":{"size":{"width":595,"height":485},"displaySize":{"width":70,"height":53}},"preset1":{"size":{"width":340,"height":290},"displaySize":{"width":40,"height":30}},"preset2":{"size":{"width":425,"height":355},"displaySize":{"width":50,"height":38}},"preset3":{"size":{"width":510,"height":420},"displaySize":{"width":60,"height":45}}}},"id":"42381453","clickgen_url":null,"is_private":false,"user_name":"Kohei KaiGai","facade_slide_url":"https://image.slidesharecdn.com/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02/95/gpgpupostgresql-postgresql2014-1-638.jpg?cb=1417742188","iframe_url":"https://www.slideshare.net/slideshow/embed_code/key/zr1hj93S2fgXol","allow_embeds":true,"ss_url":"https://www.slideshare.net/kaigai/gpgpupostgresql","social_urls":{"facebook":"https://facebook.com/sharer.php?u=https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql\u0026t=GPGPU%E3%81%8CPostgreSQL%E3%82%92%E5%8A%A0%E9%80%9F%E3%81%99%E3%82%8B+%EF%BC%88PostgreSQL%E3%82%AB%E3%83%B3%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B92014%EF%BC%89","google":"https://plus.google.com/share?url=https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql","linkedin":"https://www.linkedin.com/cws/share?url=https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql\u0026trk=SLIDESHARE","twitter":"https://twitter.com/intent/tweet?via=SlideShare\u0026text=GPGPU%E3%81%8CPostgreSQL%E3%82%92%E5%8A%A0%E9%80%9F%E3%81%99%E3%82%8B+%EF%BC%88PostgreSQL%E3%82%AB%E3%83%B3%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B92014%EF%BC%89+by+%40kkaigai+https%3A%2F%2Fwww.slideshare.net%2Fkaigai%2Fgpgpupostgresql"},"user_login":"kaigai","pin_image_url":"https://cdn.slidesharecdn.com/ss_thumbnails/20141205jpugconferencenecpgstrom-141205011445-conversion-gate02-thumbnail-4.jpg?cb=1417742188","view_action_state":"unpublished","clip_counts":{"1":1,"9":1,"10":1,"34":1,"40":1}},"slideshow_placeholder":"//public.slidesharecdn.com/images/thumbnail.png","pvt":0});
  </script>

    <script src="https://public.slidesharecdn.com/ss_foundation/combined_player_presentation_init.js?7c73357572" type="text/javascript"></script>

    <script type="text/javascript">
      $(document).ready(function() {
        var $el = $('#svPlayerId');
        var classMap = {
          'document': 'document_player',
          'html': 'html_player',
          'infographic': 'infographic_player',
          'video': 'video_player'
        }

        player = new SSPlayer(slideshare_object.jsplayer);
        $(player).bind('slidechanged', function(e) {
          if (typeof(loadDataForSlide) === 'function') {
            loadDataForSlide(e.ssData.index);
          }
        });

        $el.addClass(classMap[player.config.player_type]);
      });
    </script>



  <script>

      slideshare_object.add_signin_link('.j-favorite');
      slideshare_object.add_login_source('.j-favorite', 'slideview.top_toolbar.like');
      slideshare_object.add_login_source('.j-save', 'slideview.top_toolbar.download');
      slideshare_object.addSigninFrom('.j-favorite', 'favorite');
      slideshare_object.bindToModalLogin('.j-favorite');
      slideshare_object.bindToModalLogin('.j-save');

    slideshare_object.bind_favorites('#slideview-container');

    $(document).ready(function() {

      // Favorites update

      // Remove some sidebar list items to limit the sidebar's height
      var mainContentHeight = $("#main-panel").height();
      var sidePanelItemHeight = $("#side-panel .j-related-item").first().outerHeight();
      var numItemToDisplay = Math.floor((mainContentHeight - 200) / sidePanelItemHeight);

      $("#side-panel .tabs-content .content").each(function() {
        $(this).find(".j-related-item").slice(numItemToDisplay - 2).remove();
      });

        var loadAdditionalFunctionality = function() {
          e = document.createElement('script');
          e.type = 'text/javascript';
          e.async = true;
          e.src =  '//public.slidesharecdn.com/ss_foundation/combined_slideview_loggedout.js?115ed91197c9bd8f37832e915577e618626016ef';
          var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s);
        };

        $(window).load(function() {
          loadAdditionalFunctionality();
        });


      // Load additionnal css
      $(window).load(function() {
        loadCSS("//public.slidesharecdn.com/ss_foundation/stylesheets/slideview.css?115ed91197c9bd8f37832e915577e618626016ef");
      });
    });
  </script>

  

  <noscript>
    <img height="1" width="1" alt="" style="display:none;"
      src="//www.bizographics.com/collect/?pid=870&fmt=gif" alt="Bizographics tracking image" />
  </noscript>


  </body>
</html>
