DANSE Diffraction Software for the SNS: DiffDANSE S.J.L. Billinge Dept. Physics and Astronomy Michigan State University.

Slides:



Advertisements
Similar presentations
Assignment 1 Team: Pirate Captains. Were making another chat program. But WHY?! Theres so many!
Advertisements

EUFORIA FP7-INFRASTRUCTURES , Grant JRA4 Overview and plans M. Haefele, E. Sonnendrücker Euforia kick-off meeting 22 January 2008 Gothenburg.
P5, M1, D1.
Systems Development Environment
Chapter 3 Process Models
Ch 3 System Development Environment
Alternate Software Development Methodologies
Object-Oriented Analysis and Design
DANSE – DiffDANSE report and Community Engagement S.J.L. Billinge Department of Applied Physics and Applied Mathematics Columbia University, CMPMS, Brookhaven.
Report from DANSE Workshop Sept. 3-8, 2003 Goals: 1) To explain DANSE to selected scientists and engineers who develop software for neutron scattering.
Summary Role of Software (1 slide) ARCS Software Architecture (4 slides) SNS -- Caltech Interactions (3 slides)
DANSE Diffraction sub-group report S.J.L. Billinge Dept. Physics and Astronomy Michigan State University.
ARCS software meeting 3/15/02 Experimental Planning, Visualization, and Analysis for Condensed Matter Physicists Collin Broholm Johns Hopkins University.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
© , Michael Aivazis DANSE Software Issues Michael Aivazis California Institute of Technology DANSE Software Workshop September 3-8, 2003.
Copyright © 2007 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
DANSE Diffraction Software for the SNS: DiffDANSE S.J.L. Billinge Dept. Physics and Astronomy Michigan State University.
The middleware that makes real time integration a reality.
Systems Analysis and Design in a Changing World, 6th Edition
Introduction to Systems Analysis and Design
The Origin of the VM/370 Time-sharing system Presented by Niranjan Soundararajan.
–Streamline / organize Improve readability of code Decrease code volume/line count Simplify mechanisms Improve maintainability & clarity Decrease development.
Data Structures and Programming.  John Edgar2.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
ROOT: A Data Mining Tool from CERN Arun Tripathi and Ravi Kumar 2008 CAS Ratemaking Seminar on Ratemaking 17 March 2008 Cambridge, Massachusetts.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Design Extensions to Google+ CS6204 Privacy and Security.
GLAST Science Support CenterAugust 9, 2004 Implementation of the Standard Analysis Environment (SAE) James Peachey (HEASARC/GLAST SSC—GSFC/L3)
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 2 The process Process, Methods, and Tools
Rational Unified Process Fundamentals Module 4: Disciplines II.
System Design: Designing the User Interface Dr. Dania Bilal IS582 Spring 2009.
DCS Overview MCS/DCS Technical Interchange Meeting August, 2000.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Nick Draper Teswww.mantidproject.orgwww.mantidproject.org Instrument Independent Reduction and Analysis at ISIS and SNS.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
May05-36: Boone Cemetery Management Software Boone Cemetery Management Software May05-36 Greg Thede, Director, Boone Parks Department Dr. Kothari Joseph.
DORII Joint Research Activities DORII Joint Research Activities Status and Progress 6 th All-Hands-Meeting (AHM) Alexey Cheptsov on.
1 Some initial Design suggestions… Getting started… where to begin? Find out whether your design architecture will work… as soon as possible. If you need.
Nick Draper 05/11/2008 Mantid Manipulation and Analysis Toolkit for ISIS data.
I Power Higher Computing Software Development The Software Development Process.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
© 2010 Bennett, McRobb and Farmer1 Development Process Based on Chapter 5 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using.
Developing Business/IT Solutions Chapter 12 McGraw-Hill/IrwinCopyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Heather Kelly PPA Scientific Computing Apps LAT was launched as part of the Fermi Gamma-ray Space Telescope on June 11 th 2008.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
The Software Development Process
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
Nick Draper Tessella Instrument Independent Reduction and Analysis at ISIS and SNS.
Computer Software Types Three layers of software Operation.
Computer Components: Software Computer Technology.
NOVA A Networked Object-Based EnVironment for Analysis “Framework Components for Distributed Computing” Pavel Nevski, Sasha Vanyashin, Torre Wenaus US.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
Visualization in Problem Solving Environments Amit Goel Department of Computer Science Virginia Tech June 14, 1999.
Mantid Stakeholder Review Nick Draper 01/11/2007.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Page 1 PACS GRITS 17 June 2011 Herschel Data Analysis Guerilla Style: Keeping flexibility in a system with long development cycles Bernhard Schulz NASA.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
44222: Information Systems Development
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 1 An Introduction to Visual Basic.NET and Program Design.
Software Design and Development Development Methodoligies Computing Science.
Development Process Based on Chapter 5 Bennett, McRobb and Farmer
Programmable Hardware: Hardware or Software?
Software Life Cycle Models
Object Oriented Analysis and Design
SOFTWARE DEVELOPMENT LIFE CYCLE
Thomas Holm Rod Group Leader Data Analysis and Modelling
Presentation transcript:

DANSE Diffraction Software for the SNS: DiffDANSE S.J.L. Billinge Dept. Physics and Astronomy Michigan State University

Outline “Local” Goals of DiffDANSE Proposed scope and tasks Preliminary work Communications

DiffDANSE goals Make diffraction data analysis software that SNS users (and other people) want to use! Make sure that it has a long life

DiffDANSE goals Make diffraction data analysis software that people want to use! –Solves people’s scientific problems, opens new scientific horizons –Shortens time to publication –Flexible –Easy to use Good user documentation –Robust and Stable

DiffDANSE goals Make sure that it has a long life –Maintainable (esp. by others, i.e., SNS!) Good developer documentation Requirements/use cases/tests stored with the code –Extensible modular –Scalable Dynamic memory allocation Distributable/parallelizable –Quality controlled –Open source

Scope 6.1.1Structure functions from powder diffractometersMichigan State 6.1.2Bragg-peak intensities from single-crystal diffractometersMichigan State 6.1.3Instrument specific tasksMichigan State 6.2.1Full profile model refinement in real and reciprocal spaceMichigan State 6.2.2Plug in architecture for carrying out joint refinementsMichigan State 6.2.3Model independent peak fittingMichigan State 6.2.4Rietveld and PDF modeling extensionsMichigan State 6.2.5Constraint/restraint plug-insMichigan State 6.2.6Post modeling analysis toolsMichigan State 6.2.7Graphical applicationsMichigan State Refinement control toolkitMichigan State 6.3.1Simulation of experimentsMichigan State 6.3.2Simulation Research ProjectMichigan State

Common tasks cctbxMichigan State FOXMichigan State CrysFMLMichigan State PowderCellMichigan State ObjCryst++Michigan State PyMolMichigan State ViewMolMichigan State DRAWxtlMichigan State Additional CIF readerMichigan State "Hands-On" Nanotechnology and Curriculum Development Michigan State Education/outreach Libraries/common utilities

DiffDANSE development team ?

Prototype: Dream-desktop for local-structure studies using the atomic pair distribution function (PDF)

Prototype application: PDFgui Goals: 1.PDF is a great technique for studying local structure, but our programs are clunky and hard to use…ok for hard-core physicists but not for wider adoption. Give it an easy-to-use interface 2.Often we want to refine multiple datasets as a function of temperature/pressure/composition, etc.. Make a program that is straightforward to automate for multiple datasets but flexible enough to give the user control over this process 3.Users are interested in structure, not scattering data. Allow them to interact with the structure straightforwardly in the same program in real time 4.Make it sufficiently fast that people want to use it 5.Use it as a prototype to learn how the DANSE software development process is going to go

PDFgui Solution: –Write Python bindings into our existing PDFFIT2 C++ code to access variables at the python layer at run-time –Wrap an existing plotting program, matplotlib, for 1D plots which support user interactions (zoom, explore, etc.) –Wrap an existing structure visualization program, ATOMEYE, for simple structure visualization –Build a GUI front-end –We want real-time interactivity so… –Graphics can eat up system resources => build in distributed functionality. Have PDFFIT2 running on a remote computer but keep the real-time interactivity

PDFgui component structure GUI Control Center PDFFIT2 Plot ControlMatplotlib StruVis ControlPymol

Configuring a set of fits for a T- series on LaMnO 3 data.

Plotting pane of PDFgui

PDFgui Make code people want to use –Careful design of the structure of the GUI. This went through several iterations and ultimately a complete refactoring as we struggled with how people will use it for different tasks. –User input: Rapid development cycle was just a few months from inception to the alpha-0 release (local release with a single installation). Now working on alpha-1 (wider release, some feature improvements) (already expert PDF) Users were up to speed after one tutorial session with no documentation (will address at beta release) Software control on TRAC and svn allows users to post bug- reports and feature requests that won’t get lost.

PDFgui Make sure that it has a long life –Modular –Clear separation of gui from program logic. Interaction between the program and the gui through proxies –Team development results in code that is readable by more than one human being –Coding standards for docstrings and basic syntax structure –Project under subversion control under TRAC

Summary Make codes people want to use –Open Source –Community engagement – what do you want to have? –Community involvement – what do you want to do? Now beginning to develop the detailed software requirements. Please tell us what you need!