SlideShare a Scribd company logo
"BIG DATA" BIOINFORMATICS
MODELS FOR DISTRIBUTED, PARALLEL AND CONCURRENT PROCESSING
Brian Repko
December 4, 2014
AGENDA
What does this have to do with me?
High Performance Computing models
Traditional Software Engineering models
Distributed Systems Architecture
WHAT DOES THIS HAVE TO DO WITH ME?
Existing tools designed as single flow / single machine
Programming languages have limits (R, python)
CPUs moving to multi-core
Single flow can't make use of this
Some processes hit CPU/memory issues
Data volume in bioinformatics
4 "V"s of "Big Data"
Volume, Velocity, Variety and Veracity
Limits on single node CPU / memory
TERMINOLOGY
Concurrent - dealing with a lot of things
Parallel - doing a lot of things
Why parallelize / use concurrency?
Throughput and Responsiveness
Distributed - anything non-shared
Why distribute?
Scalability and Availability
Goal is concurrent, distributed, resilient, simple
HPC MODELS
Von Neumann Machine
OpenMP
MPI
General Purpose GPU
Beyond HPC (HTC/MTC)
VON NEUMANN MACHINE
John von Neumann 1945
CPU, Memory, I/O
Program AND data in memory
SISD, SIMD, MIMD models
Multi-levels/types of cache, UMA/ccNUMA
Threading, pipelining, vectorization
VON NEUMANN MACHINE
OPENMP (MULTI-PROCESSING)
Shared memory programming model
Based on threads, fork/join and a known "memory model"
C/C++ pragmas, Fortran compiler directives
OpenMP directive categories:
control, work-sharing, data visibility, synchronization and
context / environment
Pros/Cons with use of directives
Optimizations very architecture-specific
Can be difficult to get correct
OPENMP (MULTI-PROCESSING)
MESSAGE PASSING INTERFACE
Distributed memory programming model
Single-Program Multiple-Data (SPMD)
P2P and Broadcast, Synch and Asynch
Datatypes for message content
Communicators / network topology
Program instance gets rank / size
Rank 0 typically a coordinator / reducer
All others do work and send result to rank 0
Dynamic process management in MPI-2
Hybrid models with OpenMP
Bioinformatics example: Trinity (transcript assembly) on Cray
GENERAL PURPOSE GPU
OpenCL (computing language)
CUDA (specific to NVIDIA)
Standard library and device-specific driver (ICD)
Kernel routine written in OpenCL C
Global / Work-group / Work-item memory model
Devices are sent streams of work-groups
Kernel runs in parallel on work-items
Very useful together with OpenGL
Extension of this idea to custom chips (ASIC/FPGA)
BEYOND HPC (HTC/MTC)
High-Throughput Computing
Long-running, parallel jobs
Many-Task Computing
Mix of job size, Workflows
Cluster/Grid Computing (Grid Engine)
Lots of workflow solutions
YAP (MPI)
Swift scripting language
bpipe (workflow DSL)
celery / gridmap (Python)
Process-level failure / error handling
TRADITIONAL ENGINEERING MODELS
Threads, Locks and Fork/Join
Functional Programming
Communicating Sequential Processes (CSP)
Actors
THREADS, LOCKS AND FORK/JOIN
These are the general terms
OpenMP is a particular style (via macros)
Support varies by programming language
May or may not use multiple cores
For C, choose OpenMP or pthreads
Concurrency model (non-deterministic)
Difficult to get correct
The problem is shared mutable state
FUNCTIONAL PROGRAMMING
Alonzo Church 1930
Lambda Calculus
System for maths / computation
Declarative (vs Imperative)
Computation is the evalutation of functions
Avoids mutable state
Haskell (pure), Lisp (Scheme, Clojure, Common Lisp), Erlang,
ML (OCaml), Javascript, C#, F#, Groovy, Scala, Java 8, Python,
R, Julia,...
FUNCTIONAL PROGRAMMING
First-class functions
Higher-order functions
Pure functions (no side effects)
Referential transparency and beta-reduction in any order
including parallel
(Tail) recursion, partial functions, currying
Strict (eager) vs non-strict (lazy) evaluation
Typed or Untyped - Category theory when typed
Software Transactional Memory (Clojure)
FUNCTIONAL PROGRAMMING
expr = "28+32+++32++39"
res = 0
for t in expr.split("+"):
    if t != "":
        res += int(t)
print res
expr = "28+32+++32++39"
print reduce(map(filter(expr.split("+"), isNonBlank), toInteger), add)
COMMUNICATING SEQUENTIAL PROCESSES
Tony Hoare 1978
One of multiple process calculi
Verifiable lack of deadlocks
Avoids shared state
Synchronous message passing via shared channels
Concurrently executing elements - send / receive
Functions can use and return channels
Implemented in Ada, Go and Clojure core.async
Distribution is possible but difficult
COMMUNICATING SEQUENTIAL PROCESSES
ACTORS
Carl Hewitt 1973
Avoids shared state (share nothing!)
Actor (the processing element) has
an identity, non-shared state, and a mailbox
asynchronous messaging
Actors can
do work, send messages, and create other actors
Built-into some programming languages - Erlang, Scala
Frameworks available for almost all languages - Akka
Concurrency and (somewhat easier) Distribution
Bioinformatics example - MetaRay (MPI) to BioSAL/Thorium
ACTORS
DISTRIBUTED SYSTEM ARCHITECTURE
Distributed Storage (Filesystems/NoSQL)
Hadoop
Map-Reduce
Apache Spark
Lambda Architecture
DISTRIBUTED STORAGE (FS/NOSQL)
Filesystems
Lustre, GlusterFS (Redhat), OneFS (Isilon)
Hadoop HDFS
Tachyon
NoSQL / NewSQL
Distribution one of the main reasons for NoSQL
Key-value (Dynamo, Redis, Riak, Voldemort)
Document (MongoDB, Couchbase)
Column (Cassandra, Accumulo, HBase, Vertica)
Graph (Neo4J, Allegro, InfiniteGraph, OrientDB)
Relational (NuoDB, Teradata)
These all have to deal with standard distribution problems
HADOOP
Distributed storage AND computing
HDFS (file system storage)
NameNodes and DataNodes
Map-Reduce (computing model)
JobTrackers and TaskTrackers
Hadoop "ecosystem":
HBase or Parquet (NoSQL DB)
Pig (Hadoop job DSL / scripting)
Hadwrap (scripting / workflow)
Hive (data warehouse)
Drill or Impala (SQL query engine)
Sqoop (ETL - DB to Hadoop)
MAP-REDUCE
A Map-Reduce job has
an input data-set and an output directory
a mapper, reducer and optional combiner (classes)
all classes get and produce kv-pairs
The job runs as
1. The input is converted to kv-pairs (key=line#, value=text)
2. Mapper gets and processes kv-pairs (data locality)
3. Sort/Shuffle phase on mapper output
4. Reducers get all kv-pairs for a given key (sorted)
5. Reducers output is stored in output directory
MAP-REDUCE
APACHE SPARK
New computing model
RDD - Resilient Distributed Datasets
Read-only, distributed collection of objects
Stored on disk (HDFS/Cassandra) or in-memory
Memory usage on shared clusters can be an issue
Computation is transformations and actions on RDDs
Transformations convert data or RDD into an RDD
Actions convert RDD to object / data
Functional programming (immutability) paradigm
DAG (lineage) for how RDD was built (scheduling, failover)
Lazy evaluation of tasks
Actor-based (Akka) distribution of code
Faster than Hadoop, more expressive than MR
APACHE SPARK
Sub-projects
Spark SQL (was "Shark" - Spark for Hive)
GraphX (graph data)
MLlib (machine learning)
Spark Streaming (events)
Multiple languages - Java 8, Scala, Python, R
Bioinformatics examples:
gData Integration and Analytics Layers
ADAM (AMPlab and bdgenomics.org)
Why is Bioinformatics a Good Fit for Spark?
Real-time Image Processing and Analytics using Spark
Why Apache Spark is a Crossover Hit for Data Scientists
LAMBDA ARCHITECTURE
Slow batch layer for all data (Hadoop)
Fast speed layer for latest data (updating)
Serving layer for queries based on both layers
Raw data is immutable facts (append-only)
WHAT DOES THIS HAVE TO DO WITH ME
(AGAIN)?
Bioinformatics has/will have a volume constraint
Some algorithms have a CPU constraint
For volume, move to distributed data
For computation on distributed data
Parallelize over standard data partitions (position, samples)
Distribute that computation
Actors > MPI and Spark > Map-Reduce
Functional programming as an algorithm goal
Additional advantages with Apache Spark
Availability of intermediate processing steps for workflows
Availability of graph and ML algorithms
THANK YOU! QUESTIONS?
Special thanks to Ken Robbins, Dave Tester, Steve Litster, Nick
Holway, Timothy Danford, Laurent Gautier and Jason Calvert
OpenMP/MPI/Hadoop/Spark is available in
SciComp/DataEng clusters
What are your data / computation challenges?

More Related Content

PPTX
BioPharming (Molecular Farming)
PPTX
Protein databases
PPT
Stem cell culture
PPTX
Tissue Engineering slides
PPT
Power point (1)
PPTX
Somatic cell cloning
PPTX
sequence of file formats in bioinformatics
PPTX
Micromanipulation.pptx
BioPharming (Molecular Farming)
Protein databases
Stem cell culture
Tissue Engineering slides
Power point (1)
Somatic cell cloning
sequence of file formats in bioinformatics
Micromanipulation.pptx

What's hot (20)

PPTX
oncogene as a transcription activator
PPTX
Embryo culture
PPTX
Protein database
PPTX
Cell culture based vaccine
PPTX
How to submit a sequence in NCBI
PPTX
Lectut btn-202-ppt-l5. yeast cloning vectors (1)
PPT
C value paradox unit-ii
PPTX
Ribozyme technology
PPTX
Gene families and clusters
PDF
Growth factors
PPTX
Gene transfer by physical methods
KEY
Somatic cell nuclear_transfer
PPTX
Embryonic stem cells
PPTX
MAMMALIAN CLONING
PPTX
STEM CELL CULTURE
PPTX
Electroporation
PPTX
Stem cells & its application
PPT
Transgenic fish, bird by kk sahu
PPTX
Chromosome walking jumping transposon tagging map based cloning
oncogene as a transcription activator
Embryo culture
Protein database
Cell culture based vaccine
How to submit a sequence in NCBI
Lectut btn-202-ppt-l5. yeast cloning vectors (1)
C value paradox unit-ii
Ribozyme technology
Gene families and clusters
Growth factors
Gene transfer by physical methods
Somatic cell nuclear_transfer
Embryonic stem cells
MAMMALIAN CLONING
STEM CELL CULTURE
Electroporation
Stem cells & its application
Transgenic fish, bird by kk sahu
Chromosome walking jumping transposon tagging map based cloning
Ad

Similar to "Big Data" Bioinformatics (20)

PPTX
Big data vahidamiri-tabriz-13960226-datastack.ir
PDF
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015
PDF
A look under the hood at Apache Spark's API and engine evolutions
PPTX
Accelerating Apache Hadoop through High-Performance Networking and I/O Techno...
PPTX
Hadoop introduction
PPTX
Big Data Meets HPC - Exploiting HPC Technologies for Accelerating Big Data Pr...
PDF
20150716 introduction to apache spark v3
PPTX
Big data concepts
PPTX
Hadoop bigdata overview
PPTX
Hadoop: An Industry Perspective
PDF
Apache Spark 101 - Demi Ben-Ari - Panorays
PDF
spark_v1_2
PDF
Bds session 13 14
PPTX
عصر کلان داده، چرا و چگونه؟
PDF
The Evolution of Big Data Frameworks
PPTX
Apache spark - History and market overview
PDF
About "Apache Cassandra"
PPTX
Thinking in parallel ab tuladev
PDF
Introduction to apache hadoop
PDF
Data Analytics and Machine Learning: From Node to Cluster on ARM64
Big data vahidamiri-tabriz-13960226-datastack.ir
Big Data Essentials meetup @ IBM Ljubljana 23.06.2015
A look under the hood at Apache Spark's API and engine evolutions
Accelerating Apache Hadoop through High-Performance Networking and I/O Techno...
Hadoop introduction
Big Data Meets HPC - Exploiting HPC Technologies for Accelerating Big Data Pr...
20150716 introduction to apache spark v3
Big data concepts
Hadoop bigdata overview
Hadoop: An Industry Perspective
Apache Spark 101 - Demi Ben-Ari - Panorays
spark_v1_2
Bds session 13 14
عصر کلان داده، چرا و چگونه؟
The Evolution of Big Data Frameworks
Apache spark - History and market overview
About "Apache Cassandra"
Thinking in parallel ab tuladev
Introduction to apache hadoop
Data Analytics and Machine Learning: From Node to Cluster on ARM64
Ad

More from Brian Repko (6)

PPTX
Coon Rapids High School (biomedical specialty) Outreach
PPTX
Agile Day Twin Cities - Lightning Talk (Repko)
PDF
Agile Days Twin Cities 2011
PDF
Crucible
PDF
CFEngine 3
PPTX
FIT and JBehave - Good, Bad and Ugly
Coon Rapids High School (biomedical specialty) Outreach
Agile Day Twin Cities - Lightning Talk (Repko)
Agile Days Twin Cities 2011
Crucible
CFEngine 3
FIT and JBehave - Good, Bad and Ugly

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPT
Teaching material agriculture food technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation theory and applications.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Teaching material agriculture food technology
Building Integrated photovoltaic BIPV_UPV.pdf
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation theory and applications.pdf
Big Data Technologies - Introduction.pptx
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
MYSQL Presentation for SQL database connectivity

"Big Data" Bioinformatics

  • 1. "BIG DATA" BIOINFORMATICS MODELS FOR DISTRIBUTED, PARALLEL AND CONCURRENT PROCESSING Brian Repko December 4, 2014
  • 2. AGENDA What does this have to do with me? High Performance Computing models Traditional Software Engineering models Distributed Systems Architecture
  • 3. WHAT DOES THIS HAVE TO DO WITH ME? Existing tools designed as single flow / single machine Programming languages have limits (R, python) CPUs moving to multi-core Single flow can't make use of this Some processes hit CPU/memory issues Data volume in bioinformatics 4 "V"s of "Big Data" Volume, Velocity, Variety and Veracity Limits on single node CPU / memory
  • 4. TERMINOLOGY Concurrent - dealing with a lot of things Parallel - doing a lot of things Why parallelize / use concurrency? Throughput and Responsiveness Distributed - anything non-shared Why distribute? Scalability and Availability Goal is concurrent, distributed, resilient, simple
  • 5. HPC MODELS Von Neumann Machine OpenMP MPI General Purpose GPU Beyond HPC (HTC/MTC)
  • 6. VON NEUMANN MACHINE John von Neumann 1945 CPU, Memory, I/O Program AND data in memory SISD, SIMD, MIMD models Multi-levels/types of cache, UMA/ccNUMA Threading, pipelining, vectorization
  • 8. OPENMP (MULTI-PROCESSING) Shared memory programming model Based on threads, fork/join and a known "memory model" C/C++ pragmas, Fortran compiler directives OpenMP directive categories: control, work-sharing, data visibility, synchronization and context / environment Pros/Cons with use of directives Optimizations very architecture-specific Can be difficult to get correct
  • 10. MESSAGE PASSING INTERFACE Distributed memory programming model Single-Program Multiple-Data (SPMD) P2P and Broadcast, Synch and Asynch Datatypes for message content Communicators / network topology Program instance gets rank / size Rank 0 typically a coordinator / reducer All others do work and send result to rank 0 Dynamic process management in MPI-2 Hybrid models with OpenMP Bioinformatics example: Trinity (transcript assembly) on Cray
  • 11. GENERAL PURPOSE GPU OpenCL (computing language) CUDA (specific to NVIDIA) Standard library and device-specific driver (ICD) Kernel routine written in OpenCL C Global / Work-group / Work-item memory model Devices are sent streams of work-groups Kernel runs in parallel on work-items Very useful together with OpenGL Extension of this idea to custom chips (ASIC/FPGA)
  • 12. BEYOND HPC (HTC/MTC) High-Throughput Computing Long-running, parallel jobs Many-Task Computing Mix of job size, Workflows Cluster/Grid Computing (Grid Engine) Lots of workflow solutions YAP (MPI) Swift scripting language bpipe (workflow DSL) celery / gridmap (Python) Process-level failure / error handling
  • 13. TRADITIONAL ENGINEERING MODELS Threads, Locks and Fork/Join Functional Programming Communicating Sequential Processes (CSP) Actors
  • 14. THREADS, LOCKS AND FORK/JOIN These are the general terms OpenMP is a particular style (via macros) Support varies by programming language May or may not use multiple cores For C, choose OpenMP or pthreads Concurrency model (non-deterministic) Difficult to get correct The problem is shared mutable state
  • 15. FUNCTIONAL PROGRAMMING Alonzo Church 1930 Lambda Calculus System for maths / computation Declarative (vs Imperative) Computation is the evalutation of functions Avoids mutable state Haskell (pure), Lisp (Scheme, Clojure, Common Lisp), Erlang, ML (OCaml), Javascript, C#, F#, Groovy, Scala, Java 8, Python, R, Julia,...
  • 16. FUNCTIONAL PROGRAMMING First-class functions Higher-order functions Pure functions (no side effects) Referential transparency and beta-reduction in any order including parallel (Tail) recursion, partial functions, currying Strict (eager) vs non-strict (lazy) evaluation Typed or Untyped - Category theory when typed Software Transactional Memory (Clojure)
  • 18. COMMUNICATING SEQUENTIAL PROCESSES Tony Hoare 1978 One of multiple process calculi Verifiable lack of deadlocks Avoids shared state Synchronous message passing via shared channels Concurrently executing elements - send / receive Functions can use and return channels Implemented in Ada, Go and Clojure core.async Distribution is possible but difficult
  • 20. ACTORS Carl Hewitt 1973 Avoids shared state (share nothing!) Actor (the processing element) has an identity, non-shared state, and a mailbox asynchronous messaging Actors can do work, send messages, and create other actors Built-into some programming languages - Erlang, Scala Frameworks available for almost all languages - Akka Concurrency and (somewhat easier) Distribution Bioinformatics example - MetaRay (MPI) to BioSAL/Thorium
  • 22. DISTRIBUTED SYSTEM ARCHITECTURE Distributed Storage (Filesystems/NoSQL) Hadoop Map-Reduce Apache Spark Lambda Architecture
  • 23. DISTRIBUTED STORAGE (FS/NOSQL) Filesystems Lustre, GlusterFS (Redhat), OneFS (Isilon) Hadoop HDFS Tachyon NoSQL / NewSQL Distribution one of the main reasons for NoSQL Key-value (Dynamo, Redis, Riak, Voldemort) Document (MongoDB, Couchbase) Column (Cassandra, Accumulo, HBase, Vertica) Graph (Neo4J, Allegro, InfiniteGraph, OrientDB) Relational (NuoDB, Teradata) These all have to deal with standard distribution problems
  • 24. HADOOP Distributed storage AND computing HDFS (file system storage) NameNodes and DataNodes Map-Reduce (computing model) JobTrackers and TaskTrackers Hadoop "ecosystem": HBase or Parquet (NoSQL DB) Pig (Hadoop job DSL / scripting) Hadwrap (scripting / workflow) Hive (data warehouse) Drill or Impala (SQL query engine) Sqoop (ETL - DB to Hadoop)
  • 25. MAP-REDUCE A Map-Reduce job has an input data-set and an output directory a mapper, reducer and optional combiner (classes) all classes get and produce kv-pairs The job runs as 1. The input is converted to kv-pairs (key=line#, value=text) 2. Mapper gets and processes kv-pairs (data locality) 3. Sort/Shuffle phase on mapper output 4. Reducers get all kv-pairs for a given key (sorted) 5. Reducers output is stored in output directory
  • 27. APACHE SPARK New computing model RDD - Resilient Distributed Datasets Read-only, distributed collection of objects Stored on disk (HDFS/Cassandra) or in-memory Memory usage on shared clusters can be an issue Computation is transformations and actions on RDDs Transformations convert data or RDD into an RDD Actions convert RDD to object / data Functional programming (immutability) paradigm DAG (lineage) for how RDD was built (scheduling, failover) Lazy evaluation of tasks Actor-based (Akka) distribution of code Faster than Hadoop, more expressive than MR
  • 28. APACHE SPARK Sub-projects Spark SQL (was "Shark" - Spark for Hive) GraphX (graph data) MLlib (machine learning) Spark Streaming (events) Multiple languages - Java 8, Scala, Python, R Bioinformatics examples: gData Integration and Analytics Layers ADAM (AMPlab and bdgenomics.org) Why is Bioinformatics a Good Fit for Spark? Real-time Image Processing and Analytics using Spark Why Apache Spark is a Crossover Hit for Data Scientists
  • 29. LAMBDA ARCHITECTURE Slow batch layer for all data (Hadoop) Fast speed layer for latest data (updating) Serving layer for queries based on both layers Raw data is immutable facts (append-only)
  • 30. WHAT DOES THIS HAVE TO DO WITH ME (AGAIN)? Bioinformatics has/will have a volume constraint Some algorithms have a CPU constraint For volume, move to distributed data For computation on distributed data Parallelize over standard data partitions (position, samples) Distribute that computation Actors > MPI and Spark > Map-Reduce Functional programming as an algorithm goal Additional advantages with Apache Spark Availability of intermediate processing steps for workflows Availability of graph and ML algorithms
  • 31. THANK YOU! QUESTIONS? Special thanks to Ken Robbins, Dave Tester, Steve Litster, Nick Holway, Timothy Danford, Laurent Gautier and Jason Calvert OpenMP/MPI/Hadoop/Spark is available in SciComp/DataEng clusters What are your data / computation challenges?