system overview cibc scirun / biopse system overview

63
System Overview CIBC SCIRun / BioPSE System Overview

Upload: ronald-summers

Post on 12-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

SCIRun / BioPSESystem OverviewSCIRun / BioPSESystem Overview

Page 2: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Problem Solving Environments (PSEs)Problem Solving Environments (PSEs)

CoreMemory MgmtProcess Mgmt

FrameworkLibraries

Modeling

Simulation AnalysisCore

PSEPSE

Chemistry Physics

Medicine

Biology

Astronomy

Geoscience

Page 3: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Integration and InteractionIntegration and Interaction

Modeling

Simulation

Visualization

userguides

What If?

Page 4: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

SCIRun GoalsSCIRun Goals

Integration Extensibility

UsabilityInteractivity

Portability Utility

Modeling

Simulation AnalysisCore

SCIRunSCIRun

Page 5: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

SCIRun and BioPSESCIRun and BioPSE

Page 6: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

OverviewOverview• Computational Science• Problem Solving Environments• Dataflow• Datatypes• Software Organization• Extensibility• PowerApps

Page 7: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Elements of SCIRunElements of SCIRun

Visual programming Environment

Page 8: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

Page 9: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

Page 10: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

MODULE

void execute() { // get data from ports // get data from UI // … do work … // set data on UI // send data out ports}

Page 11: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Module StatusModule Status

• Run-time messages are sent to the module’s “log”

Startup messagesStartup messages

Log message indicatorGray: no messagesRed: errorBlue: warning/remark

Log message indicatorGray: no messagesRed: errorBlue: warning/remark

Page 12: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Example Module: CastMatrixExample Module: CastMatrix

SCIRun/src/Dataflow/ Modules/Math/CastMatrix.cc

GUI/CastMatrix.xml

XML/CastMatrix.xml

Page 13: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

Page 14: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

….sendget……

Page 15: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

Page 16: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI Matrix

Page 17: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI Matrix

Field

ColorMapGeometry

Page 18: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network ElementsNetwork Elements• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

– GuiVars

Page 19: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network DesignNetwork Design• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

• Send and Get• GuiVars• Scheduler

• Dependencies• loops: send_intermediate

Page 20: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Network DesignNetwork Design• Dataflow Vocabulary

• Module• Dataport• Datapipe• UI

• Send and Get• GuiVars• Scheduler

• Dependencies• loops: send_intermediate

Page 21: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Packages and CategoriesPackages and Categories

Page 22: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: SubnetsManaging Complexity: Subnets

Page 23: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: SubnetsManaging Complexity: Subnets

Page 24: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: SubnetsManaging Complexity: Subnets

Page 25: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: SubnetsManaging Complexity: Subnets

Page 26: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: SubnetsManaging Complexity: Subnets

Page 27: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: SubnetsManaging Complexity: Subnets

Page 28: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: SubnetsManaging Complexity: Subnets

Page 29: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: AnnotationsManaging Complexity: Annotations

Page 30: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

build-fem-elem-leadfield.netbuild-fem-elem-leadfield.net

Page 31: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

dipole-localization-leadfield-vis.netdipole-localization-leadfield-vis.net

Page 32: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

build-misfit-and-localize.netbuild-misfit-and-localize.net

Page 33: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

showmatrix.netshowmatrix.net

Page 34: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

show-text.netshow-text.net

Page 35: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Dataflow Datatypes RevisitedDataflow Datatypes Revisited

Matrix

Field

ColorMap

Geometry

Page 36: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Matrices: Class HierarchyMatrices: Class Hierarchy• Matrix: base class

• get, put, [ ], nrows, ncols, get_row, get_col, get_val, zero, mult, mult_transpose, print, {is_,as_,}{sparse,dense,column}, cg_solve, bicg_solve, scalar_multiply

• SparseRowMatrix• int *rows, int *cols, double *a, int nnz;

• ColumnMatrix• double *data;

• DenseMatrix• double **data;

Page 37: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Matrices: External LibrariesMatrices: External Libraries

• PETSc• Preconditioners: jacobi, bijacobi, sor,

eisenstat, icc, ilu, asm, sles, lu, mg, spai, milu, nn, cholesky, ramg

• Solvers: KSRICHARDSON, PSPCHEBYCHEV, KSPGG, KSPGMRES, KSPTCQMR, KSPBCGS, KSPBGS, KSPTFQMR, KSPCR, KSPLSQR, KSPBICG, KSPPREONLY

• BLAS and Atlas• Faster linear-algebra via loop unrolling

Page 38: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Fields: Mesh + DataFields: Mesh + Data

Data

int, float, double, …

Vector, Tensor, …

basis

Data

int, float, double, …

Vector, Tensor, …

basis

Geometry

Regular

Irregular (basis)

Geometry

Regular

Irregular (basis)

PropertiesProperties

PointCloudField

ScanlineField CurveField

ImageField QuadSurfField TriSurfField

LatVolField HexVolField TetVolField

Page 39: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

PersistencePersistence• Networks• Serialize data for disk I/O• Architecture independent

• Smart pointers• Byte swapping

• Data files are (somewhat) human readable, but should ~not~ be generated / edited by anything other than SCIRun• Use “convert” programs

Page 40: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

PersistentPersistentvoidMatrix::io(Piostream& stream){ /* int version = */ stream.begin_class("Matrix", MATRIX_VERSION); PropertyManager::io(stream); stream.end_class();}

void ColumnMatrix::io(Piostream& stream){ /* int version = */stream.begin_class("ColumnMatrix", COLUMNMATRIX_VERSION); Matrix::io(stream);

stream.io(rows); if(stream.reading()) { data=scinew double[rows]; } int i; for(i=0;i<rows;i++) stream.io(data[i]); stream.end_class();}

Page 41: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Example DatasetsExample Datasets

Page 42: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

OverviewOverview• Computational Science• Problem Solving Environments• Dataflow• Datatypes• Software Organization• Extensibility• PowerApps

Page 43: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Source Tree OrganizationSource Tree Organization

SCIRunSCIRun

BioPSE MatlabInterfaceBioPSE MatlabInterface

Core Dataflow StandAlone

Packages linux src docsPackages linux src docs

Core: algorithms, datatypes, math, threadsDataflow: network, modules, ports, schedulerStandAlone: converters, utilities

Core: algorithms, datatypes, math, threadsDataflow: network, modules, ports, schedulerStandAlone: converters, utilities

Page 44: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

SCIRun CategoriesSCIRun CategoriesFields

• FieldsCreate– “sources” for new Fields– e.g. SampleLattice, FieldBoundary, ClipByFunction

• FieldsData– Just change data for an existing Field (Mesh untouched)– TransformFieldData, ManageFieldData, DirectMapping /

ApplyMappingMatrix• FieldsGeometry

– Just change geometry for an existing Field (Data untouched)– Unstructure, HexToTet, QuadToTri– TransformField

• FieldsOther– Miscellaneous (FieldInfo, ChooseField, FieldMeasures, …)

Visualization• ColorMaps• Isosurfaces

Page 45: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

ExtensibilityExtensibility

• Leverage existing utilities• Extensibility through bridges

SCIRun

Matlab

mpeg

libimage

Teem

GENESIS

liblib

liblibsocketsocket

liblib

SQLSQL

Page 46: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Three ApproachesThree Approaches

• Data Level• Command line tools to convert files• Communicating data across sockets

• Library Level• Teem, BLAS, ITK

• Application Level• Rewrite algorithms natively in SCIRun

Page 47: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

ConvertersConverters

• Convert between human-editable text (e.g. CVRTI .pts, .dat files) and SCIRun Persistent objects

• See examples in SCIRunData/convert-examples/• Each converter gives you usage info if invoked without

arguments: dmw stitch% TextToHexVolField

Usage: TextToHexVolField pts hexes HexVolMesh [-noPtsCount] [-noElementsCount] [-oneBasedIndexing] [-binOutput] [debug]

This program will read in a .pts (specifying the x/y/z coords of each point, one per line, entries separated by white space, file can have an optional one line header specifying number of points... and if it doesn't, you have to use the -noPtsCount command-line argument) and a .hex file (specifying i/j/k/l/m/n/o/p indices for each hex, also one per line, again with an optional one line header (use -noElementsCount if it's not there). The hex entries are assumed to be zero-based, unless you specify -oneBasedIndexing. And the SCIRun output file is written in ASCII, unless you specify -binOutput.

• Plug-ins for Readers / Writers

Page 48: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Data Import / ExportData Import / Export

Page 49: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

MatlabInterfaceMatlabInterface

Page 50: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Three ApproachesThree Approaches

• Data Level• Command line tools to convert files

• Library Level• Teem, BLAS, ITK

• Application Level• Rewrite algorithms natively in SCIRun

Page 51: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

ITK IntegrationITK Integration

Page 52: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

TeemTeem

Page 53: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

OverviewOverview• Computational Science• Problem Solving Environments• Dataflow• Datatypes• Software Organization• Extensibility• PowerApps

Page 54: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Managing Complexity: UIsManaging Complexity: UIs

Subnets

Annotations

Page 55: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

All Modules are “Generic”All Modules are “Generic”

Page 56: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

PowerApps: User-Friendly, Domain-SpecificPowerApps: User-Friendly, Domain-Specific

Page 57: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Power AppsPower Apps

Page 58: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Power AppsPower Apps

Problem specific applications

•Hide the complexities of dataflow

•Provide a simplified graphical

user interface

•Focus on a specific

Problem specific applications

•Hide the complexities of dataflow

•Provide a simplified graphical

user interface

•Focus on a specifictasktask

Page 59: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Power AppsPower Apps

Guide the user through specific processing stepsGuide the user through specific processing steps

Processing PaneProcessing Pane

Page 60: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

Power AppsPower Apps

Provide different visualization optionsProvide different visualization options

Visualization PaneVisualization Pane

Page 61: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

BioFEM BioFEM

Encapsulation of the forward-fem network Encapsulation of the forward-fem network

http://software.sci.utah.edu/doc/User/Tutorials/BioFEM/BioFEM.htmlhttp://software.sci.utah.edu/doc/User/Tutorials/BioFEM/BioFEM.html

• Change datasets

• Streamlines

• Isosurfaces

• Electrodes

• Change datasets

• Streamlines

• Isosurfaces

• Electrodes

Page 62: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

BioTensorBioTensor

Diffusion Tensor Imaging Processing Steps

•Data Acquisition

•Registration

•Building Tensors

Visualization Options

Diffusion Tensor Imaging Processing Steps

•Data Acquisition

•Registration

•Building Tensors

Visualization Options•Planes

•Isosurfaces

•Planes

•Isosurfaces

•Glyphs

•Fibers

•Glyphs

•Fibers

http://software.sci.utah.edu/doc/User/Tutorials/BioTensor/BioTensor.htmlhttp://software.sci.utah.edu/doc/User/Tutorials/BioTensor/BioTensor.html

Page 63: System Overview CIBC SCIRun / BioPSE System Overview

System Overview

CIBCCIBC

BioImageBioImage

Volume Rendering Processing Steps

•Crop

•Resample

•Histogram Eq

Visualization Options

Volume Rendering Processing Steps

•Crop

•Resample

•Histogram Eq

Visualization Options•Slices

•MIPs

•Slices

•MIPs

•Window Width / Level

•Multi-dimensional Transfer Functions

•Window Width / Level

•Multi-dimensional Transfer Functions

http://software.sci.utah.edu/doc/User/Tutorials/BioImage/BioImage.htmlhttp://software.sci.utah.edu/doc/User/Tutorials/BioImage/BioImage.html