Kitware: Qt and Scientific Computing
-
Upload
qt-project -
Category
Technology
-
view
3.691 -
download
7
description
Transcript of Kitware: Qt and Scientific Computing
![Page 1: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/1.jpg)
Kitware Scientific Computing with Qt Bill Hoffman [email protected] 11/16/2009
![Page 2: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/2.jpg)
Overview
• Kitware
– History and Business Model
• Qt at Kitware
– past, present and Future
• CMake/CTest/CDash
1
![Page 3: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/3.jpg)
Kitware: the Company
•• Founded in 1998Founded in 1998
•• Founders: 5 previous employees of GE Corporate ResearchFounders: 5 previous employees of GE Corporate Research
•• Privately held, profitable from creation, no debtPrivately held, profitable from creation, no debt
–– Revenues projected at $9 million in 2009Revenues projected at $9 million in 2009
•• ~$14 million if subcontractors included~$14 million if subcontractors included
–– Principally consulting/grants, with support product revenuePrincipally consulting/grants, with support product revenue
•• Approximately 65 employees; growing rapidly (30% in 2009)Approximately 65 employees; growing rapidly (30% in 2009)
–– > 25 PhD> 25 PhD
![Page 4: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/4.jpg)
Business Model
• Open source software
– Services and support
– Consulting
– Collaborative R&D
• Commercial products
– Value-added products
– Applications built on high quality, open source base
– Custom (proprietary) software frameworks
![Page 5: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/5.jpg)
Kitware: Core Technologies
SoftwareProcess
SupercomputingVisualization
MedicalImaging
ComputerVision
Open-SourceToolkits
• Registration• Segmentation• Image Processing• Measurement• Responsive GUI
• Large data• Parallel computing• Client / Server• Web / grid architectures• Human/Computer
Interaction
Expertise in:• Behavior/event recognition• Detection and tracking• Segmentation• Change Detection
• Insight ToolKit (ITK)• VisualizationToolkit (VTK)• CMake• ParaView• Publications and consulting
![Page 6: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/6.jpg)
Supercomputing Visualization• Transform complex, large data into visual representations
that are easier to understand and interact with
![Page 7: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/7.jpg)
Supercomputing Visualization (2)
• Informatics
![Page 8: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/8.jpg)
Supercomputing 3D Interaction Widgets
![Page 9: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/9.jpg)
Supercomputing Visualization
• Applicable software
– VTK (the Visualization Toolkit)
– ParaView (Parallel Visualization application)
– Overview (Information visualization application)
• Customers
– Any producer and/or consumer of large, complex data
![Page 10: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/10.jpg)
Medical Imaging
• Process, analyze and visualize medical data
– Image processing- operate on images to extract
information
– Segmentation- identify features in an image
– Registration- align images
![Page 11: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/11.jpg)
Medical Imaging• Applicable Software
– ITK (Insight Segmentation and Registration Toolkit)– IGSTK (Image Guided Surgery Toolkit)– VolView (volume rendering application)– Maverick (medical image analysis
application framework)
• Customers– Medical research– Pharma– Orthopedics– Medical device manufactures utilizing images– Pre-clinical– Biological applications (image based)
![Page 12: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/12.jpg)
Computer Vision
• Extract information from images or video streams
![Page 13: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/13.jpg)
VTK
![Page 14: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/14.jpg)
National Library of MedicineSegmentation and Registration Toolkit
$13 million over 6 years$13 million over 6 yearsLeading edge algorithmsLeading edge algorithmsOpen Source SoftwareOpen Source Software
www.itk.orgwww.itk.org
![Page 15: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/15.jpg)
• Parallel Visualization application• Turn-key wrapper around VTK• Supports parallel data processing and
rendering• Supports tiled displays, Caves, etc.• 3D widgets, LOD (level-of-detail) display• Extended by XML modules• Extensive animation support
ParaView
![Page 16: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/16.jpg)
Kitware GUI History
• 1999 – 2009 C++ GUI Choices– tcl/TK– FLTK -> LGPL – Qt -> GPL – GTK– WxWidgets -> BSD (1992) – MFC (Only Windows)
• Requirements– Cross Platform, Open Source “commercializable“
• Kitware created KWWidgets on top of tcl/TK
![Page 17: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/17.jpg)
Kitware Qt GPL projects
• ParaQ ParaView (converted from KWWidgets)
2005
– Pay to keep BSD license on ParaView/VTK
• Maverick DOD SBIR
• One commercial customer
16
![Page 18: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/18.jpg)
Slider - image-to-image registration app
17
![Page 19: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/19.jpg)
Qt LGPL Changes Everything!
• Scientists and Engineers can focus on the science and not on GUI widgets and license issues.
• Kitware plans to use and encourage the use of Qt for all of our projects now.
![Page 20: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/20.jpg)
3D Slicer• Is a multi-platform, open source software for bio-medical
computing
• Initially implemented
using KWWidgets due to
GPL licensing concerns
• Utilizes open-source tools CMake, VTK, ITK
• $350K of funding for Qt port
– NAMIC National Alliance of Medical Image Computing (na-
mic.org)
– One of seven prestigiuos NIH National Roadmap Projects, a
National Center of Biomedical Computing(NCBC)
• Two year effort, effort is underway
• Cited reasons: Ease of use, cross-platform support,
available community resources, and productivity gains
![Page 21: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/21.jpg)
![Page 22: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/22.jpg)
21
CMake – Cross Platform Build System
• Why CMake?
• CMake Features
• Where to get help
– Mastering CMake Book
– Web Page: www.cmake.org
• http://www.cmake.org/Wiki/CMake
• mailing list: [email protected]
![Page 23: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/23.jpg)
Why CMake? It’s easy, and works well
22
Typical Project without CMake (curl)$ ls CHANGES RELEASE-NOTES curl-config.in missingCMake acinclude.m4 curl-style.el mkinstalldirsCMakeLists.txt aclocal.m4 depcomp notesbuild docs notes~COPYING buildconf include packagesCVS buildconf.bat install-sh reconfChangeLog compile lib sample.emacsMakefile config.guess libcurl.pc.in srcMakefile.am config.sub ltmain.sh testsMakefile.in configure m4 vc6curl.dswREADME configure.ac maketgz
$ ls src/CMakeLists.txt Makefile.riscos curlsrc.dsp hugehelp.h version.hCVS Makefile.vc6 curlsrc.dsw macos writeenv.cMakefile.Watcom Makefile.vc8 curlutil.c main.c writeenv.hMakefile.am config-amigaos.h curlutil.h makefile.amiga writeout.cMakefile.b32 config-mac.h getpass.c makefile.dj writeout.hMakefile.in config-riscos.h getpass.h mkhelp.plMakefile.inc config-win32.h homedir.c setup.hMakefile.m32 config.h.in homedir.h urlglob.cMakefile.netware curl.rc hugehelp.c urlglob.h
• A build system
that just works
• A build system
that is easy to use
cross platform
![Page 24: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/24.jpg)
Why CMake? It’s fast
http://blog.qgis.org/?q=node/16 : “I was quite surprised with
the speed of building Quantum GIS codebase in
comparison to Autotools. “
![Page 25: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/25.jpg)
Why CMake? Everyone is using it
• 800+ downloads per day from www.cmake.org• Major Linux distributions and Cygwin provide CMake packages• KDE, Second Life, Boost (Expermentally), many others
KDE 2006 – Tipping Point!
![Page 26: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/26.jpg)
What Is CMake?
• Family of Software Development Tools
– Build – CMake
– Test – CTest/CDash
– Package – CPack
• Open-Source License
• History
– Insight Segmentation & Registration Toolkit (~2000)
– Changed the way we build
![Page 27: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/27.jpg)
How CMake Changes The Way We Build C++ • Boost aims to give C++ a set of useful libraries like Java,
Python, and C#
• CMake aims to give C++ compile portability like the
compile once and run everywhere of Java, Python, and
C#
– Same build tool and files for all platforms
– Easy to mix both large and small libraries
![Page 28: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/28.jpg)
27
Who Is Involved?
Users• KDE• Second Life• ITK• VTK• ParaView• Trilinos• Scribus• Boost (Experimentaly)• Mysql• many more
Supporters
• Kitware• ARL• National Library of
Medicine• Sandia National Labs• Los Alamos National
Labs• NAMIC
![Page 29: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/29.jpg)
CMake Features• One simple language for all platforms
– Windows, Mac, Linux, UNIX variants
– Embedded platforms via cross-compilation
• Generates native build systems
– Makefiles (GNU, NMake, Borland, etc.)
– KDevelop, Eclipse
– Visual Studio 6,7,8,9 IDE
– Xcode
• Out-of-source build trees leave source
clean
• Interactive configuration via GUI
• Multiple configurations (Debug, Release,
etc.)
• Built-in rules for common targets
– Executables
– Shared Libraries / DLLs
– Static Libraries (archives)
– OS X Frameworks and App Bundles
• Custom rules for other targets
– Generated Documentation
– Generated sources and headers
• Configuration rules
– System introspection
– Persistent variables (options,
cached results)
– Configured header files
![Page 30: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/30.jpg)
CMake Features - continued• Automatic analysis
– Implicit dependencies (C, C++, Fortran)
– Transitive link dependencies
– Ordering of linker search path and RPATH
• Advanced Makefile generation
– Modular, Fast, Parallel
– Color and progress display
– Help targets – make help
– Preprocessor targets – make foo.i
– Assembly targets – make foo.s
![Page 31: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/31.jpg)
Automatic Testing Benefits
“Automated Software Testing,”1999, Dustin, et al, Addison Wesley
![Page 32: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/32.jpg)
CDash Dashboard www.cdash.org
![Page 33: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/33.jpg)
Coverage Display GCov/Bullseye
![Page 34: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/34.jpg)
Video of ParaView Nightly Testing
33
![Page 35: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/35.jpg)
Valgrind / Purify
![Page 36: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/36.jpg)
Kitware Hosted CDash http://my.cdash.org
![Page 37: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/37.jpg)
CPack
• CPack is bundled with CMake
• Creates professional platform specific installers
– TGZ and Self extract TGZ (STGZ), NullSoft Scriptable Install
System (NSIS), OSX PackageMaker, RPM, Deb
![Page 38: Kitware: Qt and Scientific Computing](https://reader034.fdocuments.us/reader034/viewer/2022042506/5551d87cb4c90501638b45cc/html5/thumbnails/38.jpg)
Thank you