SlideShare a Scribd company logo
In-Memory Computing for
Iterative CPU-intensive
Calculations in Financial
Industry
In-Memory Computing Summit 2015
June 29-30, 2015
2Copyright © 2015 EPAM Systems
Alexandre Boudnik
Senior Solution Architect, EPAM Systems
Alexandre_Boudnik@epam.com
EPAM Big Data Competency Center
OrgCompetencyBigData@epam.com
Contacts
3Copyright © 2015 EPAM Systems
• I used to work on software development tools like compilers,
hardware emulators, and testing tools for real-time systems
• My first American job was to lead development of SQL query engine
for MPP grid in early 2000
• Now I’m working with many of the Big Data and Fast Data aspects:
• Hadoop ecosystem for enterprise (data governance, lineage)
• Streaming, complex event processing, in-memory caches and real-time
graphs processing
• Building the scalable, fault tolerant distributed systems on clusters
Who I am
4Copyright © 2015 EPAM Systems
• Out clients in financial advisers want:
• To get support for complex iterative calculations
• To get a faster response than conventional tools provide
• To have better (faster) support for what-if scenarios
• To call calculations from web-based tools and from MS Excel
• Drawbacks of conventional BI tools and SQL technologies:
• Not enough expandability (it is hard to use custom code)
• Scalability, Concurrency and Response time
The problem our customers have faced
5Copyright © 2015 EPAM Systems
Using in-memory technologies for financial calculations:
• Generalized approach to parallel recursive calculations on a grid
• Memory-efficient object data model to reduce memory footprint
• OData (hierarchal data model) on top of object data model
Techniques and Practices to Develop
6Copyright © 2015 EPAM Systems
Wealth Management
7Copyright © 2015 EPAM Systems
To manage client portfolios effectively, organizations need
to calculate various financial functions:
• Over wide period of time
• For many financial vehicles (instruments)
• Using multiple hierarchal user-defined groupings (roll-up)
• Providing ability to compare performance with standard or user
defined benchmarks
• Providing comfortable user experience (response time)
• Near-real time what-if scenarios
• Providing concurrent access for hundreds of users
Use case: Wealth Management Organizations
8Copyright © 2015 EPAM Systems
• SQL-based BI tools out-of-the box:
• Are ineffective in supporting complex calculation defined on hierarchal
structures along time dimension
• Don’t provide sufficient support for complex calculations
• Provide limited scalability
• Using the stored procedures to expand functionality is not an perfect
answer:
• Can be used for iterative calculations
• High-Level languages like java and C# are available for some platforms
• The differences in stored procedure APIs lead to vendor lock
Traditional SQL-based tools: road blocks
9Copyright © 2015 EPAM Systems
• Architecture based on Distributed In-Memory Data Grid provides high
performance, quick response and scalability in terms of concurrent
load, amount of data, and complex calculations
• There are many implementations, both proprietary and open-source,
with same computation models and very similar API
• Vendors we had considered:
• GridGain, Gigaspaces XAP, SAP Hana, MS SQL Server In-Memory 2012 and
2014, Aerospike, Clustrix, Tibco ActiveSpaces, ScaleOut Software,
Pivotal’s gemfire/sqlfire, Oracle Coherence, MongoDB, Haselcast
In-Memory Data Grid: getting out of the woods
10Copyright © 2015 EPAM Systems
• Speed-up the complex iterative CPU-intensive financial calculations:
• Fast access to in-memory data
• Fast execution of individual requests by implementing parallel versions of
calculation algorithms
• Achieve fast response under highly concurrent load:
• Load balancing
• Parallel query execution
• Distributed calculations
Rationales for In-Memory Data Grid
11Copyright © 2015 EPAM Systems
Core Solution: Architecture
Core Solution
Calculation EngineOperational Data Applications
(One Node shown)
Changes
Data
Sources
ETL
Changes
Load on start
Custom
Code
Persistent
Data
Access
Report UI
3rd Party SaaS
OData
Data
Warehouse
12Copyright © 2015 EPAM Systems
• Operational Data – represents a composition of transactional data
sources
• Calculation Engine – uses In-Memory Data Grid to performs Custom
Calculation Code on a cluster
• In-Memory Data Grid – cluster environment such as GridGain Data
Fabric or Gigaspaces XAP. Control all aspects of storing data and
distributed calculations on a cluster
• Custom Calculation Code – implements various calculation algorithms
• Persistent Store – used to store Calculation Engine’s operational data,
when In-Memory Data Grid is off
Core Solution: Components
13Copyright © 2015 EPAM Systems
• It performs one-path calculations, like:
• Cumulative and Annualized performance Reports, Allocation Reports with
different types of aggregation
• Calculation of Alpha, Beta, Average Capital Base, TWR (Time-Weighted
Return), Currency conversion
• It performs iterative calculations, like:
• IRR (Internal Rate of Return) – requires to solve nonlinear equations (~2
ms per node)
• The OData v4 (http://www.odata.org) has been implemented based
on open source Apache OLingo library (https://olingo.apache.org)
Calculation Engine Functionality
14Copyright © 2015 EPAM Systems
Typical Data Flow
Cloud
User SaaS OData Planner
HTTP Request
REST/OData
OData
HTTP Response
calculation
[parameters]
ProcessorProcessor
Call
Results
15Copyright © 2015 EPAM Systems
• Typical OData query to show TWR for last year:
$select=Name,TwrYtd&$filter=Date eq ‘2014-12-31' and CurrencyISO eq
'USD'
• In EDM file:
<field name="TwrYtd" type="Edm.Double">
twr(args.setMonthOffset(-12).setAnnualized(true))</field>
<field name="Name" type="Edm.String">
hrhy(args).name</field>
• MVEL expressions binds analytical functions to column definitions:
• MVEL parser builds AST for columns and filter
• Analytical functions request their dependencies
• Planner builds dependencies graph
OData: Binding Custom Code to Data Model
16Copyright © 2015 EPAM Systems
• Dividing – need to be sure that these is the way to divide the whole job into
independent pieces or to the pieces that at least could be executed in parallel
to some extent:
• Calculations on leaves:
• They are usually independent and thus could be performed in parallel
• Calculations and aggregation on nodes should either:
• For additive calculations like TWR – wait for all underlying calculations
• For semi-additive calculations like IRR – collect data needed to calculate – then could be done
in parallel
• Synchronization – combine individual results into result of whole job and suspend
execution of pieces until they get all their dependencies satisfied
• Callable and Future have been used since Java 5
• Recursive algorithms in parallel environment are potential victims of thread
starvation
Divide and Conquer Synchronize:
Parallel implementation of algorithms
17Copyright © 2015 EPAM Systems
• When number of nodes waiting for its prerequisites exceeds number of
available threads in fixed size Thread pool, the application slows down
• There is a technique called “continuation”, which is devised to address
thread starvation:
• Start a child task (which will possibly produce a number of child jobs), get a
task future
• Detach this current job from a worker thread, allowing it to run other jobs
• Register a completion listener on the task future, that will resume this
current job (attach it back to a worker thread)
• When resumed back - handle the child task result and return
• It is really hard to design, write the code and debug the continuation-
based implementation of recursive algorithms
Thread starvation
18Copyright © 2015 EPAM Systems
Generalized approach uses the idea of topological sort
where independent vertices have been removed. There are
two moving parts:
• Planner, which builds graph of dependencies, which is very obvious
task for tree-like structures and oriented graphs
• Processor, which is looking for independent leaves and nodes and
submit them to the grid for execution
Non-blocking Parallel Recursive Calculations
19Copyright © 2015 EPAM Systems
• Processor never uses future.get() method, it registers
completion listener instead
• When listener get control, it checks for nodes, for which it would
be the last dependence, and submit them for the execution
• When listener found the last node (root in tree-like structures) in
dependency graph, it posts waiting thread with result of whole
calculation
• When Processor can not find any submittable node, it means that
it found a cyclic dependency
How it works
20Copyright © 2015 EPAM Systems
Dependency-driven execution of recursive calculation allows to:
• Avoid thread starvation
• Use external thread (webservices’ thread in case of OData) for
synchronization
• Make parallel implementation of algorithm much more straight-
forward
• Simplify cache management for once calculated values
The City That Never Sleeps
The Grid That Never Waits
21Copyright © 2015 EPAM Systems
• Object are more expensive than a primitives, thus Integer takes 16 bytes
memory to store its value, while int takes only 4 bytes
• Most of in-memory grids offer only one data structure to store in-memory
data on a grid–cache, which is sharded map. You may significantly reduce
memory footprint by re-organizing data structures from mechanically
converted relational data structures to object model:
• Structure for storing currency conversion table could be represented like this:
• GridCache<Integer, Pair<Date, Double>> currencies;
• Or like this, using implied array index as a day since 1 Jan 1904:
• GridCache<Integer, double[]> currencies;
• When you have less than a 10% values, you may use sparse arrays:
• GridCache<Integer, DoubleMatrix1D<Double>> currencies;
Memory-efficient Object Data Model
22Copyright © 2015 EPAM Systems
• The Goldman Sachs collection framework offers a galore of very
memory-efficient collections (https://github.com/goldmansachs/gs-
collections/wiki)
Looking forward to use more open source
23Copyright © 2015 EPAM Systems
In real-life you have to keep in mind:
• How to make calculations parallel
• Design of memory-efficient object data model
• Expandable data model on top objects for easy integration
Lessons learned
24Copyright © 2015 EPAM Systems
Life insurance
25Copyright © 2015 EPAM Systems
In life insurance industry companies use Monte-Carlo
simulation to estimate the value of its policies
• Typically the process generates ~20 million (~50 cashflows * 360
months * 1000 Monte-Carlo paths) numbers for one policy, which
gives for a million policies a 20 trillion numbers or 80TB of data
• It requires about a 20 minutes for a 2000 cores to generate such data
• Then data is grouped into ~500 cohorts, which gives 20,000,000 * 500
= 10 billion numbers or only 40GB of data
• The analytics and researches use that grouped data
• The MS SQL Server simply isn’t capable to perform required grouping
on such volume of data
Use case: Monte-Carlo simulation for life insurance
26Copyright © 2015 EPAM Systems
• In the financial sector, Monte Carlo method is used to assess the value of
companies, perform risk analysis, or calculate financial derivatives. The
method relies on repeated random sampling by running simulations
multiple times in order to calculate the same probabilities heuristically.
• Monte Carlo Simulations is suited very well for In-Memory grids
• Problems that fit the Monte Carlo method are easily split into parallel
execution
• Challenges are:
• To avoid storing the whole 80TB of all generated Monte-Carlo paths
• To provide faster generation of subset of Monte-Carlo paths for what-if
scenarios
Parallel computing and Monte-Carlo
27Copyright © 2015 EPAM Systems
• Use In-Memory Data Grid to generate future cash-flows, aggregate
them by cohorts, calculate conditional tail expectations, store and
query results in same computer cluster where data are evenly
distributed between cluster nodes, provides high performance, quick
response and scale-out capability.
• The proposed solution utilizes mixed computational paradigm:
• An Object mode, where objects are stored in distributed collections
(maps, lists, multidimensional arrays) for complex iterative calculations
and hierarchal roll-ups
• A SQL mode for easy integration with report generators and BI tools, where
collections of objects are treated as relational tables
In-Memory Data Grid: The Solution
28Copyright © 2015 EPAM Systems
• Policy distribution
• Cash-flow generation and:
• intra-node aggregation
• Inter-node aggregation
• Redistribution and Storing
• Querying and Analyzing
Data Layout
In-Memory Data Grid
Table1
G A
G A
G A
P P
1
A
1
D
P P
1
B
2
A
P P
1
C
1
E
Table2
P
1
A
P
1
B
P
1
C
SQL
... ... ...
...
...
...
G – cash-flows generator
A – cash-flows aggregator
P1
a partition A segment 1
29Copyright © 2015 EPAM Systems
• Policy distribution - policies are partitioned to maximize data
colocation, and to prevent data skew; partitions are dynamically
divided into fixed size segments. This technique called partition
overflow and it is a tradeoff between uniformity of distribution and
aggregation complexity
• Intra-node aggregation – as soon as cash-flow generation is done, it get
aggregated within the partition segment
• Inter-node aggregation - intermediate aggregated results from the
segments are combined together within whole partition
• Redistribution and Storing - to make even distribution and thus
effective distributed querying/calculations possible, data have to be
split into relatively small pieces and stored on all nodes
In-Memory Data Grid: The Solution (cont.)
30Copyright © 2015 EPAM Systems
• Querying and Analyzing
• An Object mode, a Distributed Executor Service is used for complex
iterative calculations and hierarchal roll-ups
• In SQL Mode each node contains a subset of the data allowing to leverage a
whole grid to process entire data set. Obviously, sequential scans are
performed in parallel. Joins are executed in parallel with technics known
as broadcasting and re-distribution
• Support for what-if scenarios
• Depends on what user has changed in cashflow definition, the system can
invalidate only affected partitions and avoid of costly recalculation of
entire set of Monte-Carlo paths
In-Memory Data Grid: The Solution (cont.)
31Copyright © 2015 EPAM Systems
• Batch processing and core SQL doesn’t scale to full blown simulations
• Hadoop stack doesn’t fit near real-time expectations even with
moderate data volumes
• If brute-force doesn’t work – don’t use it. At all
• Replace horizontal scaling with creative re-thinking of data models
and processes organization
Lessons learned
32Copyright © 2015 EPAM Systems
Q & A
33Copyright © 2015 EPAM Systems
In-Memory Computing
for Iterative CPU-
intensive Calculations
in Financial IndustryALEXANDRE BOUDNIK
SENIOR SOLUTION ARCHITECT
EPAM SYSTEMS

More Related Content

What's hot

Improving Traffic Prediction Using Weather Datawith Ramya Raghavendra
Improving Traffic Prediction Using Weather Datawith Ramya RaghavendraImproving Traffic Prediction Using Weather Datawith Ramya Raghavendra
Improving Traffic Prediction Using Weather Datawith Ramya Raghavendra
Spark Summit
 
Self-Service Analytics on Hadoop: Lessons Learned
Self-Service Analytics on Hadoop: Lessons LearnedSelf-Service Analytics on Hadoop: Lessons Learned
Self-Service Analytics on Hadoop: Lessons Learned
DataWorks Summit/Hadoop Summit
 
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
DataWorks Summit
 
Service quality monitoring system architecture
Service quality monitoring system architectureService quality monitoring system architecture
Service quality monitoring system architecture
Matsuo Sawahashi
 
Combining Machine Learning frameworks with Apache Spark
Combining Machine Learning frameworks with Apache SparkCombining Machine Learning frameworks with Apache Spark
Combining Machine Learning frameworks with Apache Spark
DataWorks Summit/Hadoop Summit
 
Containers and Big Data
Containers and Big DataContainers and Big Data
Containers and Big Data
DataWorks Summit
 
Sybase BAM Overview
Sybase BAM OverviewSybase BAM Overview
Sybase BAM Overview
Xu Jiang
 
SAM—streaming analytics made easy
SAM—streaming analytics made easySAM—streaming analytics made easy
SAM—streaming analytics made easy
DataWorks Summit
 
What's New in Apache Hive
What's New in Apache HiveWhat's New in Apache Hive
What's New in Apache Hive
DataWorks Summit
 
Apache Deep Learning 201
Apache Deep Learning 201Apache Deep Learning 201
Apache Deep Learning 201
DataWorks Summit
 
Cloudera Cares + DataKind | 7 May 2015 | London, UK
Cloudera Cares + DataKind | 7 May 2015 | London, UKCloudera Cares + DataKind | 7 May 2015 | London, UK
Cloudera Cares + DataKind | 7 May 2015 | London, UK
Cloudera, Inc.
 
Curing the Kafka Blindness – Streams Messaging Manager
Curing the Kafka Blindness – Streams Messaging ManagerCuring the Kafka Blindness – Streams Messaging Manager
Curing the Kafka Blindness – Streams Messaging Manager
DataWorks Summit
 
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise
Smart Enterprise Big Data Bus for the Modern Responsive EnterpriseSmart Enterprise Big Data Bus for the Modern Responsive Enterprise
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise
DataWorks Summit
 
Lego-like building blocks of Storm and Spark Streaming Pipelines
Lego-like building blocks of Storm and Spark Streaming PipelinesLego-like building blocks of Storm and Spark Streaming Pipelines
Lego-like building blocks of Storm and Spark Streaming Pipelines
DataWorks Summit/Hadoop Summit
 
Software architecture for data applications
Software architecture for data applicationsSoftware architecture for data applications
Software architecture for data applications
Ding Li
 
Synchronicity of a distributed financial system
Synchronicity of a distributed financial systemSynchronicity of a distributed financial system
Synchronicity of a distributed financial system
DataWorks Summit
 
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Tomek Borek
 
What's new in apache hive
What's new in apache hive What's new in apache hive
What's new in apache hive
DataWorks Summit
 
HDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical WorkshopHDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical Workshop
Hortonworks
 

What's hot (20)

data structure
data structuredata structure
data structure
 
Improving Traffic Prediction Using Weather Datawith Ramya Raghavendra
Improving Traffic Prediction Using Weather Datawith Ramya RaghavendraImproving Traffic Prediction Using Weather Datawith Ramya Raghavendra
Improving Traffic Prediction Using Weather Datawith Ramya Raghavendra
 
Self-Service Analytics on Hadoop: Lessons Learned
Self-Service Analytics on Hadoop: Lessons LearnedSelf-Service Analytics on Hadoop: Lessons Learned
Self-Service Analytics on Hadoop: Lessons Learned
 
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
Disaster Recovery Experience at CACIB: Hardening Hadoop for Critical Financia...
 
Service quality monitoring system architecture
Service quality monitoring system architectureService quality monitoring system architecture
Service quality monitoring system architecture
 
Combining Machine Learning frameworks with Apache Spark
Combining Machine Learning frameworks with Apache SparkCombining Machine Learning frameworks with Apache Spark
Combining Machine Learning frameworks with Apache Spark
 
Containers and Big Data
Containers and Big DataContainers and Big Data
Containers and Big Data
 
Sybase BAM Overview
Sybase BAM OverviewSybase BAM Overview
Sybase BAM Overview
 
SAM—streaming analytics made easy
SAM—streaming analytics made easySAM—streaming analytics made easy
SAM—streaming analytics made easy
 
What's New in Apache Hive
What's New in Apache HiveWhat's New in Apache Hive
What's New in Apache Hive
 
Apache Deep Learning 201
Apache Deep Learning 201Apache Deep Learning 201
Apache Deep Learning 201
 
Cloudera Cares + DataKind | 7 May 2015 | London, UK
Cloudera Cares + DataKind | 7 May 2015 | London, UKCloudera Cares + DataKind | 7 May 2015 | London, UK
Cloudera Cares + DataKind | 7 May 2015 | London, UK
 
Curing the Kafka Blindness – Streams Messaging Manager
Curing the Kafka Blindness – Streams Messaging ManagerCuring the Kafka Blindness – Streams Messaging Manager
Curing the Kafka Blindness – Streams Messaging Manager
 
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise
Smart Enterprise Big Data Bus for the Modern Responsive EnterpriseSmart Enterprise Big Data Bus for the Modern Responsive Enterprise
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise
 
Lego-like building blocks of Storm and Spark Streaming Pipelines
Lego-like building blocks of Storm and Spark Streaming PipelinesLego-like building blocks of Storm and Spark Streaming Pipelines
Lego-like building blocks of Storm and Spark Streaming Pipelines
 
Software architecture for data applications
Software architecture for data applicationsSoftware architecture for data applications
Software architecture for data applications
 
Synchronicity of a distributed financial system
Synchronicity of a distributed financial systemSynchronicity of a distributed financial system
Synchronicity of a distributed financial system
 
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
 
What's new in apache hive
What's new in apache hive What's new in apache hive
What's new in apache hive
 
HDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical WorkshopHDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical Workshop
 

Similar to IMCSummit 2015 - Day 1 Developer Track - In-memory Computing for Iterative CPU-intensive Calculations in the Financial Industry

Machine Learning for Capacity Management
 Machine Learning for Capacity Management Machine Learning for Capacity Management
Machine Learning for Capacity Management
EDB
 
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflowsCloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Yong Feng
 
IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...
IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...
IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...
In-Memory Computing Summit
 
Operational Intelligence Using Hadoop
Operational Intelligence Using HadoopOperational Intelligence Using Hadoop
Operational Intelligence Using HadoopDataWorks Summit
 
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Apex
 
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
 IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
Apache Apex
 
Stream Processing with Apache Apex
Stream Processing with Apache ApexStream Processing with Apache Apex
Stream Processing with Apache Apex
Pramod Immaneni
 
November 2013 HUG: Real-time analytics with in-memory grid
November 2013 HUG: Real-time analytics with in-memory gridNovember 2013 HUG: Real-time analytics with in-memory grid
November 2013 HUG: Real-time analytics with in-memory gridYahoo Developer Network
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014
Lari Hotari
 
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformIntro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
Apache Apex
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
Chris Kernaghan
 
The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
jClarity
 
Making Hadoop Realtime by Dr. William Bain of Scaleout Software
Making Hadoop Realtime by Dr. William Bain of Scaleout SoftwareMaking Hadoop Realtime by Dr. William Bain of Scaleout Software
Making Hadoop Realtime by Dr. William Bain of Scaleout Software
Data Con LA
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
Alex Moskvin
 
Next Gen Big Data Analytics with Apache Apex
Next Gen Big Data Analytics with Apache Apex Next Gen Big Data Analytics with Apache Apex
Next Gen Big Data Analytics with Apache Apex
DataWorks Summit/Hadoop Summit
 
New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S...
 New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S... New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S...
New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S...
Big Data Spain
 
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
Hendrik van Run
 
Suning OpenStack Cloud and Heat
Suning OpenStack Cloud and HeatSuning OpenStack Cloud and Heat
Suning OpenStack Cloud and Heat
Qiming Teng
 
25 snowflake
25 snowflake25 snowflake
25 snowflake
剑飞 陈
 
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache ApexHadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Apache Apex
 

Similar to IMCSummit 2015 - Day 1 Developer Track - In-memory Computing for Iterative CPU-intensive Calculations in the Financial Industry (20)

Machine Learning for Capacity Management
 Machine Learning for Capacity Management Machine Learning for Capacity Management
Machine Learning for Capacity Management
 
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflowsCloud nativecomputingtechnologysupportinghpc cognitiveworkflows
Cloud nativecomputingtechnologysupportinghpc cognitiveworkflows
 
IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...
IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...
IMCSummit 2015 - Day 1 Developer Track - Implementing Operational Intelligenc...
 
Operational Intelligence Using Hadoop
Operational Intelligence Using HadoopOperational Intelligence Using Hadoop
Operational Intelligence Using Hadoop
 
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
 
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
 IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
IoT Ingestion & Analytics using Apache Apex - A Native Hadoop Platform
 
Stream Processing with Apache Apex
Stream Processing with Apache ApexStream Processing with Apache Apex
Stream Processing with Apache Apex
 
November 2013 HUG: Real-time analytics with in-memory grid
November 2013 HUG: Real-time analytics with in-memory gridNovember 2013 HUG: Real-time analytics with in-memory grid
November 2013 HUG: Real-time analytics with in-memory grid
 
Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014Performance tuning Grails applications SpringOne 2GX 2014
Performance tuning Grails applications SpringOne 2GX 2014
 
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and TransformIntro to Apache Apex - Next Gen Platform for Ingest and Transform
Intro to Apache Apex - Next Gen Platform for Ingest and Transform
 
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deploymentsSAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
SAP Teched 2012 Session Tec3438 Automate IaaS SAP deployments
 
The Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance TuningThe Diabolical Developers Guide to Performance Tuning
The Diabolical Developers Guide to Performance Tuning
 
Making Hadoop Realtime by Dr. William Bain of Scaleout Software
Making Hadoop Realtime by Dr. William Bain of Scaleout SoftwareMaking Hadoop Realtime by Dr. William Bain of Scaleout Software
Making Hadoop Realtime by Dr. William Bain of Scaleout Software
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
Next Gen Big Data Analytics with Apache Apex
Next Gen Big Data Analytics with Apache Apex Next Gen Big Data Analytics with Apache Apex
Next Gen Big Data Analytics with Apache Apex
 
New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S...
 New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S... New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S...
New usage model for real-time analytics by Dr. WILLIAM L. BAIN at Big Data S...
 
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
 
Suning OpenStack Cloud and Heat
Suning OpenStack Cloud and HeatSuning OpenStack Cloud and Heat
Suning OpenStack Cloud and Heat
 
25 snowflake
25 snowflake25 snowflake
25 snowflake
 
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache ApexHadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
Hadoop Summit SJ 2016: Next Gen Big Data Analytics with Apache Apex
 

More from In-Memory Computing Summit

IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...
IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...
IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...
IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...
IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing HubIMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
In-Memory Computing Summit
 
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
In-Memory Computing Summit
 
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
In-Memory Computing Summit
 
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
In-Memory Computing Summit
 
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X PlatformIMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage TierIMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...
IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...
IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent Memory
IMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent MemoryIMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent Memory
IMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent Memory
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise GradeIMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
In-Memory Computing Summit
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
In-Memory Computing Summit
 

More from In-Memory Computing Summit (20)

IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...
IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...
IMC Summit 2016 Breakout - Per Minoborg - Work with Multiple Hot Terabytes in...
 
IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...
IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...
IMC Summit 2016 Breakout - Henning Andersen - Using Lock-free and Wait-free I...
 
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing HubIMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
 
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
IMC Summit 2016 Breakout - Nikita Shamgunov - Propelling IoT Innovation with ...
 
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
 
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
IMC Summit 2016 Innovation - Derek Nelson - PipelineDB: The Streaming-SQL Dat...
 
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
IMC Summit 2016 Innovation - Dennis Duckworth - Lambda-B-Gone: The In-memory ...
 
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
IMC Summit 2016 Innovation - Steve Wilkes - Tap Into Your Enterprise – Why Da...
 
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X PlatformIMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
IMC Summit 2016 Innovation - Girish Mutreja - Unveiling the X Platform
 
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage TierIMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
IMC Summit 2016 Breakout - Ken Gibson - The In-Place Working Storage Tier
 
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
IMC Summit 2016 Breakout - Brian Bulkowski - NVMe, Storage Class Memory and O...
 
IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...
IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...
IMC Summit 2016 Breakout - Yanping Wang - Non-volatile Generic Object Program...
 
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
 
IMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent Memory
IMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent MemoryIMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent Memory
IMC Summit 2016 Breakout - Gordon Patrick - Developments in Persistent Memory
 
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
IMC Summit 2016 Breakout - Girish Kathalagiri - Decision Making with MLLIB, S...
 
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise GradeIMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
IMC Summit 2016 Breakout - Steve Wikes - Making IMC Enterprise Grade
 
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
IMC Summit 2016 Breakout - Noah Arliss - The Truth: How to Test Your Distribu...
 
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
 
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
IMC Summit 2016 Breakout - Girish Mutreja - Extreme Transaction Processing in...
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
 

Recently uploaded

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 

Recently uploaded (20)

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 

IMCSummit 2015 - Day 1 Developer Track - In-memory Computing for Iterative CPU-intensive Calculations in the Financial Industry

  • 1. In-Memory Computing for Iterative CPU-intensive Calculations in Financial Industry In-Memory Computing Summit 2015 June 29-30, 2015
  • 2. 2Copyright © 2015 EPAM Systems Alexandre Boudnik Senior Solution Architect, EPAM Systems Alexandre_Boudnik@epam.com EPAM Big Data Competency Center OrgCompetencyBigData@epam.com Contacts
  • 3. 3Copyright © 2015 EPAM Systems • I used to work on software development tools like compilers, hardware emulators, and testing tools for real-time systems • My first American job was to lead development of SQL query engine for MPP grid in early 2000 • Now I’m working with many of the Big Data and Fast Data aspects: • Hadoop ecosystem for enterprise (data governance, lineage) • Streaming, complex event processing, in-memory caches and real-time graphs processing • Building the scalable, fault tolerant distributed systems on clusters Who I am
  • 4. 4Copyright © 2015 EPAM Systems • Out clients in financial advisers want: • To get support for complex iterative calculations • To get a faster response than conventional tools provide • To have better (faster) support for what-if scenarios • To call calculations from web-based tools and from MS Excel • Drawbacks of conventional BI tools and SQL technologies: • Not enough expandability (it is hard to use custom code) • Scalability, Concurrency and Response time The problem our customers have faced
  • 5. 5Copyright © 2015 EPAM Systems Using in-memory technologies for financial calculations: • Generalized approach to parallel recursive calculations on a grid • Memory-efficient object data model to reduce memory footprint • OData (hierarchal data model) on top of object data model Techniques and Practices to Develop
  • 6. 6Copyright © 2015 EPAM Systems Wealth Management
  • 7. 7Copyright © 2015 EPAM Systems To manage client portfolios effectively, organizations need to calculate various financial functions: • Over wide period of time • For many financial vehicles (instruments) • Using multiple hierarchal user-defined groupings (roll-up) • Providing ability to compare performance with standard or user defined benchmarks • Providing comfortable user experience (response time) • Near-real time what-if scenarios • Providing concurrent access for hundreds of users Use case: Wealth Management Organizations
  • 8. 8Copyright © 2015 EPAM Systems • SQL-based BI tools out-of-the box: • Are ineffective in supporting complex calculation defined on hierarchal structures along time dimension • Don’t provide sufficient support for complex calculations • Provide limited scalability • Using the stored procedures to expand functionality is not an perfect answer: • Can be used for iterative calculations • High-Level languages like java and C# are available for some platforms • The differences in stored procedure APIs lead to vendor lock Traditional SQL-based tools: road blocks
  • 9. 9Copyright © 2015 EPAM Systems • Architecture based on Distributed In-Memory Data Grid provides high performance, quick response and scalability in terms of concurrent load, amount of data, and complex calculations • There are many implementations, both proprietary and open-source, with same computation models and very similar API • Vendors we had considered: • GridGain, Gigaspaces XAP, SAP Hana, MS SQL Server In-Memory 2012 and 2014, Aerospike, Clustrix, Tibco ActiveSpaces, ScaleOut Software, Pivotal’s gemfire/sqlfire, Oracle Coherence, MongoDB, Haselcast In-Memory Data Grid: getting out of the woods
  • 10. 10Copyright © 2015 EPAM Systems • Speed-up the complex iterative CPU-intensive financial calculations: • Fast access to in-memory data • Fast execution of individual requests by implementing parallel versions of calculation algorithms • Achieve fast response under highly concurrent load: • Load balancing • Parallel query execution • Distributed calculations Rationales for In-Memory Data Grid
  • 11. 11Copyright © 2015 EPAM Systems Core Solution: Architecture Core Solution Calculation EngineOperational Data Applications (One Node shown) Changes Data Sources ETL Changes Load on start Custom Code Persistent Data Access Report UI 3rd Party SaaS OData Data Warehouse
  • 12. 12Copyright © 2015 EPAM Systems • Operational Data – represents a composition of transactional data sources • Calculation Engine – uses In-Memory Data Grid to performs Custom Calculation Code on a cluster • In-Memory Data Grid – cluster environment such as GridGain Data Fabric or Gigaspaces XAP. Control all aspects of storing data and distributed calculations on a cluster • Custom Calculation Code – implements various calculation algorithms • Persistent Store – used to store Calculation Engine’s operational data, when In-Memory Data Grid is off Core Solution: Components
  • 13. 13Copyright © 2015 EPAM Systems • It performs one-path calculations, like: • Cumulative and Annualized performance Reports, Allocation Reports with different types of aggregation • Calculation of Alpha, Beta, Average Capital Base, TWR (Time-Weighted Return), Currency conversion • It performs iterative calculations, like: • IRR (Internal Rate of Return) – requires to solve nonlinear equations (~2 ms per node) • The OData v4 (http://www.odata.org) has been implemented based on open source Apache OLingo library (https://olingo.apache.org) Calculation Engine Functionality
  • 14. 14Copyright © 2015 EPAM Systems Typical Data Flow Cloud User SaaS OData Planner HTTP Request REST/OData OData HTTP Response calculation [parameters] ProcessorProcessor Call Results
  • 15. 15Copyright © 2015 EPAM Systems • Typical OData query to show TWR for last year: $select=Name,TwrYtd&$filter=Date eq ‘2014-12-31' and CurrencyISO eq 'USD' • In EDM file: <field name="TwrYtd" type="Edm.Double"> twr(args.setMonthOffset(-12).setAnnualized(true))</field> <field name="Name" type="Edm.String"> hrhy(args).name</field> • MVEL expressions binds analytical functions to column definitions: • MVEL parser builds AST for columns and filter • Analytical functions request their dependencies • Planner builds dependencies graph OData: Binding Custom Code to Data Model
  • 16. 16Copyright © 2015 EPAM Systems • Dividing – need to be sure that these is the way to divide the whole job into independent pieces or to the pieces that at least could be executed in parallel to some extent: • Calculations on leaves: • They are usually independent and thus could be performed in parallel • Calculations and aggregation on nodes should either: • For additive calculations like TWR – wait for all underlying calculations • For semi-additive calculations like IRR – collect data needed to calculate – then could be done in parallel • Synchronization – combine individual results into result of whole job and suspend execution of pieces until they get all their dependencies satisfied • Callable and Future have been used since Java 5 • Recursive algorithms in parallel environment are potential victims of thread starvation Divide and Conquer Synchronize: Parallel implementation of algorithms
  • 17. 17Copyright © 2015 EPAM Systems • When number of nodes waiting for its prerequisites exceeds number of available threads in fixed size Thread pool, the application slows down • There is a technique called “continuation”, which is devised to address thread starvation: • Start a child task (which will possibly produce a number of child jobs), get a task future • Detach this current job from a worker thread, allowing it to run other jobs • Register a completion listener on the task future, that will resume this current job (attach it back to a worker thread) • When resumed back - handle the child task result and return • It is really hard to design, write the code and debug the continuation- based implementation of recursive algorithms Thread starvation
  • 18. 18Copyright © 2015 EPAM Systems Generalized approach uses the idea of topological sort where independent vertices have been removed. There are two moving parts: • Planner, which builds graph of dependencies, which is very obvious task for tree-like structures and oriented graphs • Processor, which is looking for independent leaves and nodes and submit them to the grid for execution Non-blocking Parallel Recursive Calculations
  • 19. 19Copyright © 2015 EPAM Systems • Processor never uses future.get() method, it registers completion listener instead • When listener get control, it checks for nodes, for which it would be the last dependence, and submit them for the execution • When listener found the last node (root in tree-like structures) in dependency graph, it posts waiting thread with result of whole calculation • When Processor can not find any submittable node, it means that it found a cyclic dependency How it works
  • 20. 20Copyright © 2015 EPAM Systems Dependency-driven execution of recursive calculation allows to: • Avoid thread starvation • Use external thread (webservices’ thread in case of OData) for synchronization • Make parallel implementation of algorithm much more straight- forward • Simplify cache management for once calculated values The City That Never Sleeps The Grid That Never Waits
  • 21. 21Copyright © 2015 EPAM Systems • Object are more expensive than a primitives, thus Integer takes 16 bytes memory to store its value, while int takes only 4 bytes • Most of in-memory grids offer only one data structure to store in-memory data on a grid–cache, which is sharded map. You may significantly reduce memory footprint by re-organizing data structures from mechanically converted relational data structures to object model: • Structure for storing currency conversion table could be represented like this: • GridCache<Integer, Pair<Date, Double>> currencies; • Or like this, using implied array index as a day since 1 Jan 1904: • GridCache<Integer, double[]> currencies; • When you have less than a 10% values, you may use sparse arrays: • GridCache<Integer, DoubleMatrix1D<Double>> currencies; Memory-efficient Object Data Model
  • 22. 22Copyright © 2015 EPAM Systems • The Goldman Sachs collection framework offers a galore of very memory-efficient collections (https://github.com/goldmansachs/gs- collections/wiki) Looking forward to use more open source
  • 23. 23Copyright © 2015 EPAM Systems In real-life you have to keep in mind: • How to make calculations parallel • Design of memory-efficient object data model • Expandable data model on top objects for easy integration Lessons learned
  • 24. 24Copyright © 2015 EPAM Systems Life insurance
  • 25. 25Copyright © 2015 EPAM Systems In life insurance industry companies use Monte-Carlo simulation to estimate the value of its policies • Typically the process generates ~20 million (~50 cashflows * 360 months * 1000 Monte-Carlo paths) numbers for one policy, which gives for a million policies a 20 trillion numbers or 80TB of data • It requires about a 20 minutes for a 2000 cores to generate such data • Then data is grouped into ~500 cohorts, which gives 20,000,000 * 500 = 10 billion numbers or only 40GB of data • The analytics and researches use that grouped data • The MS SQL Server simply isn’t capable to perform required grouping on such volume of data Use case: Monte-Carlo simulation for life insurance
  • 26. 26Copyright © 2015 EPAM Systems • In the financial sector, Monte Carlo method is used to assess the value of companies, perform risk analysis, or calculate financial derivatives. The method relies on repeated random sampling by running simulations multiple times in order to calculate the same probabilities heuristically. • Monte Carlo Simulations is suited very well for In-Memory grids • Problems that fit the Monte Carlo method are easily split into parallel execution • Challenges are: • To avoid storing the whole 80TB of all generated Monte-Carlo paths • To provide faster generation of subset of Monte-Carlo paths for what-if scenarios Parallel computing and Monte-Carlo
  • 27. 27Copyright © 2015 EPAM Systems • Use In-Memory Data Grid to generate future cash-flows, aggregate them by cohorts, calculate conditional tail expectations, store and query results in same computer cluster where data are evenly distributed between cluster nodes, provides high performance, quick response and scale-out capability. • The proposed solution utilizes mixed computational paradigm: • An Object mode, where objects are stored in distributed collections (maps, lists, multidimensional arrays) for complex iterative calculations and hierarchal roll-ups • A SQL mode for easy integration with report generators and BI tools, where collections of objects are treated as relational tables In-Memory Data Grid: The Solution
  • 28. 28Copyright © 2015 EPAM Systems • Policy distribution • Cash-flow generation and: • intra-node aggregation • Inter-node aggregation • Redistribution and Storing • Querying and Analyzing Data Layout In-Memory Data Grid Table1 G A G A G A P P 1 A 1 D P P 1 B 2 A P P 1 C 1 E Table2 P 1 A P 1 B P 1 C SQL ... ... ... ... ... ... G – cash-flows generator A – cash-flows aggregator P1 a partition A segment 1
  • 29. 29Copyright © 2015 EPAM Systems • Policy distribution - policies are partitioned to maximize data colocation, and to prevent data skew; partitions are dynamically divided into fixed size segments. This technique called partition overflow and it is a tradeoff between uniformity of distribution and aggregation complexity • Intra-node aggregation – as soon as cash-flow generation is done, it get aggregated within the partition segment • Inter-node aggregation - intermediate aggregated results from the segments are combined together within whole partition • Redistribution and Storing - to make even distribution and thus effective distributed querying/calculations possible, data have to be split into relatively small pieces and stored on all nodes In-Memory Data Grid: The Solution (cont.)
  • 30. 30Copyright © 2015 EPAM Systems • Querying and Analyzing • An Object mode, a Distributed Executor Service is used for complex iterative calculations and hierarchal roll-ups • In SQL Mode each node contains a subset of the data allowing to leverage a whole grid to process entire data set. Obviously, sequential scans are performed in parallel. Joins are executed in parallel with technics known as broadcasting and re-distribution • Support for what-if scenarios • Depends on what user has changed in cashflow definition, the system can invalidate only affected partitions and avoid of costly recalculation of entire set of Monte-Carlo paths In-Memory Data Grid: The Solution (cont.)
  • 31. 31Copyright © 2015 EPAM Systems • Batch processing and core SQL doesn’t scale to full blown simulations • Hadoop stack doesn’t fit near real-time expectations even with moderate data volumes • If brute-force doesn’t work – don’t use it. At all • Replace horizontal scaling with creative re-thinking of data models and processes organization Lessons learned
  • 32. 32Copyright © 2015 EPAM Systems Q & A
  • 33. 33Copyright © 2015 EPAM Systems In-Memory Computing for Iterative CPU- intensive Calculations in Financial IndustryALEXANDRE BOUDNIK SENIOR SOLUTION ARCHITECT EPAM SYSTEMS