A Python Interface to Trilinos/Tpetra for High-Level Access to HPC Solvers

Period of Performance: 01/01/2012 - 12/31/2012


Phase 1 SBIR

Recipient Firm

Enthought, Inc.
515 Congress Ave., Suite 2100
Austin, TX 78701
Principal Investigator
Firm POC


For many classes of programming problems that require parallel libraries, years of experience are required to effectively use those libraries, and frequently they are difficult to use, requiring complicated programming interfaces. The large time investment and limited usability prohibit typical domain specialists, who have limited programming expertise, from creating parallel codes and benefiting from parallel resources. Programs that can make this time investment typically have huge resources at their disposal, such as the Advanced Simulation & amp; Computing (ASC) campaign, or the Scientific Discovery through Advanced Computing (SciDAC) program. The motivation for industry users to use parallel libraries will only grow with time, as multi-core systems are becoming more widely available on commodity desktop and laptop systems, and it is not far off before hundred-core desktops and laptops are common. We propose to design a high-level interface to the Trilinos Tpetra parallel linear algebra library in the expressive and user-friendly Python language. This interface will make parallel linear algebra (1) easier to use via a simplified user interface, (2) more intuitive through features such as advanced indexing, and (3) more useful by enabling access to it from the already extensive Python scientific software stack. Commercial applications and other benefits: The project will result in better utilization of existing HPC resources and will facilitate a decrease in the total time to market from concept to implementation, improving the competitiveness of US industries, universities and defense organizations. The benefit to the public will be observed in diverse applications that use parallel linear algebra libraries for simulation and modeling: product design and manufacturing, pharmaceuticals, thermal management, network and data transmission design, medical imaging, operational logistics, environmental project planning, and risk and performance assessment, to name some examples.