140 likes | 243 Views
Non-Interactive Tools. Stephen Aylward, Kitware 2010.01.07. Non-interactive tools. Software Process. Schizophrenia Neurodevelopment Austism MRI, PET, MR Perf Shape Analysis TBI, HD RadOnc, Neurosurgery. 3,224 commits 914,446 lines of code 68 developers GPU, GRID Modularity
E N D
Non-Interactive Tools Stephen Aylward, Kitware 2010.01.07
Non-interactive tools Software Process • Schizophrenia • Neurodevelopment • Austism • MRI, PET, MR Perf • Shape Analysis • TBI, HD • RadOnc, Neurosurgery • 3,224 commits • 914,446 lines of code • 68 developers • GPU, GRID • Modularity • Qt, KWWidgets • C++, Python, TCL • Mac, Windows, Linux
NA-MIC Kit Infrastructure • Software process • CMake and CPack • CDash and CTest • Data management • High-performance computing • Future work (NA-MIC Renewal)
Software process Challenges: • Provide effective resources for developers…and users • Uphold community standards (quality, style, doc.) • Minimize burden on developers…and users
CMake and CPack • Summary • Cross-platform build control from a single configuration file • Release Candidate 2.9 • 1200 downloads per day • Users: KDE, Blizzard (WoW), Nvidia • Features added • Library support: Qt, R • Superbuild: single run to download and configure multiple libraries and executables • Use cases • 3DSlicer, Teem, CLI Modules, MRML, 3DSlicer Qt
CDash and CTest • Summary • Regression testing on multiple platforms (OS, CPU, Compilers) • Popular: 100 projects freely hosted on cdash.org • Robust: Over 1,000 submissions to ITK’s dashboard fest • Features added • CDash: new statistics, compression of historical data • CTest: parallel tests (ctest –j 8) • Use cases • Over 100 tests added to Slicer in the past few weeks • Coverage, Win7, Snow Leopard, …
Data management • PubDB (MIDAS / Insight Journal) • The Extensible Neuroimaging Archive Toolkit (XNAT) • Management and exploration of neuroimaging and related data. • Secure database backend • Rich web-based user interface • XNAT 1.4 RC3 • XNAT Desktop (XND)
XNAT • Features Added • More robust QC modeling • REST and LDAP support. • Improved memory footprint and efficiency. • Refactored Search UI in the listing engine. • Prebuilt XNAT images using VMWare and Virtualbox • xnatfs provides WebDav access to XNAT instances • Use cases • FetchMI, XNAT Desktop
High-performance computing • GPU volume rendering • BatchMake • Scripting multiple Slicer modules for grid computing • Grid Wizard Enterprise (GWE) • Application scheduler that can run multiple (thousands) modules simultaneously on clusters / grids.
GWE Features added • Interactive experiments' results browser. • Next generation: Record set explorer • CSV and generated commands dumps and preview. • Support for LSF and Lava cluster DRMs. • Ability to override auto-discovered DRMs with configured ones. • Ability to override default database installation location. • Function to extract experiments' parameters from text files. • Operations to delete, pause and resume experiments. Use Cases • Parameter space explorations, GWE MiniRetreats, Project Week
Future work MUCH, including: 1. Integrated project tracking • Goal: generate a comprehensive timeline of a project. • Integrate SVN, CMake, CTest, CDash, Wiki, and BugTracker • E.g., Commit a code change: • wiki page is created for developer to describe the change, • related bug report is annotated, • subsequent dashboard changes are recorded, • all are linked from a central timeline
Future work (cont.) 2. Centralized Test Management via CDash / MIDAS integration • CDash operates as a master for Dashboard slaves • Dashboard slaves set their availability and resources • CDash server allocates tests and testing data to the slaves • Ensures testing of important configurations • More efficient use of available resources • Allocations can change nightly to cover complex combinations CDash
Future work (cont.) 3. IPython for interactive distributed computing • Python chosen as a favored scripting language for Slicer • VTK and Qt are well supported by python • ITK v4 will have python as a target language • Considered perl (biologists), tcl (comp sci), BatchMake, JavaScript, ... • IPython = extensions to python for interactive distributed computing • Threaded, grid, and distributed computing • Reduced setup and learning curve • Broad support
Software process Challenges: • Provide effective resources for developers…and users • Uphold community standards (quality, style, doc.) • Minimize burden on developers…and users