Parallel Interactive Computing with PyTrilinos and IPython Bill Spotz, SNL (Brian Granger, Tech-X Corporation) November 8, 2007 Trilinos Users Group Meeting.

Slides:



Advertisements
Similar presentations
Guy Griffiths. General purpose interpreted programming language Widely used by scientists and programmers of all stripes Supported by many 3 rd -party.
Advertisements

Setting up of condor scheduler on computing cluster Raman Sehgal NPD-BARC.
LINUX-WINDOWS INTERACTION. One software allowing interaction between Linux and Windows is WINE. Wine allows Linux users to load Windows programs while.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
Networked HVAC Controller Bradley University Department of Electrical & Computer Engineering By: Ed Siok Advisor: Dr. Malinowski.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
HPCC Mid-Morning Break Interactive High Performance Computing Dirk Colbry, Ph.D. Research Specialist Institute for Cyber Enabled Discovery.
NDT Tools Tutorial: How-To setup your own NDT server Rich Carlson Summer 04 Joint Tech July 19, 2004.
DIRAC API DIRAC Project. Overview  DIRAC API  Why APIs are important?  Why advanced users prefer APIs?  How it is done?  What is local mode what.
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
PIKA Technologies Inc. Analog Logger Application Sample December 2009.
ADLB Update Recent and Current Adventures with the Asynchronous Dynamic Load Balancing Library Rusty Lusk Mathematics and Computer Science Division Argonne.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Building service testbeds on FIRE D5.2.5 Virtual Cluster on Federated Cloud Demonstration Kit August 2012 Version 1.0 Copyright © 2012 CESGA. All rights.
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Trilinos Software Engineering Technologies.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
WORK ON CLUSTER HYBRILIT E. Aleksandrov 1, D. Belyakov 1, M. Matveev 1, M. Vala 1,2 1 Joint Institute for nuclear research, LIT, Russia 2 Institute for.
AUTOBUILD Build and Deployment Automation Solution.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
Page 1 Trilinos Software Engineering Technologies and Integration Numerical Algorithm Interoperability and Vertical Integration –Abstract Numerical Algorithms.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
DCE (distributed computing environment) DCE (distributed computing environment)
1 Installation When this module is complete, you will be able to:  Set a static IP address for your laptop  Install the snom ONE software  Navigate.
JAVA Java is a programming language and computing platform first released by Sun Microsystems in It was first developed by James Gosling at Sun Microsystems,
Scalable Systems Software Center Resource Management and Accounting Working Group Face-to-Face Meeting October 10-11, 2002.
O.S.C.A.R. Cluster Installation. O.S.C.A.R O.S.C.A.R. Open Source Cluster Application Resource Latest Version: 2.2 ( March, 2003 )
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
MACCE and Real-Time Schedulers Steve Roberts EEL 6897.
CERN - IT Department CH-1211 Genève 23 Switzerland t DB Development Tools Benthic SQL Developer Application Express WLCG Service Reliability.
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
Final Review of ITER PBS 45 CODAC – PART 1 – 14 th, 15 th and 16 th of January CadarachePage 1 FINAL DESIGN REVIEW OF ITER PBS 45 CODAC – PART 1.
Ganga A quick tutorial Asterios Katsifodimos Trainer, University of Cyprus Nicosia, Feb 16, 2009.
PyTrilinos: a Python Interface to Selected Trilinos Packages Bill Spotz Trilinos Users Group Meeting November 2, 2004.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
SciDAC SSS Quarterly Report Sandia Labs August 27, 2004 William McLendon Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
LAMMPS Users’ Workshop
Earth System Modeling Framework Python Interface (ESMP) October 2011 Ryan O’Kuinghttons Robert Oehmke Cecelia DeLuca.
Scientific Programmes Committee Centre for Aerospace Systems Design & Engineering Amitay Isaacs Department of Aerospace Engineering Indian Institute of.
Basic UNIX Concepts. Why We Need an Operating System (OS) OS interacts with hardware and manages programs. A safe environment for programs to run is required.
Linux History C151 Multi-User Operating Systems. Open Source Programming Open source programming: 1983, Richard Stallman started the GNU Project (GNU.
K. Harrison CERN, 22nd September 2004 GANGA: ADA USER INTERFACE - Ganga release status - Job-Options Editor - Python support for AJDL - Job Builder - Python.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Introduction to CASA Crystal Brogan ALMA CASA Subsystem Scientist (NRAO/NAASC) With lots of help from Steve Myers (Project Scientist)
Exploring Spyder: An IDE for scientific computing
Process Manager Specification Rusty Lusk 1/15/04.
New Language Features For Parallel and Asynchronous Execution Morten Kromberg Dyalog LTD Dyalog’13.
Python & NetworkX Youn-Hee Han
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
Cliff Addison University of Liverpool NW-GRID Training Event 26 th January 2007 SCore MPI Taking full advantage of GigE.
Geant4 GRID production Sangwan Kim, Vu Trong Hieu, AD At KISTI.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
SciDAC SSS Quarterly Report Sandia Labs January 25, 2005 William McLendon Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed.
ImageJ2. Why ImageJ2? ● Support the next generation of image data ● Interoperate and collaborate with other projects ● Broaden the ImageJ community ●
How to Get Started With Python
Python Programming Unit -1.
Development Environment
CST 1101 Problem Solving Using Computers
ITCS-3190.
Pipeline Execution Environment
Deploying and Configuring SSIS Packages
Maintaining software solutions
Prepared by Kimberly Sayre and Jinbo Bi
Trilinos Software Engineering Technologies and Integration
Module 01 ETICS Overview ETICS Online Tutorials
FEniCS = Finite Element - ni - Computational Software
Presentation transcript:

Parallel Interactive Computing with PyTrilinos and IPython Bill Spotz, SNL (Brian Granger, Tech-X Corporation) November 8, 2007 Trilinos Users Group Meeting Albuquerque, NM

The History of Parallel PyTrilinos First versions of PyTrilinos were serial Marzio Sala implemented first parallel version Current status for MPI build: –from PyTrilinos import Epetra automatically calls MPI_Init() –MPI_Finalize() is registered with at_exit module –Epetra_MpiComm class is fully wrapped, and Epetra.PyComm() factory function is provided –$ mpirun -np 4 my_script.py works –A simple attempt at interactivity ($ mpirun -np 2 python) would produce multiple prompts and confuse standard input

2007 Scientific Python Conference Attending tutorial sessions (SWIG) IPython tutorial included interactive parallelism demonstration (controller model) After I downloaded, compiled and installed required software, and IPython developers did the same with Trilinos, we got PyTrilinos to work interactively in parallel in about 5 minutes

IPython Enhanced version of python for interactive use Enhancements include: –Emacs/bash style tab-completion –Multiple layers of help (help(), ?, ??) –More context for exception tracebacks –Matlab-style input/output numbering w/cache –“Magic” commands, including shell commands –Generic shell access with the ! prefix (!! If you want to capture output) $ prefix to expand python variables, $$ prefix for environment variables –Logging –Much, much more …

IPython Demo

Parallelism with IPython1 Enable the rapid development of parallel codes Make all stages of parallel computing fully interactive: development, debugging, testing, execution, monitoring... Make parallel computing collaborative Seamless integration with other tools: plotting, visualization, system shell, MPI, threads, etc Support many types of parallelism

IPython1 Architecture IPython Engine IPython Engine IPython Engine IPython Engine IPython Controller Client Instructions Objects

IPython Engine Python interpreter connected to a network Runs user code, maintains state Can be started with mpirun User code can contain direct or indirect calls to MPI (such as PyTrilinos)

IPython Controller Provides asynchronous interface to a set of Engines Manages a queue for each Engine Clients push/pull commands and objects to/from the Engines using the queues A set of Engines can be presented to a client in a variety of ways. This enables different models of parallelism to be exposed.

IPython Clients Simple set of Python classes used to communicate with the Controller and Engines These classes can be used interactively or in non-interactive Python scripts Simple, high level interface Blocking and non-blocking modes

Startup Scripts ipcontroller –Used to start the Controller –The Controller listens on a number of ports and must be started first ipengine –Used to start a single Engine after the Controller is running –This script can be started using mpirun ipcluster –Starts one Controller and N Engines on localhost or an ssh based cluster.

IPython1 RemoteController Interface Simple, intuitive way of working with the IPython Engines Fine grained access to specific Engines Most general way of working with Engines New users should start here Designed with interactive usage of MPI applications in mind

IPython1 + PyTrilinos If PyTrilinos and latest version of IPython1 are installed, it will “Just Work.” The first time we attempted this, it took a few minutes to work our how and when MPI_Init() would be called We have added a command line option to ipengine to handle all of this automatically –$ mpirun -n 4 ipengine --mpi=pytrilinos

IPython1 Parallel Demo

IPython1 Resources IPython Parallel Computing webpage – IPython1 README and INSTALL files doc/examples directory in the IPython1 source svn co ipython

PyTrilinos for Trilinos Release 8.0 Extensive Teuchos.ParameterList support –Python dictionary interoperability Workable Teuchos::RCP support –Python object are automatically ref-counted –Teuchos::RCP should be invisible to python programmer –Use cases where ref-counts do not sync NOX re-enabled Module for Anasazi package added Python help system for PyTrilinos now leverages doxygen documentation

PyTrilinos for Trilinos Release 8.0 PyTrilinos requires that Trilinos libraries be built as shared Python-based build system that re-links object files as shared (supported under Mac OS X and Linux) –Must be compiled as position-independent code Shared libraries can be built without building PyTrilinos –configure … --enable-shared … –Shared libraries put in BUILD/packages/PyTrilinos/shared