Using Python to Construct a Scalable Parallel Nonlinear Wave Solver

Handle URI:
http://hdl.handle.net/10754/333644
Title:
Using Python to Construct a Scalable Parallel Nonlinear Wave Solver
Authors:
Mandli, Kyle ( 0000-0002-8267-5989 ) ; Alghamdi, Amal; Ahmadia, Aron ( 0000-0002-2573-2481 ) ; Ketcheson, David I. ( 0000-0002-1212-126X ) ; Scullin, William
Abstract:
Computational scientists seek to provide efficient, easy-to-use tools and frameworks that enable application scientists within a specific discipline to build and/or apply numerical models with up-to-date computing technologies that can be executed on all available computing systems. Although many tools could be useful for groups beyond a specific application, it is often difficult and time consuming to combine existing software, or to adapt it for a more general purpose. Python enables a high-level approach where a general framework can be supplemented with tools written for different fields and in different languages. This is particularly important when a large number of tools are necessary, as is the case for high performance scientific codes. This motivated our development of PetClaw, a scalable distributed-memory solver for time-dependent nonlinear wave propagation, as a case-study for how Python can be used as a highlevel framework leveraging a multitude of codes, efficient both in the reuse of code and programmer productivity. We present scaling results for computations on up to four racks of Shaheen, an IBM BlueGene/P supercomputer at King Abdullah University of Science and Technology. One particularly important issue that PetClaw has faced is the overhead associated with dynamic loading leading to catastrophic scaling. We use the walla library to solve the issue which does so by supplanting high-cost filesystem calls with MPI operations at a low enough level that developers may avoid any changes to their codes.
KAUST Department:
Computer, Electrical and Mathematical Sciences and Engineering (CEMSE) Division; Numerical Mathematics Group
Publisher:
THE 10th PYTHON IN SCIENCE CONF. (SCIPY 2011)
Journal:
Proceedings of the 10th PYTHON IN SCIENCE CONF. (SCIPY 2011)
Issue Date:
2011
Type:
Conference Paper
Additional Links:
http://conference.scipy.org/proceedings/scipy2011/pdfs/mandli_etal.pdf
Appears in Collections:
Conference Papers; Numerical Mathematics Group; Computer, Electrical and Mathematical Sciences and Engineering (CEMSE) Division

Full metadata record

DC FieldValue Language
dc.contributor.authorMandli, Kyleen
dc.contributor.authorAlghamdi, Amalen
dc.contributor.authorAhmadia, Aronen
dc.contributor.authorKetcheson, David I.en
dc.contributor.authorScullin, Williamen
dc.date.accessioned2014-11-04T08:51:25Z-
dc.date.available2014-11-04T08:51:25Z-
dc.date.issued2011en
dc.identifier.urihttp://hdl.handle.net/10754/333644en
dc.description.abstractComputational scientists seek to provide efficient, easy-to-use tools and frameworks that enable application scientists within a specific discipline to build and/or apply numerical models with up-to-date computing technologies that can be executed on all available computing systems. Although many tools could be useful for groups beyond a specific application, it is often difficult and time consuming to combine existing software, or to adapt it for a more general purpose. Python enables a high-level approach where a general framework can be supplemented with tools written for different fields and in different languages. This is particularly important when a large number of tools are necessary, as is the case for high performance scientific codes. This motivated our development of PetClaw, a scalable distributed-memory solver for time-dependent nonlinear wave propagation, as a case-study for how Python can be used as a highlevel framework leveraging a multitude of codes, efficient both in the reuse of code and programmer productivity. We present scaling results for computations on up to four racks of Shaheen, an IBM BlueGene/P supercomputer at King Abdullah University of Science and Technology. One particularly important issue that PetClaw has faced is the overhead associated with dynamic loading leading to catastrophic scaling. We use the walla library to solve the issue which does so by supplanting high-cost filesystem calls with MPI operations at a low enough level that developers may avoid any changes to their codes.en
dc.language.isoenen
dc.publisherTHE 10th PYTHON IN SCIENCE CONF. (SCIPY 2011)en
dc.relation.urlhttp://conference.scipy.org/proceedings/scipy2011/pdfs/mandli_etal.pdfen
dc.rightsThis is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.en
dc.subjectparallelen
dc.subjectfinite volumeen
dc.subjectscalingen
dc.subjectnonlinear wavesen
dc.subjectPyClawen
dc.subjectPetClawen
dc.subjectWallaen
dc.titleUsing Python to Construct a Scalable Parallel Nonlinear Wave Solveren
dc.typeConference Paperen
dc.contributor.departmentComputer, Electrical and Mathematical Sciences and Engineering (CEMSE) Divisionen
dc.contributor.departmentNumerical Mathematics Groupen
dc.identifier.journalProceedings of the 10th PYTHON IN SCIENCE CONF. (SCIPY 2011)en
dc.eprint.versionPublisher's Version/PDFen
dc.contributor.institutionUniversity of Washingtonen
dc.contributor.institutionArgonne National Labsen
This item is licensed under a Creative Commons License
Creative Commons
All Items in KAUST are protected by copyright, with all rights reserved, unless otherwise indicated.