Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey Cline, Gabe Hart, Ghassam Hamarech, John Galeotti, Raghu.

Slides:



Advertisements
Similar presentations
Support for Time in ITK Patrick Reynolds Patrick Cheng John Galeotti Arnaud Gelas.
Advertisements

SWIG Many languages Large user base Highly customizable.
STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
Accelerators for HPC: Programming Models Accelerators for HPC: StreamIt on GPU High Performance Applications on Heterogeneous Windows Clusters
OpenCV Introduction Hang Xiao Oct 26, History  1999 Jan : lanched by Intel, real time machine vision library for UI, optimized code for intel 
 Open standard for parallel programming across heterogenous devices  Devices can consist of CPUs, GPUs, embedded processors etc – uses all the processing.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
On Using Ice Middleware in the IARnet Framework Oleg Sukhoroslov Institute for Systems Analysis, RAS, Moscow Distributed Computing Systems Laboratory.
Slide 1 Visualization of scientific data under Linux - Techniques and data wrangling Mike Walterman, Manager of Graphics Programming, Scientific Computing.
Chapter 3.2 C++, Java, and Scripting Languages. 2 C++ C used to be the most popular language for games Today, C++ is the language of choice for game development.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
1 Java (vs. C++). 2 Object-oriented Programming Java and C++ are the most popular object-oriented programming languages Java Sun Microsystems in 1990.
An Apogee CCD Instrument Module for Chimera Cid Meyers, Earl Bellinger, Adam Biesenbach, Joshua Brown, Joshua Primrose, Dennis Quill, Antonio Kanaan, Paulo.
Language Issues Misunderstimated? Sublimable? Hopefuller? "I know how hard it is for you to put food on your family.” "I know the human being and fish.
CGI Programming Languages Web Based Software Development July 21, 2005 Song, JaeHa.
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
Introduction of Some Useful Free Software Cheng-Han Du.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Computational Platform Jim Miller GE Research.
Getting Started with ITK in Python Language
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Core 1b – Engineering Dynamic Coding a.k.a. Python in Slicer
Common Object Request Broker Architecture (CORBA) CS-328.
T EACHING ITK: T HOUGHTS FOR V ERSION 4 John Galeotti February 3, 2011.
Data Formats CMSC 491 Hadoop-Based Distributed Computing Spring 2015 Adam Shook.
H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Research Issues in CORBA What keeps CORBA people awake at Night! Peter de Jong.
Extending ArcGIS for Server
The Scientific Software Initiative at the APS Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting October , 2007 ICALEPCS Meeting, Knoxville,
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Writing Perl Extensions: There’s more than one way to do it.
The netCDF-4 data model and format Russ Rew, UCAR Unidata NetCDF Workshop 25 October 2012.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
計算機視覺 (Computer Vision) 課程簡介 Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
NIH NCRR Overview The SCIRun and BioPSE Problem Solving Environments Chris Johnson, Rob MacLeod, and David Weinstein Scientific Computing and Imaging Institute.
NA-MIC National Alliance for Medical Image Computing ParaView Server Manager Berk Geveci Andy Cedilnik.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Artifact Management Managing Maven and other artifacts in Perforce.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Powered by Microsoft Azure, PointMatter Is a Flexible Solution to Move and Share Data between Business Groups and IT MICROSOFT AZURE ISV PROFILE: LOGICMATTER.
 Programming - the process of creating computer programs.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
SimITK/SimVTK: Model Driven Engineering for Medical Imaging 1.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
20 September 2006IVOA Meeting Moscow Plastic – Latest developments John Taylor Thomas Boch Marco Comparato Mark Taylor Noel.
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Programming with the DRMAA OGF Standard.
Bill Hoffman, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey Cline, Gabe Hart, Ghassam Hamarech, John Galeotti, Raghu.
Apache Avro CMSC 491 Hadoop-Based Distributed Computing Spring 2016 Adam Shook.
Unidata Infrastructure for Data Services Russ Rew GO-ESSP Workshop, LLNL
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Data Management Daniel Marcus Washington University.
Congreso Cuidad, Spain May 15, 2007 GridWay 1/27, Programming with the DRMAA OGF Standard GridWay Distributed Systems Architecture Group Universidad Complutense.
ITKv4 Image Interpretation Layer. ITK - IO ImageIOBase VectorImage NumberOfComponents IOComponentType IOPixelType ConvertPixelBuffer Nested Switchs Based.
ITK Video ITK Extensions for Video Processing
Pixy Python API Charlotte Weaver.
Pipeline Execution Environment
New trends in parallel computing
SimpleITK Historical Overview: Standing on the Shoulders of Giants
SimpleITK Historical Overview: Standing on the Shoulders of Giants
TOSCA-Metadata (directory )
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
NAMIC Software Development Workshop
TOSCA-Metadata (directory )
EXTENSION AND INTEGRATION
The SCIRun and BioPSE Problem Solving Environments
Java Programming Review 1
Type Conversion It is a procedure of converting one data type values into another data type In C programming language we are having two types of type conversion.
Implementing FOP Framework
SimpleITK Historical Overview: Standing on the Shoulders of Giants
Web Application Development Using PHP
Presentation transcript:

Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey Cline, Gabe Hart, Ghassam Hamarech, John Galeotti, Raghu Machiraju, Hans Johnson, Wes Turner, Luis Ibanez, Terry Yoo SimpleITK Status

Problem 2

Complexity Powerful but complex Powerful but complex Steep learning curve Steep learning curve Mainly C++ Mainly C++ 2 pages of GCC error messages 2 pages of GCC error messages ITK often unused ITK often unused But it’s the best... But it’s the best... 3

Audience Students Students Grad students Grad students Researchers Researchers Microscopy Microscopy Computer vision Computer vision Remote sensing Remote sensing Application developers Application developers 4

Goals Simple Simple “On ramp” “On ramp” Wrapping Wrapping Integration Integration In apps In apps With ITK, VTK, etc With ITK, VTK, etc Extensible Extensible 5

Survey Says! 214 respondents 214 respondents Takeaways Takeaways Compiled packages Compiled packages 3D & 4D 3D & 4D Out of core processing Out of core processing Object model Object model char, short, float/double, vector char, short, float/double, vector Visualization Visualization 6 Gabe Hart

Decisions API API Datatypes Datatypes Dimensionality Dimensionality Pipeline? Pipeline? Out of core processing Out of core processing Wrapping Wrapping Distribution Distribution 7

Strawman Proposal Object model Object model 3D images (& slice-by-slice for 2D) 3D images (& slice-by-slice for 2D) 4D as vector of images 4D as vector of images char, short, float (double?) char, short, float (double?) No exposed pipeline No exposed pipeline Out of core orchestration framework Out of core orchestration framework VOI readers/writers VOI readers/writers Call list of filters / handle boundaries Call list of filters / handle boundaries SWIG wrapping SWIG wrapping 8

API Procedural / functional? Procedural / functional? 9

Data types Which to support? Which to support? Scalar in all filters? Scalar in all filters? Vector in limited set? Vector in limited set? How to support? How to support? Dynamic loading? Dynamic loading? Compile time configured? Compile time configured? Template meta programming Template meta programming 10

Dimensionality 3D critical 3D critical 4D nice 4D nice How to support? How to support? 4D == vector of 3D images? 4D == vector of 3D images? 4D == 3D with vector pixels? 4D == 3D with vector pixels? 11

Pipeline Unnecessary complexity Unnecessary complexity Utility in streaming Utility in streaming Not (fully) implemented in ITK Not (fully) implemented in ITK 12

Out of core processing Essential Essential ITK Pipeline? ITK Pipeline? OpenCL model? OpenCL model? single pixel kernel pixel single pixel kernel pixel called for all called for all 13

Wrapping SWIG SWIG Languages Languages Matlab Matlab Python Python Java Java C# C# Others: Tcl, R, Perl, Ruby... Others: Tcl, R, Perl, Ruby... 14

Distribution Binary Binary Matlab (somehow) Matlab (somehow) Python egg Python egg Java jar Java jar C++ lib/dll/so & include C++ lib/dll/so & include Source Source Less useful Less useful 15

Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey Cline, Gabe Hart, Ghassam Hamarech, John Galeotti, Raghu Machiraju, Hans Johnson, Wes Turner, Luis Ibanez, Terry Yoo SimpleITK Status