{"id":614,"date":"2010-09-26T09:28:43","date_gmt":"2010-09-26T13:28:43","guid":{"rendered":"https:\/\/www.bu.edu\/pasi\/?page_id=614"},"modified":"2010-10-04T14:54:52","modified_gmt":"2010-10-04T18:54:52","slug":"iterative-methods-for-sparse-linear-systems","status":"publish","type":"page","link":"https:\/\/www.bu.edu\/pasi\/courses\/iterative-methods-for-sparse-linear-systems\/","title":{"rendered":"Iterative methods for sparse linear systems on GPU"},"content":{"rendered":"<h3>by Dr Nathan Bell<\/h3>\n<p><strong>NVIDIA Research<\/strong><\/p>\n<p>This course will introduce students to iterative methods for solving sparse linear systems and how they are efficiently implemented on the GPU.\u00a0 Students will gain intuition for the performance characteristics of sparse matrix operations and how to choose among sparse matrix representations.\u00a0 We will show how generic parallel algorithms or \u201cparallel primitives\u201d can be used to manipulate sparse,\u00a0 unstructured data sets and build complex algorithms.\u00a0 A final lecture will summarize potential optimization techniques and methods for preconditioning iterative solvers to accelerate convergence.\u00a0 A tentative course schedule follows below.<\/p>\n<ul>\n<li><a href=\"\/pasi\/files\/2010\/09\/thrust_logo2.png\"><img loading=\"lazy\" class=\"alignright size-full wp-image-626\" title=\"thrust_logo2\" src=\"\/pasi\/files\/2010\/09\/thrust_logo2.png\" alt=\"thrust_logo2\" width=\"250\" height=\"98\" \/><\/a><em>Lesson 1<\/em>: Sparse matrix representations and iterative solvers<\/li>\n<li><em>Lesson 2<\/em>: Sparse matrix-vector multiplication (SpMV)<\/li>\n<li><em>Laboratory <\/em>1: Implementing an iterative solver on the GPU<\/li>\n<li><em>Lesson 3<\/em>: Leveraging parallel primitives with Thrust<\/li>\n<li><em>Laboratory 2<\/em>: Putting it all together<\/li>\n<li><em>Lesson 4<\/em> (30 mins): Future directions: optimization techniques and preconditioning<\/li>\n<\/ul>\n<p><a href=\"\/pasi\/files\/2010\/09\/cusp_logo2.png\"><img loading=\"lazy\" class=\"alignright size-full wp-image-630\" title=\"cusp_logo2\" src=\"\/pasi\/files\/2010\/09\/cusp_logo2.png\" alt=\"cusp_logo2\" width=\"150\" height=\"38\" \/><\/a>Laboratory exercises will use the <a href=\"http:\/\/code.google.com\/p\/thrust\/\" target=\"_blank\">Thrust<\/a> and <a href=\"http:\/\/code.google.com\/p\/cusp-library\/\" target=\"_blank\">CUSP<\/a> libraries for CUDA.<\/p>\n<h3>Student Requirements<\/h3>\n<p>The interested student should have:<\/p>\n<ul>\n<li>Understanding of standard (dense) linear algebra concepts<\/li>\n<li>Ability to write simple CUDA kernels (e.g. SAXPY)<\/li>\n<li>For this course, familiarity with C++ is beneficial but not necessary.<\/li>\n<\/ul>\n<h2>Supplementary Materials<\/h2>\n<ul>\n<li>\n<li><a href=\"http:\/\/www.nvidia.com\/docs\/IO\/77944\/sc09-spmv-throughput.pdf\" target=\"_blank\">Implementing Sparse Matrix-Vector Multiplication on Throughput-Oriented Processors<\/a>,\u00a0Nathan Bell and Michael Garland, in &#8220;Proc. Supercomputing &#8217;09&#8221;, November 2009<\/li>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>by Dr Nathan Bell NVIDIA Research This course will introduce students to iterative methods for solving sparse linear systems and how they are efficiently implemented on the GPU.\u00a0 Students will gain intuition for the performance characteristics of sparse matrix operations and how to choose among sparse matrix representations.\u00a0 We will show how generic parallel algorithms [&hellip;]<\/p>\n","protected":false},"author":3344,"featured_media":0,"parent":321,"menu_order":9,"comment_status":"closed","ping_status":"open","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/614"}],"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=614"}],"version-history":[{"count":16,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/614\/revisions"}],"predecessor-version":[{"id":616,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/614\/revisions\/616"}],"up":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/pages\/321"}],"wp:attachment":[{"href":"https:\/\/www.bu.edu\/pasi\/wp-json\/wp\/v2\/media?parent=614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}