{"id":19409,"date":"2009-12-11T11:34:02","date_gmt":"2009-12-11T15:34:02","guid":{"rendered":"http:\/\/www.bu.edu\/tech\/?page_id=19409"},"modified":"2023-04-19T16:57:12","modified_gmt":"2023-04-19T20:57:12","slug":"petrbf","status":"publish","type":"page","link":"https:\/\/www.bu.edu\/tech\/support\/research\/whats-happening\/highlights\/petrbf\/","title":{"rendered":"PetRBF &#8211; A Parallel O(N) Algorithm for Radial Basis Function Interpolation"},"content":{"rendered":"<p><strong>Rio Yokota, University of Bristol, U.K.<br \/>\nLorena A. Barba, Boston University<br \/>\nMatthew Knepley, University of Chicago<\/strong><\/p>\n<p>Many applications in computational science need to approximate a function based on ?nite data. When the data are in a certain sense \u201cscattered\u201d in their domain, one very powerful technique is radial basis function (RBF) interpolation. For many years, the wide applicability of RBF interpolation was hindered by its numerical difficulty and expense. Indeed, in their mathematical expression, RBF methods produce an ill-conditioned linear system, for which a direct solution becomes prohibitive for more than a few thousand data points.<\/p>\n<p>We have developed a parallel algorithm for RBF interpolation that exhibits O(N) complexity, requires O(N) storage, and scales excellently up to a thousand processes. The algorithm uses the GMRES iterative solver with a restricted additive Schwarz method (RASM) as a preconditioner and a fast matrix-vector algorithm. Previous fast RBF methods \u2014 achieving at most O(N log N) complexity \u2014 were developed using multiquadric and polyharmonic basis functions. In contrast, the present method uses Gaussians with a small variance. The fast decay of the Gaussian basis function allows rapid convergence of the iterative solver even when the subdomains in the RASM are very small. The method was implemented in parallel using the PETSc library (developer version). Numerical experiments demonstrate its capability in problems of RBF interpolation with more than 50 million data points, timing at 106 seconds (19 iterations for an error tolerance of 10e\u221215) on 1024 processors of a Blue Gene\/L (700 MHz PowerPC processors).<\/p>\n<p>The parallel code is freely available in the open-source model.  <a href=\"http:\/\/code.google.com\/p\/petrbf\/\">http:\/\/code.google.com\/p\/petrbf\/<\/a><\/p>\n<h4>Radial Basis Function (RBF) Interpolation<\/h4>\n<p>Approximate a function by:<br \/>\n<img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/rbf_eq-sm.png\" alt=\"Image showing Radial Basis Function (RBF) Interpolation\" \/> <img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/gaussian_eq-sm.png\" alt=\"Image showing Gaussian function\" \/><\/p>\n<h4>Domain Decomposition Methods<\/h4>\n<p>Domain decomposition methods can be used to solve the linear system on highly parallel architectures by distributing the problem.<\/p>\n<p><img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/domdecomp_diagram-sm.png\" alt=\"Image showing 5x5 grid with a section zoomed in\" \/> <img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/overlapping-sm.png\" alt=\"Image showing subdomain notation\" align=\"top\" \/><\/p>\n<p>Mathematically it can be written as \u00a0\u00a0\u00a0 \t<img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/domdecomp_eq-sm.png\" alt=\"Image showing domain decomposition function\" align=\"middle\" \/><\/p>\n<p><img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/domdecomp_image-sm.png\" alt=\"Image showing Domain decomposition\" align=\"left\" \/><\/p>\n<p><img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/ri-sm.png\" alt=\"Small image showing R sub i\" \/> is the restriction operator, which maps the elements onto the overlapping subdomain.<\/p>\n<p><img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/rtilde-sm.png\" alt=\"Small image showing R sub i super T\" \/> is the projection operator,  which maps the elements onto the overlapping subdomain.<\/p>\n<div style=\"clear: left;\">&nbsp;<\/div>\n<h4>Restricted Additive Schwarz Method (RASM)<\/h4>\n<p><img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/rasm_eq-sm.png\" alt=\"Image showing Restricted Additive Schwarz Method\" \/><\/p>\n<p>For Gaussian basis functions the RASM serves as a preconditioner and parallelization technique. This particular basis function is a perfect match for the RASM.<\/p>\n<h4>Parameters in RASM<\/h4>\n<p>The size of the non-overlapping subdomain B, the overlapping subdomain D, and the domain to be considered in the matrix-vector multiplication T have a large impact on the calculation time. It is the relative size of these domains compared to s that makes the difference. This is independent of the number of elements and the number of processes.<\/p>\n<div style=\"width:400px; margin-left: auto; margin-right: auto\">\n<img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/rasm_diagram-sm.png\" border=\"0\" alt=\"RASM Diagram Image\" \/><\/a> <img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/2-4processes-sm.png\" border=\"0\" alt=\"Graphs comparing 2 vs 4 processes\" \/><\/a><\/div>\n<h4>Complexity and Memory Usage<\/h4>\n<p>When the number of elements N is increased, the calculation time and memory usage of the present method increases as O(N). This is superior to other RBF interpolation methods which scale as O(N log N)<\/p>\n<div style=\"width:500px; margin-left: auto; margin-right: auto\">\n<img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/complexity_mu-sm.png\" border=\"0\" alt=\"Graphs comparing Calculation Time and Memory Usage vs Number of Elements\" \/><\/a><\/div>\n<h4>Parallel Scalability<\/h4>\n<p>For the parallel calculations we used the Blue Gene\/L machine at Boston University.<\/p>\n<div style=\"width:500px; margin-left: auto; margin-right: auto\">\n<img src=\"https:\/\/www.bu.edu\/tech\/files\/2010\/02\/parallel_scal-sm.png\" border=\"0\" alt=\"Four graphs showing parallel scalability\" \/><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Rio Yokota, University of Bristol, U.K. Lorena A. Barba, Boston University Matthew Knepley, University of Chicago Many applications in computational science need to approximate a function based on ?nite data. When the data are in a certain sense \u201cscattered\u201d in their domain, one very powerful technique is radial basis function (RBF) interpolation. For many years,&#8230;<\/p>\n","protected":false},"author":1692,"featured_media":0,"parent":57322,"menu_order":19,"comment_status":"closed","ping_status":"open","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/pages\/19409"}],"collection":[{"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/users\/1692"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/comments?post=19409"}],"version-history":[{"count":13,"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/pages\/19409\/revisions"}],"predecessor-version":[{"id":145173,"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/pages\/19409\/revisions\/145173"}],"up":[{"embeddable":true,"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/pages\/57322"}],"wp:attachment":[{"href":"https:\/\/www.bu.edu\/tech\/wp-json\/wp\/v2\/media?parent=19409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}