Visualizing and Clustering Life Science Applications in Parallel 

69
Visualizing and Clustering Life Science Applications in Parallel HiCOMB 2015 14th IEEE International Workshop on High Performance Computational Biology at IPDPS 2015 Hyderabad, India May 25 2015 Geoffrey Fox [email protected] http://www.infomall.org School of Informatics and Computing Digital Science Center Indiana University Bloomington 5/25/2015 1

Transcript of Visualizing and Clustering Life Science Applications in Parallel 

Page 1: Visualizing and Clustering Life Science Applications in Parallel 

1

Visualizing and Clustering Life Science Applications in Parallel 

HiCOMB 2015 14th IEEE International Workshop onHigh Performance Computational Biology at IPDPS 2015

Hyderabad, India

May 25 2015Geoffrey Fox

[email protected]             http://www.infomall.org

School of Informatics and ComputingDigital Science Center

Indiana University Bloomington5/25/2015

Page 2: Visualizing and Clustering Life Science Applications in Parallel 

2

Deterministic AnnealingAlgorithms

5/25/2015

Page 3: Visualizing and Clustering Life Science Applications in Parallel 

Some Motivation• Big Data requires high performance – achieve with parallel computing• Big Data sometimes requires robust algorithms as more opportunity 

to make mistakes• Deterministic annealing (DA) is one of better approaches to robust 

optimization and broadly applicable– Started as “Elastic Net” by Durbin for Travelling Salesman Problem 

TSP– Tends to remove local optima– Addresses overfitting– Much Faster than simulated annealing

• Physics systems find true lowest energy state if you anneal i.e. you equilibrate at each temperature as you cool

• Uses mean field approximation, which is also used in “Variational Bayes” and “Variational inference”5/25/2015 3

Page 4: Visualizing and Clustering Life Science Applications in Parallel 

4

(Deterministic) Annealing• Find minimum at high temperature when trivial• Small change avoiding local minima as lower temperature• Typically gets better answers than standard libraries- R and Mahout• And can be parallelized and put on GPU’s etc.

5/25/2015

Page 5: Visualizing and Clustering Life Science Applications in Parallel 

General Features of DA• In many problems, decreasing temperature is classic 

multiscale – finer resolution (√T is “just” distance scale)• In clustering √T is distance in space of points (and 

centroids), for MDS scale in mapped Euclidean space• T = ∞, all points are in same place – the center of universe• For MDS all Euclidean points are at center and distances 

are zero. For clustering, there is one cluster• As Temperature lowered there are phase transitions in 

clustering cases where clusters split– Algorithm determines whether split needed as second derivative 

matrix singular• Note DA has similar features to hierarchical methods and 

you do not have to specify a number of clusters; you need to specify a final distance scale 55/25/2015

Page 6: Visualizing and Clustering Life Science Applications in Parallel 

Math of Deterministic Annealing• H() is objective function to be minimized as a function of 

parameters  (as in Stress formula given earlier for MDS)• Gibbs Distribution at Temperature T

P() = exp( - H()/T) /  d exp( - H()/T)• Or P() = exp( - H()/T + F/T ) • Use the Free Energy combining Objective Function and Entropy

F = < H - T S(P) > =  d {P()H + T P() lnP()}• Simulated annealing performs these integrals by Monte Carlo• Deterministic annealing corresponds to doing integrals analytically 

(by mean field approximation) and is much much faster • Need to introduce a modified Hamiltonian for some cases so that 

integrals are tractable. Introduce extra parameters to be varied so that modified Hamiltonian matches original

• In each case temperature is lowered slowly – say by a factor 0.95 to 0.9999 at each iteration5/25/2015 6

Page 7: Visualizing and Clustering Life Science Applications in Parallel 

Some Uses of Deterministic Annealing DA• Clustering improved K-means

– Vectors:  Rose (Gurewitz and Fox 1990 – 486 citations encouraged me to revisit) – Clusters with fixed sizes and no tails (Proteomics team at Broad)

– No Vectors: Hofmann and Buhmann (Just use pairwise distances)

• Dimension Reduction for visualization and analysis 

– Vectors: GTM Generative Topographic Mapping

– No vectors SMACOF: Multidimensional Scaling) MDS (Just use pairwise distances)

• Can apply to HMM &  general mixture models (less study)

– Gaussian Mixture Models

– Probabilistic Latent Semantic Analysis with Deterministic Annealing DA-PLSA as alternative to Latent Dirichlet Allocation for finding “hidden factors” 

• Have scalable parallel versions of much of above – mainly Java

• Many clustering methods – not clear what is best although DA pretty good and improves K-means at increased computing cost which is not always useful

• DA clearly improves MDS which is ~only reliable” dimension reduction?5/25/2015 7

Page 8: Visualizing and Clustering Life Science Applications in Parallel 

8

Clusters v. Regions

• In Lymphocytes clusters are distinct; DA useful• In Pathology, clusters divide space into regions and 

sophisticated methods like deterministic annealing are probably unnecessary

Pathology 54D

Lymphocytes 4D

5/25/2015

Page 9: Visualizing and Clustering Life Science Applications in Parallel 

9

Some Problems we are working on• Analysis of Mass Spectrometry data to find peptides by 

clustering peaks (Broad Institute/Hyderabad)– ~0.5 million points in 2 dimensions (one collection) --  ~ 50,000 

clusters summed over charges

• Metagenomics – 0.5  million (increasing rapidly) points NOT in a vector space – hundreds of clusters per sample– Apply MDS to Phylogenetic trees

• Pathology Images >50 Dimensions• Social image analysis is in a highish dimension vector space

– 10-50 million images; 1000 features per image; million clusters

• Finding communities from network graphs coming from Social media contacts etc.5/25/2015

Page 10: Visualizing and Clustering Life Science Applications in Parallel 

5/25/2015 10

MDS and Clustering on ~60K EMR 

Page 11: Visualizing and Clustering Life Science Applications in Parallel 

5/25/2015 11

Colored by Sample – not clustered.Distances from vectors in word space. This 128 4mers for ~200K sequences

Page 12: Visualizing and Clustering Life Science Applications in Parallel 

12

Examples of current DA algorithms: LCMS

5/25/2015

Page 13: Visualizing and Clustering Life Science Applications in Parallel 

13

Background on LC-MS• Remarks of collaborators – Broad Institute/Hyderabad• Abundance of peaks in “label-free” LC-MS enables large-scale comparison of 

peptides among groups of samples. • In fact when a group of samples in a cohort is analyzed together, not only is it 

possible to “align” robustly or cluster the corresponding peaks across samples, but it is also possible to search for patterns or fingerprints of disease states which may not be detectable in individual samples. 

• This property of the data lends itself naturally to big data analytics for biomarker discovery and is especially useful for population-level studies with large cohorts, as in the case of infectious diseases and epidemics. 

• With increasingly large-scale studies, the need for fast yet precise cohort-wide clustering of large numbers of peaks assumes technical importance. 

• In particular, a scalable parallel implementation of a cohort-wide peak clustering algorithm for LC-MS-based proteomic data can prove to be a critically important tool in clinical pipelines for responding to global epidemics of infectious diseases like tuberculosis, influenza, etc. 

5/25/2015

Page 14: Visualizing and Clustering Life Science Applications in Parallel 

Proteomics 2D DA Clustering T= 25000 with 60 Clusters (will be 30,000 at T=0.025)

5/25/2015 14

Page 15: Visualizing and Clustering Life Science Applications in Parallel 

15

The brownish triangles are “sponge” (soaks up trash)  peaks outside any cluster. The colored hexagons are peaks inside clusters with the white hexagons being determined cluster center

Fragment of 30,000 Clusters241605 Points

5/25/2015

Page 16: Visualizing and Clustering Life Science Applications in Parallel 

16

Continuous Clustering• This is a very useful subtlety introduced by Ken Rose but not widely known 

although it greatly improves algorithm• Take a cluster k to be split into 2 with centers Y(k)A and Y(k)B with initial 

values Y(k)A = Y(k)B at original center Y(k)• Then typically if you make this change

 and perturb the Y(k)A and Y(k)B, they will return to starting position as F at stable minimum (positive eigenvalue) 

• But instability (the negative eigenvalue) can develop and one finds

• Implement by adding arbitrary number p(k) of centers for each cluster Zi = k=1

K p(k) exp(-i(k)/T) and M step gives p(k) = C(k)/N• Halve p(k) at splits; can’t split easily in standard case p(k) = 1• Show weighting in sums like Zi now equipoint not equicluster as p(k)

proportional to points C(k) in cluster

Free Energy F

Y(k)A and Y(k)B

Y(k)A + Y(k)B

Free Energy F Free Energy F

Y(k)A - Y(k)B

5/25/2015

Page 17: Visualizing and Clustering Life Science Applications in Parallel 

Trimmed Clustering• Clustering with position-specific constraints on variance: Applying

redescending M-estimators to label-free LC-MS data analysis (Rudolf Frühwirth , D R Mani  and Saumyadipta Pyne) BMC Bioinformatics 2011, 12:358

• HTCC = k=0K i=1

N Mi(k) f(i,k)– f(i,k) = (X(i) - Y(k))2/2(k)2    k > 0– f(i,0) = c2 / 2                             k = 0

• The 0’th cluster captures (at zero temperature) all points outside clusters (background)

• Clusters are trimmed (X(i) - Y(k))2/2(k)2 < c2 / 2 

• Relevant when well defined errors

T ~ 0T = 1

T = 5

Distance from cluster center

5/25/2015 17

Page 18: Visualizing and Clustering Life Science Applications in Parallel 

1.00E-031.00E-021.00E-011.00E+001.00E+011.00E+021.00E+031.00E+041.00E+051.00E+060

10000

20000

30000

40000

50000

60000

DAVS(2) DA2D

Temperature

Clus

ter C

ount

Start Sponge DAVS(2)

Add Close Cluster Check

Sponge Reaches final value

Cluster Count v. Temperature for 2 Runs

• All start with one cluster at far left• T=1 special as measurement errors divided out• DA2D counts clusters with 1 member as clusters. DAVS(2) does not5/25/2015 18

Page 19: Visualizing and Clustering Life Science Applications in Parallel 

19

Simple Parallelism as in k-means• Decompose points i over processors• Equations either pleasingly parallel “maps” over i• Or “All-Reductions” summing over i for each cluster• Parallel Algorithm:

– Each process holds all clusters and calculates contributions to clusters from points in node

– e.g. Y(k) = i=1N <Mi(k)> Xi / C(k)

• Runs well in MPI or MapReduce– See all the MapReduce k-means papers

5/25/2015

Page 20: Visualizing and Clustering Life Science Applications in Parallel 

20

Better Parallelism• The previous model is correct at start but each point does 

not really contribute to each cluster as damped exponentially by exp( - (Xi- Y(k))2 /T ) 

• For Proteomics problem, on average only 6.45 clusters needed per point if require (Xi- Y(k))2 /T ≤ ~40 (as exp(-40) small)

• So only need to keep nearby clusters for each point• As average number of Clusters ~ 20,000, this gives a factor 

of ~3000 improvement• Further communication is no longer all global; it has 

nearest neighbor components and calculated by parallelism over clusters which can be done in parallel if separated5/25/2015

Page 21: Visualizing and Clustering Life Science Applications in Parallel 

21

Speedups for several runs on Tempest from 8-way through 384 way MPI parallelism with one thread per process. We look at different choices for MPI processes which are either inside nodes or on separate nodes

5/25/2015

Page 22: Visualizing and Clustering Life Science Applications in Parallel 

22

Parallelism within a Single Node of Madrid Cluster. A set of runs on 241605 peak data with a single node with 16 cores with either threads or MPI giving parallelism. Parallelism is either number of threads or number of MPI processes.

Parallelism (#threads or #processes)5/25/2015

Page 23: Visualizing and Clustering Life Science Applications in Parallel 

METAGENOMICS -- SEQUENCE CLUSTERING

Non-metric SpacesO(N2) Algorithms – Illustrate Phase Transitions

5/25/2015 23

Page 24: Visualizing and Clustering Life Science Applications in Parallel 

24

• Start at T= “” with 1 Cluster

• Decrease T, Clusters emerge at instabilities

5/25/2015

Page 25: Visualizing and Clustering Life Science Applications in Parallel 

255/25/2015

Page 26: Visualizing and Clustering Life Science Applications in Parallel 

265/25/2015

Page 27: Visualizing and Clustering Life Science Applications in Parallel 

446K sequences~100 clusters

5/25/2015 27

Page 28: Visualizing and Clustering Life Science Applications in Parallel 

METAGENOMICS -- SEQUENCE CLUSTERING

Non-metric SpacesO(N2) Algorithms – Compare Other Methods

5/25/2015 28

Page 29: Visualizing and Clustering Life Science Applications in Parallel 

29

“Divergent” Data Sample23 True Clusters

CDhitUClust

Divergent Data Set                                                                                      UClust (Cuts 0.65 to 0.95) DAPWC 0.65 0.75 0.85 0.95Total # of clusters                                                            23           4           10       36         91Total # of clusters uniquely identified                                        23           0            0        13         16(i.e. one original cluster goes to 1 uclust cluster )Total # of shared clusters with significant sharing                     0            4           10         5           0(one uclust cluster goes to > 1 real cluster)   Total # of uclust clusters that are just part of a real cluster     0            4           10      17(11)  72(62)(numbers in brackets only have one member) Total # of real clusters that are 1 uclust cluster                         0            14            9          5          0but uclust cluster is spread over multiple real clusters Total # of real clusters that have                                                  0              9           14         5          7significant contribution from > 1 uclust cluster  

DA-PWC

5/25/2015

Page 30: Visualizing and Clustering Life Science Applications in Parallel 

PROTEOMICS

No clear clusters

5/25/2015 30

Page 31: Visualizing and Clustering Life Science Applications in Parallel 

Protein Universe Browser for COG Sequences with a few illustrative biologically identified clusters

315/25/2015

Page 32: Visualizing and Clustering Life Science Applications in Parallel 

Heatmap of biology distance (Needleman-Wunsch) vs 3D Euclidean Distances

32

If d a distance, so is f(d) for any monotonic f. Optimize choice of f5/25/2015

Page 33: Visualizing and Clustering Life Science Applications in Parallel 

O(N2) ALGORITHMS?

5/25/2015 33

Page 34: Visualizing and Clustering Life Science Applications in Parallel 

Algorithm Challenges• See NRC Massive Data Analysis report• O(N) algorithms for O(N2) problems • Parallelizing Stochastic Gradient Descent• Streaming data algorithms – balance and interplay between batch 

methods (most time consuming) and interpolative streaming methods• Graph algorithms – need shared memory?• Machine Learning Community uses parameter servers; Parallel 

Computing (MPI) would not recommend this?– Is classic distributed model for “parameter service” better?

• Apply best of parallel computing – communication and load balancing – to Giraph/Hadoop/Spark

• Are data analytics sparse?; many cases are full matrices• BTW Need Java Grande – Some C++ but Java most popular in ABDS, 

with Python, Erlang, Go, Scala (compiles to JVM) …..5/25/2015 34

Page 35: Visualizing and Clustering Life Science Applications in Parallel 

O(N2) interactions between green and purple clusters should be able to represent by centroids as in Barnes-Hut.

Hard as no Gauss theorem; no multipole expansion and points really in 1000 dimension space as clustered before 3D projection

O(N2) green-green and purple-purple interactions have value but green-purple are “wasted”

“clean” sample of 446K

5/25/2015 35

Page 36: Visualizing and Clustering Life Science Applications in Parallel 

36

Use Barnes Hut OctTree, originally developed to make O(N2) astrophysics O(NlogN), to give similar speedups in machine learning

5/25/2015

Page 37: Visualizing and Clustering Life Science Applications in Parallel 

37

OctTree for 100K sample of Fungi

We use OctTree for logarithmic interpolation (streaming data)

5/25/2015

Page 38: Visualizing and Clustering Life Science Applications in Parallel 

Fungi Analysis

5/25/2015 38

Page 39: Visualizing and Clustering Life Science Applications in Parallel 

Fungi Analysis• Multiple Species from multiple places• Several sources of sequences starting with 446K and eventually 

boiled down to ~10K curated sequences with 61 species• Original sample – clustering and MDS• Final sample – MDS and other clustering methods• Note MSA and SWG gives similar results• Some species are clearly split• Some species are diffuse; others compact making a fixed distance 

cut unreliable– Easy for humans!

• MDS very clear on structure and clustering artifacts• Why not do “high-value” clustering as interactive iteration driven 

by MDS?5/25/2015 39

Page 40: Visualizing and Clustering Life Science Applications in Parallel 

Fungi -- 4 Classic Clustering Methods

5/25/2015 40

Page 41: Visualizing and Clustering Life Science Applications in Parallel 

5/25/2015 41

Page 42: Visualizing and Clustering Life Science Applications in Parallel 

5/25/2015 42

Page 43: Visualizing and Clustering Life Science Applications in Parallel 

5/25/2015 43

Same Species

Page 44: Visualizing and Clustering Life Science Applications in Parallel 

5/25/2015 44

Same Species Different Locations

Page 45: Visualizing and Clustering Life Science Applications in Parallel 

Parallel Data Mining

5/25/2015 45

Page 46: Visualizing and Clustering Life Science Applications in Parallel 

Parallel Data Analytics• Streaming algorithms have interesting differences but• “Batch” Data analytics is “just classic parallel computing” with usual 

features such as SPMD and BSP • Expect similar systematics to simulations where• Static Regular problems are straightforward but• Dynamic Irregular Problems are technically hard and high level 

approaches fail (see High Performance Fortran HPF)– Regular meshes worked well but– Adaptive dynamic meshes did not although “real people with MPI” could 

parallelize• However using libraries is successful at either

– Lowest: communication level– Higher: “core analytics” level

• Data analytics does not yet have “good regular parallel libraries”– Graph analytics has most attention5/25/2015 46

Page 47: Visualizing and Clustering Life Science Applications in Parallel 

47

Remarks on Parallelism I• Maximum Likelihood or 2 both lead to objective functions like• Minimize sum items=1

N (Positive nonlinear function of unknown

parameters for item i)

• Typically decompose items i and parallelize over both i and parameters to be determined

• Solve iteratively with (clever) first or second order approximation to shift in objective function– Sometimes steepest descent direction; sometimes Newton– Have classic Expectation Maximization structure– Steepest descent shift is sum over shift calculated from each point

• Classic method – take all (millions) of items in data set and move full distance– Stochastic Gradient Descent SGD – take randomly a few hundred of 

items in data set and calculate shifts over these and move a tiny distance

– SGD cannot parallelize over items

5/25/2015

Page 48: Visualizing and Clustering Life Science Applications in Parallel 

48

Remarks on Parallelism II• Need to cover non vector semimetric and vector spaces for 

clustering and dimension reduction (N points in space)• Semimetric spaces just have pairwise distances defined between 

points in space (i, j) • MDS Minimizes Stress and illustrates this

(X) = i<j=1N weight(i,j) ((i, j) - d(Xi , Xj))2 

• Vector spaces have Euclidean distance and scalar products– Algorithms can be O(N) and these are best for clustering but for MDS O(N) 

methods may not be best as obvious objective function O(N2)– Important new algorithms needed to define O(N) versions of current O(N2) – 

“must” work intuitively and shown in principle

• Note matrix solvers often use conjugate gradient – converges in 5-100 iterations – a big gain for matrix with a million rows. This removes factor of N in time complexity

• Ratio of #clusters to #points important; new clustering ideas if ratio >~ 0.1 5/25/2015

Page 49: Visualizing and Clustering Life Science Applications in Parallel 

Problem Structure• Note learning networks have huge number of parameters (11 billion 

in Stanford work) so that inconceivable to look at second derivative• Clustering and MDS have lots of parameters but can be practical to 

look at second derivative and use Newton’s method to minimize• Parameters are determined in distributed fashion but are typically 

needed globally – MPI use broadcast and “AllCollectives” implying Map-Collective is a useful 

programming model– AI community: use parameter server and access as needed. Non-optimal?

495/25/2015

(1) Map Only(4) Point to Point or

Map-Communication

(3) Iterative Map Reduce or Map-Collective

(2) Classic MapReduce

Input

map

reduce

Input

map

reduce

IterationsInput

Output

map

Local

Graph

(5) Map-Streaming

maps brokers

Events

(6) Shared memory Map Communicates

Map & Communicate

Shared Memory

Page 50: Visualizing and Clustering Life Science Applications in Parallel 

MDS in more detail

5/25/2015 50

Page 51: Visualizing and Clustering Life Science Applications in Parallel 

51

WDA-SMACOF “Best” MDS• Semimetric spaces just have pairwise distances defined between 

points in space (i, j) • MDS Minimizes Stress with pairwise distances (i, j)

(X) = i<j=1N weight(i,j) ((i, j) - d(Xi , Xj))2 

• SMACOF clever Expectation Maximization method choses good steepest descent 

• Improved by Deterministic Annealing reducing distance scale; DA does not impact compute time much and gives DA-SMACOF

• Classic SMACOF is O(N2) for uniform weight and O(N3) for non trivial weights but get nonuniform weight from– The preferred Sammon method weight(i,j)  = 1/(i, j) or– Missing distances put in as weight(i,j) = 0 

• Use conjugate gradient – converges in 5-100 iterations – a big gain for matrix with a million rows. This removes factor of N in time complexity and gives WDA-SMACOF5/25/2015

Page 52: Visualizing and Clustering Life Science Applications in Parallel 

Timing of WDA SMACOF• 20k to 100k AM Fungal sequences on 600 cores

5/25/2015 5220k 40k 60k 80k 100k

100

1000

10000

100000

Time Cost Comparison between WDA-SMA-COF with Equal Weights and Sammon's

MappingEqual Weights Sammon's Mapping

Data Size

Seco

nd

s

Page 53: Visualizing and Clustering Life Science Applications in Parallel 

WDA-SMACOF Timing• Input Data: 100k to 400k AM Fungal sequences• Environment: 32 nodes (1024 cores) to 128 nodes (4096 cores) on

BigRed2.• Using Harp plug in for Hadoop (MPI Performance)

100k 200k 300k 400k0

500

1000

1500

2000

2500

3000

3500

4000

Time Cost of WDA-SMACOF over Increas-ing Data Size

512 1024 2048

Data Size

Seco

nd

s

512 1024 2048 40960

0.2

0.4

0.6

0.8

1

1.2

Parallel Efficiency of WDA-SMACOF over Increasing Number of Processors

WDA-SMACOF (Harp)

Number of Processors

Par

alle

l Eff

icie

ncy

5/25/2015 53

Page 54: Visualizing and Clustering Life Science Applications in Parallel 

Spherical Phylogram• Take a set of sequences mapped to nD with MDS (WDA-SMACOF) 

(n=3 or ~20)– N=20 captures ~all features of dataset?

• Consider a phylogenetic tree and use neighbor joining formulae to calculate distances of nodes to sequences (or later other nodes) starting at bottom of tree

• Do a new MDS fixing mapping of sequences noting that sequences + nodes have defined distances

• Use RAxML or Neighbor Joining (N=20?) to find tree• Random note: do not need Multiple Sequence Alignment; 

pairwise tools are easier to use and give reliably good results 

5/25/2015 54

Page 55: Visualizing and Clustering Life Science Applications in Parallel 

RAxML result visualized in FigTree. Spherical Phylogram visualized in PlotViz for MSA or SWG distances

Spherical Phylograms

MSA

SWG

5/25/2015 55

Page 56: Visualizing and Clustering Life Science Applications in Parallel 

Quality of 3D Phylogenetic Tree• EM-SMACOF is basic SMACOF• LMA was previous best method using Levenberg-Marquardt nonlinear  2 

solver• WDA-SMACOF finds best result• 3 different distance measures

Sum of branch lengths of the Spherical Phylogram generated in 3D space on two datasets

MSA SWG NW0

5

10

15

20

25

30Sum of Branches on 599nts Data

WDA-SMACOF LMA EM-SMACOF

Sum

of B

ran

ches

MSA SWG NW0

5

10

15

20

25Sum of Branches on 999nts Data

WDA-SMACOF LMA EM-SMACOF

Sum

of B

ran

ches

5/25/2015 56

Page 57: Visualizing and Clustering Life Science Applications in Parallel 

Summary• Always run MDS. Gives insight into data and performance 

of machine learning– Leads to a data browser as GIS gives for spatial data– 3D better than 2D– ~20D better than MSA?

• Clustering Observations– Do you care about quality or are you just cutting up space into parts

– Deterministic Clustering always makes more robust– Continuous clustering enables hierarchy– Trimmed Clustering cuts off tails– Distinct O(N) and O(N2) algorithms

• Use Conjugate Gradient 575/25/2015

Page 58: Visualizing and Clustering Life Science Applications in Parallel 

Java Grande

5/25/2015 58

Page 59: Visualizing and Clustering Life Science Applications in Parallel 

Java Grande• We once tried to encourage use of Java in HPC with Java Grande 

Forum but Fortran, C and C++ remain central HPC languages. – Not helped by .com and Sun collapse in 2000-2005

• The pure Java CartaBlanca, a 2005 R&D100 award-winning project, was an early successful example of HPC use of Java in a simulation tool for non-linear physics on unstructured grids.  

• Of course Java is a major language in ABDS and as data analysis and simulation are naturally linked, should consider broader use of Java

• Using Habanero Java (from Rice University) for Threads and mpiJava or FastMPJ for MPI, gathering collection of high performance parallel Java analytics– Converted from C# and sequential Java faster than sequential C#

• So will have either Hadoop+Harp or classic Threads/MPI versions in Java Grande version of Mahout5/25/2015 59

Page 60: Visualizing and Clustering Life Science Applications in Parallel 

Performance of MPI Kernel Operations

1

100

100000B 2B 8B 32B

128B

512B 2KB

8KB

32KB

128K

B

512K

BAverag

e tim

e (us)

Message size (bytes)

MPI.NET C# in TempestFastMPJ Java in FGOMPI-nightly Java FGOMPI-trunk Java FGOMPI-trunk C FG

Performance of MPI send and receive operations

5

5000

4B 16B

64B

256B 1KB

4KB

16KB

64KB

256K

B

1MB

4MBAv

erag

e tim

e (us)

Message size (bytes)

MPI.NET C# in TempestFastMPJ Java in FGOMPI-nightly Java FGOMPI-trunk Java FGOMPI-trunk C FG

Performance of MPI allreduce operation

1

100

10000

1000000

4B 16B

64B

256B 1KB

4KB

16KB

64KB

256K

B

1MB

4MBAv

erag

e Time (us)

Message Size (bytes)

OMPI-trunk C MadridOMPI-trunk Java MadridOMPI-trunk C FGOMPI-trunk Java FG

1

10

100

1000

10000

0B 2B 8B 32B

128B

512B 2KB

8KB

32KB

128K

B

512K

BAverag

e Time (us)

Message Size (bytes)

OMPI-trunk C MadridOMPI-trunk Java MadridOMPI-trunk C FGOMPI-trunk Java FG

Performance of MPI send and receive on Infiniband and Ethernet

Performance of MPI allreduce on Infinibandand Ethernet

Pure Java as in FastMPJ slower than Java interfacing to C version of MPI

5/25/2015 60

Page 61: Visualizing and Clustering Life Science Applications in Parallel 

Java Grande and C# on 40K point DAPWC ClusteringVery sensitive to threads v MPI

64  Way parallel128  Way parallel 256 Way 

parallel

TXPNodesTotal

C#Java

C# Hardware 0.7 performance Java Hardware

5/25/2015 61

Page 62: Visualizing and Clustering Life Science Applications in Parallel 

Java and C# on 12.6K point DAPWC ClusteringJava

C##Threads x #Processes per node# NodesTotal Parallelism 

Time hours

1x1 2x21x2 1x42x1 1x84x1 2x4 4x2 8x1#Threads x #Processes per node

C# Hardware 0.7 performance Java Hardware

5/25/2015 62

Page 63: Visualizing and Clustering Life Science Applications in Parallel 

Data Analytics in SPIDAL

5/25/2015 63

Page 64: Visualizing and Clustering Life Science Applications in Parallel 

Analytics and the DIKW Pipeline• Data goes through a pipeline

Raw data Data Information Knowledge Wisdom Decisions

• Each link enabled by a filter which is “business logic” or “analytics”• We are interested in filters that involve “sophisticated analytics” 

which require non trivial parallel algorithms– Improve state of art in both algorithm quality and (parallel) performance

• Design and Build SPIDAL (Scalable Parallel Interoperable Data Analytics Library) 

More Analytics KnowledgeInformation

AnalyticsInformationData

5/25/2015 64

Page 65: Visualizing and Clustering Life Science Applications in Parallel 

Strategy to Build SPIDAL• Analyze Big Data applications to identify analytics needed 

and generate benchmark applications• Analyze existing analytics libraries (in practice limit to some 

application domains) – catalog library members available and performance– Mahout low performance, R largely sequential and missing key algorithms, MLlib just starting

• Identify big data computer architectures• Identify software model to allow interoperability and 

performance• Design or identify new or existing algorithm including parallel 

implementation• Collaborate application scientists, computer systems and 

statistics/algorithms communities5/25/2015 65

Page 66: Visualizing and Clustering Life Science Applications in Parallel 

Machine Learning in Network Science, Imaging in Computer Vision, Pathology, Polar Science, Biomolecular Simulations

66

Algorithm Applications Features Status Parallelism

Graph Analytics

Community detection Social networks, webgraph

Graph .

P-DM GML-GrC

Subgraph/motif finding Webgraph, biological/social networks P-DM GML-GrB

Finding diameter Social networks, webgraph P-DM GML-GrB

Clustering coefficient Social networks P-DM GML-GrC

Page rank Webgraph P-DM GML-GrC

Maximal cliques Social networks, webgraph P-DM GML-GrB

Connected component Social networks, webgraph P-DM GML-GrB

Betweenness centrality Social networks Graph,  Non-metric, static

P-ShmGML-GRA

Shortest path Social networks, webgraph P-Shm

Spatial Queries and Analytics

Spatial relationship based queries

GIS/social networks/pathology informatics 

Geometric 

P-DM PP

Distance based queries P-DM PP

Spatial clustering Seq GML

Spatial modeling Seq PP

GML Global (parallel) MLGrA Static GrB Runtime partitioning  

5/25/2015

Page 67: Visualizing and Clustering Life Science Applications in Parallel 

Some specialized data analytics in SPIDAL

• aa

67

Algorithm Applications Features Status Parallelism

Core Image Processing

Image preprocessing

Computer vision/pathology informatics 

Metric Space Point Sets, Neighborhood sets & Image features

P-DM PP

Object detection & segmentation P-DM PP

Image/object feature computation P-DM PP

3D image registration Seq PP

Object matchingGeometric 

Todo PP

3D feature extraction Todo PP

Deep Learning

Learning Network, Stochastic Gradient Descent

Image Understanding, Language Translation, Voice Recognition, Car driving

Connections in artificial neural net P-DM GML

PP Pleasingly Parallel (Local ML)Seq Sequential AvailableGRA Good distributed algorithm needed

Todo No prototype AvailableP-DM Distributed memory AvailableP-Shm Shared memory Available5/25/2015

Page 68: Visualizing and Clustering Life Science Applications in Parallel 

Some Core Machine Learning Building Blocks

68

Algorithm Applications Features Status //ism

DA Vector Clustering Accurate Clusters Vectors P-DM GMLDA Non metric Clustering Accurate Clusters, Biology, Web Non metric, O(N2) P-DM GMLKmeans; Basic, Fuzzy and Elkan Fast Clustering Vectors P-DM GMLLevenberg-Marquardt Optimization

Non-linear  Gauss-Newton,  use in MDS Least Squares P-DM GML

SMACOF Dimension Reduction DA- MDS with general weights Least  Squares, O(N2) P-DM GML

Vector Dimension Reduction DA-GTM and Others Vectors P-DM GML

TFIDF Search Find  nearest  neighbors  in document corpus 

Bag  of  “words” (image features)

P-DM PP

All-pairs similarity searchFind  pairs  of  documents  with TFIDF  distance  below  a threshold Todo GML

Support Vector Machine SVM Learn and Classify Vectors Seq GML

Random Forest Learn and Classify Vectors P-DM PPGibbs sampling (MCMC) Solve global inference problems Graph  Todo GML

Latent  Dirichlet  Allocation  LDA with Gibbs sampling or Var. Bayes Topic models (Latent factors) Bag of “words” P-DM GML

Singular  Value  Decomposition SVD Dimension Reduction and PCA Vectors Seq GML

Hidden Markov Models (HMM) Global  inference  on  sequence models Vectors Seq PP  & 

GML5/25/2015

Page 69: Visualizing and Clustering Life Science Applications in Parallel 

Some Futures• Always run MDS. Gives insight into data

– Leads to a data browser as GIS gives for spatial data

• Claim is algorithm change gave as much performance increase as hardware change in simulations. Will this happen in analytics?– Today is like parallel computing 30 years ago with regular meshs. 

We will learn how to adapt methods automatically to give “multigrid” and “fast multipole” like algorithms

• Need to start developing the libraries that support Big Data – Understand architectures issues– Have coupled batch and streaming versions– Develop much better algorithms

• Please join SPIDAL (Scalable Parallel Interoperable Data Analytics Library) community 695/25/2015