Kitware Scientific Computing with Qt
                                        11/16/2009
Bill Hoffman bill.hoffman@kitware....
Overview


• Kitware
   – History and Business Model

• Qt at Kitware
   – past, present and Future

• CMake/CTest/CDash

...
Kitware: the Company

• Founded in 1998

• Founders: 5 previous employees of GE Corporate Research

• Privately held, prof...
Business Model

•   Open source software
    – Services and support

    – Consulting

    – Collaborative R&D

•   Commer...
Kitware: Core Technologies


  Supercomputing                                      Medical
   Visualization               ...
Supercomputing Visualization
• Transform complex, large data into visual representations
  that are easier to understand a...
Supercomputing Visualization
(2)
• Informatics
Supercomputing 3D Interaction
Widgets
Supercomputing Visualization

• Applicable software
  – VTK (the Visualization Toolkit)

  – ParaView (Parallel Visualizat...
Medical Imaging

• Process, analyze and visualize medical data
  – Image processing- operate on images to extract
    info...
Medical Imaging
•   Applicable Software
    –   ITK (Insight Segmentation and Registration Toolkit)
    –   IGSTK (Image G...
Computer Vision

•   Extract information from images
    or video streams
VTK
National Library of Medicine
                           Segmentation and Registration Toolkit



$13 million over 6 years
...
ParaView
•   Parallel Visualization application
•   Turn-key wrapper around VTK
•   Supports parallel data processing and
...
Kitware GUI History

• 1999 – 2009 C++ GUI Choices
  –   tcl/TK
  –   FLTK -> LGPL
  –   Qt -> GPL
  –   GTK
  –   WxWidge...
Kitware Qt GPL projects

• ParaQ ParaView (converted from KWWidgets)
 2005
  – Pay to keep BSD license on ParaView/VTK

• ...
Slider - image-to-image
registration app




                          17
Qt LGPL Changes Everything!


• Scientists and Engineers can focus on the
  science and not on GUI widgets and license
  i...
3D Slicer
•   Is a multi-platform, open source software for bio-medical
    computing

•   Initially implemented
    using...
CMake – Cross Platform Build
System
• Why CMake?

• CMake Features

• Where to get help
  – Mastering CMake Book

  – Web ...
Why CMake? It’s easy, and
works well
                        Typical Project without CMake (curl)
• A build system        ...
Why CMake? It’s fast

http://blog.qgis.org/?q=node/16 : “I was quite surprised with
  the speed of building Quantum GIS co...
Why CMake? Everyone is using it
             KDE 2006 – Tipping Point!




 • 800+ downloads per day from www.cmake.org
 •...
What Is CMake?
• Family of Software Development Tools
  – Build – CMake

  – Test – CTest/CDash

  – Package – CPack

• Op...
How CMake Changes The Way We Build
C++
• Boost aims to give C++ a set of useful libraries like Java,
  Python, and C#

• C...
Who Is Involved?
Users                       Supporters
•   KDE
                            • Kitware
•   Second Life
•   ...
CMake Features
•   One simple language for all platforms              •   Built-in rules for common targets
     –      Wi...
CMake Features - continued
• Automatic analysis
   – Implicit dependencies (C, C++, Fortran)

   – Transitive link depende...
Automatic Testing Benefits




         “Automated Software Testing,”
       1999, Dustin, et al, Addison Wesley
CDash Dashboard
www.cdash.org
Coverage Display   GCov/Bullseye
Video of ParaView Nightly
Testing




                            33
Valgrind / Purify
Kitware Hosted CDash
http://my.cdash.org
CPack
• CPack is bundled with CMake

• Creates professional platform specific installers
   – TGZ and Self extract TGZ (ST...
Thank you
Kitware: Qt and Scientific Computing
Upcoming SlideShare
Loading in...5
×

Kitware: Qt and Scientific Computing

3,750

Published on

Kitware is involved with Qt in two main areas. First, Kitware is the provider of the CMake (www.cmake.org) build tool which is used to build KDE, the flagship open source Qt project. In addition, Kitware has been using Qt for the ParaView (www.paraview.org) project. ParaView is an open-source, multi-platform data analysis and visualization application. With the recent change in Qt licensing Kitware is also starting to use Qt for many other open source scientific and medical projects. For cross platform C++ GUI development Qt now stands alone as really the only viable choice. This talk will cover the CMake build system, and the impact Qt and Qt derived projects are having on state of the art scientific computation.

Presentation by BIll Hoffman held during Qt Developer Days 2009.

http://qt.nokia.com/developer/learning/elearning

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,750
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
80
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Kitware: Qt and Scientific Computing

  1. 1. Kitware Scientific Computing with Qt 11/16/2009 Bill Hoffman bill.hoffman@kitware.com
  2. 2. Overview • Kitware – History and Business Model • Qt at Kitware – past, present and Future • CMake/CTest/CDash 1
  3. 3. Kitware: the Company • Founded in 1998 • Founders: 5 previous employees of GE Corporate Research • Privately held, profitable from creation, no debt – Revenues projected at $9 million in 2009 • ~$14 million if subcontractors included – Principally consulting/grants, with support product revenue • Approximately 65 employees; growing rapidly (30% in 2009) – > 25 PhD
  4. 4. 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
  5. 5. Kitware: Core Technologies Supercomputing Medical Visualization Imaging • Large data • Registration • Parallel computing • Segmentation • Client / Server • Image Processing • Web / grid architectures • Measurement • Human/Computer • Responsive GUI Interaction Software Process Open-Source Computer Toolkits Vision • Insight ToolKit (ITK) Expertise in: • VisualizationToolkit (VTK) • Behavior/event recognition • CMake • Detection and tracking • ParaView • Segmentation • Publications and consulting • Change Detection
  6. 6. Supercomputing Visualization • Transform complex, large data into visual representations that are easier to understand and interact with
  7. 7. Supercomputing Visualization (2) • Informatics
  8. 8. Supercomputing 3D Interaction Widgets
  9. 9. 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
  10. 10. 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
  11. 11. 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)
  12. 12. Computer Vision • Extract information from images or video streams
  13. 13. VTK
  14. 14. National Library of Medicine Segmentation and Registration Toolkit $13 million over 6 years Leading edge algorithms Open Source Software www.itk.org
  15. 15. ParaView • 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
  16. 16. 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
  17. 17. 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
  18. 18. Slider - image-to-image registration app 17
  19. 19. 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.
  20. 20. 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
  21. 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: cmake@cmake.org 21
  22. 22. Why CMake? It’s easy, and works well Typical Project without CMake (curl) • A build system $ ls CHANGES RELEASE-NOTES curl-config.in missing CMake acinclude.m4 curl-style.el mkinstalldirs that just works CMakeLists.txt build docs aclocal.m4 depcomp notes~ notes COPYING buildconf include packages CVS buildconf.bat install-sh reconf ChangeLog compile lib sample.emacs Makefile config.guess libcurl.pc.in src Makefile.am config.sub ltmain.sh tests Makefile.in configure m4 vc6curl.dsw README configure.ac maketgz • A build system $ ls src/ CMakeLists.txt Makefile.riscos curlsrc.dsp hugehelp.h version.h CVS Makefile.vc6 curlsrc.dsw macos writeenv.c that is easy to use Makefile.Watcom Makefile.vc8 Makefile.am curlutil.c main.c writeenv.h config-amigaos.h curlutil.h makefile.amiga writeout.c Makefile.b32 config-mac.h getpass.c makefile.dj writeout.h cross platform Makefile.in Makefile.inc config-riscos.h getpass.h mkhelp.pl config-win32.h homedir.c setup.h Makefile.m32 config.h.in homedir.h urlglob.c Makefile.netware curl.rc hugehelp.c urlglob.h 22
  23. 23. 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. “
  24. 24. Why CMake? Everyone is using it KDE 2006 – Tipping Point! • 800+ downloads per day from www.cmake.org • Major Linux distributions and Cygwin provide CMake packages • KDE, Second Life, Boost (Expermentally), many others
  25. 25. 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
  26. 26. 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
  27. 27. Who Is Involved? Users Supporters • KDE • Kitware • Second Life • ITK • ARL • VTK • National Library of • ParaView Medicine • Trilinos • Scribus • Sandia National Labs • Boost (Experimentaly) • Los Alamos National • Mysql Labs • many more • NAMIC 27
  28. 28. CMake Features • One simple language for all platforms • Built-in rules for common targets – Windows, Mac, Linux, UNIX variants – Executables – Embedded platforms via cross-compilation – Shared Libraries / DLLs • Generates native build systems – Static Libraries (archives) – Makefiles (GNU, NMake, Borland, etc.) – OS X Frameworks and App Bundles – KDevelop, Eclipse – Visual Studio 6,7,8,9 IDE • Custom rules for other targets – Xcode – Generated Documentation • Out-of-source build trees leave source – Generated sources and headers clean • Configuration rules • Interactive configuration via GUI – System introspection • Multiple configurations (Debug, Release, – Persistent variables (options, etc.) cached results) – Configured header files
  29. 29. 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
  30. 30. Automatic Testing Benefits “Automated Software Testing,” 1999, Dustin, et al, Addison Wesley
  31. 31. CDash Dashboard www.cdash.org
  32. 32. Coverage Display GCov/Bullseye
  33. 33. Video of ParaView Nightly Testing 33
  34. 34. Valgrind / Purify
  35. 35. Kitware Hosted CDash http://my.cdash.org
  36. 36. 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
  37. 37. Thank you
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×