{"id":1393,"date":"2011-07-25T19:19:21","date_gmt":"2011-07-25T23:19:21","guid":{"rendered":"https:\/\/www.bu.edu\/pasi\/?page_id=1393"},"modified":"2011-09-02T10:47:06","modified_gmt":"2011-09-02T14:47:06","slug":"post-pasi-training-week-4","status":"publish","type":"page","link":"https:\/\/www.bu.edu\/pasi\/materials\/post-pasi-training\/post-pasi-training-week-4\/","title":{"rendered":"Post-PASI training: Week 4"},"content":{"rendered":"<h2>Syllabus<\/h2>\n<p><strong>Class 9 (August 29th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture9.pdf\">Lecture 9 &#8211; Slides<\/a><br \/>\n<\/strong><\/p>\n<ul>\n<li>Challenges of GPU implementations in CFD codes<\/li>\n<li>The role of sparse matrices in CFD:\n<ul>\n<li>Importance of implicit schemes<\/li>\n<\/ul>\n<\/li>\n<li>Explanation of the 2D implicit heat transfer using Crank Nicolson:\n<ul>\n<li>Getting from the mesh to the matrix<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Lab 7 (August 30th):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lab71.pdf\">Lab 7 &#8211; Slides<\/a><br \/>\n<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/lab7_FD_2D_implicit.cu_.zip\">Lab7 &#8211; code<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/FD_2D_cusp.cu_.zip\">FD_2D_cusp.cu (shared memory version)<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/FD_2D_cusp_global.cu_.zip\">FD_2D_cusp_global.cu (global memory version)<\/a><\/strong><\/p>\n<p>(See global memory version first, it&#8217;s easier to understand)<\/p>\n<ul>\n<li>Implementation of 2D implicit heat transfer<\/li>\n<li>Use 2D stencil codes and Cusp<\/li>\n<\/ul>\n<ul>\n<li><strong>References<\/strong>:\n<ul>\n<li><a href=\"http:\/\/barbagroup.bu.edu\/Barba_group\/Publications_files\/LaytonKrishnanBarba.pdf\">Layton S., Krishnan A. and Barba L. cuIBM: A GPU Accelerated Immersed Boundary Method. ParCFD\\&#8217;11.<\/a><\/li>\n<li><a href=\"http:\/\/www.jcohen.name\/papers\/Cohen_Fast_2009_final.pdf\">Cohen, J. and Molemaker, J. A Fast Double Precision CFD Code using CUDA. Parallel CFD, 2009.<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Class 10 (August 31st):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lecture102.pdf\">Lecture 10 &#8211; Slides<\/a><br \/>\n<\/strong><\/p>\n<ul>\n<li>N-body simulation with GPU<\/li>\n<li>Example of applications:\n<ul>\n<li>Astrophysics<\/li>\n<li>Surface reconstruction with RBF<\/li>\n<li>Others (MD)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>Revisit optimizations:\n<ul>\n<li>Shared memory use and tiling<\/li>\n<li>Loop unrolling and other optimization techniques<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Lab 8 (September 1st):<\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/Lab8.pdf\">Lab 8 &#8211; Slides<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/lab8_nbody.cu_.zip\">lab8_nbody.cu<\/a><\/strong><\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/nbody_gpu.cu_.zip\">nbody_gpu.cu<\/a> <\/strong>(N body tiled version)<\/p>\n<p><strong><a href=\"\/pasi\/files\/2011\/07\/nbody_gpu_2.cu_.zip\">nbody_gpu_2.cu<\/a> <\/strong>(N body with N not a multiple of threads per block)<\/p>\n<p><a href=\"\/pasi\/files\/2011\/07\/nbody_optimized.cu_.zip\">nbody_optimized.cu<\/a> (N body with bigger tiles)<\/p>\n<ul>\n<li>Implementation of a fast N-body simulation<\/li>\n<\/ul>\n<ul>\n<li><strong>References: <\/strong>\n<ul>\n<li>Nyland, Harris, Prins.\u00a0<a href=\"http:\/\/http.developer.nvidia.com\/GPUGems3\/gpugems3_ch31.html\" target=\"_blank\">\u201cFast N-body Simulation with CUDA\u201d<\/a>. GPU Gems 3, Chapter 31.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Syllabus Class 9 (August 29th): Lecture 9 &#8211; Slides Challenges of GPU implementations in CFD codes The role of sparse matrices in CFD: Importance of implicit schemes Explanation of the 2D implicit heat transfer using Crank Nicolson: Getting from the mesh to the matrix Lab 7 (August 30th): Lab 7 &#8211; Slides Lab7 &#8211; code [&hellip;]<\/p>\n","protected":false},"author":3344,"featured_media":0,"parent":1297,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1393"}],"collection":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/users\/3344"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/comments?post=1393"}],"version-history":[{"count":16,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1393\/revisions"}],"predecessor-version":[{"id":1399,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1393\/revisions\/1399"}],"up":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/1297"}],"wp:attachment":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/media?parent=1393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}