{"id":5924,"date":"2011-10-17T16:03:11","date_gmt":"2011-10-17T13:03:11","guid":{"rendered":"http:\/\/hgpu.org\/?p=5924"},"modified":"2011-10-17T16:03:11","modified_gmt":"2011-10-17T13:03:11","slug":"a-high-performance-parallel-sparse-linear-equation-solver-using-cuda","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=5924","title":{"rendered":"A High Performance Parallel Sparse Linear Equation Solver Using CUDA"},"content":{"rendered":"<p>The management of electric power systems requires continuously computing the powerflow of a power system in real-time. For large power systems, this task is often beyond the capabilities of modern CPUs. Concurrent computation is an attractive approach to accelerating it. However, the powerflow computation requires solving a large system of sparse linear equations. This problem is difficult to parallelize on classic parallel computer architectures. In this thesis I implement an algorithm that solves a system of sparse linear equations on the GPU using NVIDIA&#8217;s CUDA programming language. I develop software that randomly produces power system topologies that mimic real world systems. These power systems produce sparse matrices, which are then factorized using a method known as bi-factorization. I test my algorithm on the random power system topologies of progressively larger sizes. My experiments indicate that with a system size of 9,000 buses, my algorithm achieves a speedup of thirty-eight times over the CPU algorithm. My results demonstrate the practicality of GPU-based powerflow computation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The management of electric power systems requires continuously computing the powerflow of a power system in real-time. For large power systems, this task is often beyond the capabilities of modern CPUs. Concurrent computation is an attractive approach to accelerating it. However, the powerflow computation requires solving a large system of sparse linear equations. This problem [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[36,11,89,3],"tags":[1787,1782,14,288,37,20,1091,390],"class_list":["post-5924","post","type-post","status-publish","format-standard","hentry","category-algorithms","category-computer-science","category-nvidia-cuda","category-paper","tag-algorithms","tag-computer-science","tag-cuda","tag-factorization","tag-linear-algebra","tag-nvidia","tag-nvidia-geforce-gtx-570","tag-thesis"],"views":2644,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/5924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5924"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/5924\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}