In classical software development, developers write explicit instructions in a programming language to hardcode the explicit behavior of software systems. By writing each line of code, the programmer instructs the software to have the desirable behavior by exploring a specific point in program space.
Recently, however, software systems are adding learning components that, instead of hardcoding an explicit behavior, learn a behavior through data. The learning-intensive software systems are written in terms of models and their parameters that need to be adjusted based on data. In learning-enabled systems, we specify some constraints on the behavior of a desirable program (e.g., a data set of input–output pairs of examples) and use the computational resources to search through the program space to find a program that satisfies the constraints. In neural networks, we restrict the search to a continuous subset of the program space.
This talk provides experimental evidence of making tradeoffs for deep neural network models, using the Deep Neural Network Architecture system as a case study. Concrete experimental results are presented; also featured are additional case studies in big data (Storm, Cassandra), data analytics (configurable boosting algorithms), and robotics applications.
1) Machine learning systems are increasingly configurable, making their performance behavior complex and difficult to understand. 2) The document discusses a social media monitoring system called SocialSensor, which uses a configurable data processing pipeline. 3) By exploring different system configurations, the performance of SocialSensor could potentially be improved without requiring more resources. This demonstrates an opportunity to optimize performance through configuration tuning.
Transfer Learning for Performance Analysis of Machine Learning SystemsPooyan Jamshidi
This document discusses transfer learning approaches for analyzing the performance of machine learning systems. It begins with the presenter's background and credentials. It then notes that today's most popular systems are highly configurable, but understanding how configurations impact performance is challenging. The document uses a case study of a social media analytics system called SocialSensor to illustrate the opportunity of exploring different configurations to improve performance without extra resources. Testing various configurations of SocialSensor's data processing pipelines revealed that the default was suboptimal, and an optimal configuration found through experimentation significantly outperformed the default and an expert's recommendation. The document concludes that default configurations are often bad, but transfer learning approaches can help identify configurations that noticeably improve performance.
Transfer Learning for Performance Analysis of Highly-Configurable SoftwarePooyan Jamshidi
This document discusses using transfer learning to analyze the performance of configurable software systems. It begins by noting that today's most popular software systems are highly configurable and that their increasing configurability makes understanding performance behavior difficult. The author then describes using transfer learning to enable learning performance models more efficiently by reusing data from related source domains. This allows developers and users to better understand performance tradeoffs and find optimal configurations.
The document discusses the paradigm shift in search engines from document-based to consensus-based search. It notes the increase in subjective queries as more personal opinions and views are shared online. Current search engines are limited in addressing subjective queries as the answer requires analyzing the consensus view from many opinions rather than just top documents. The document introduces the concept of a consensus search engine that can process and analyze the large number of implicit votes from personal opinions online to provide answers based on aggregated public sentiment.
This document discusses configuration management in Drupal 8. It describes experiments with a settings API that allows configuration to be deployed from one environment to another (e.g. dev to staging to live). Settings can be overridden in different places and relations allow settings to track dependencies. A settings log records all changes for replaying updates. The goals include a features-like system for exports and pushing settings between sites over web services. Known issues include handling specific configuration requirements and preventing deployment if requirements are missing.
12 core technologies you should learn, love, and hate to be a 'real' technocratJonathan Linowes
1. The document discusses 12 core technologies that one should learn as a technocrat, including the command line, HTML, CSS, HTTP, programming, JavaScript, MVC frameworks, databases, hosting, and media technologies.
2. It provides brief explanations and examples for each technology, such as describing HTML tags and the DOM, CSS selectors and media types, components of an HTTP request and response, concepts in programming like objects and control flow, and basics of media resolution, compression and formats.
3. The document emphasizes learning the technologies through both understanding concepts as well as gaining hands-on experience with examples and tools for each one.
[2C6]SQLite DB 의 입출력 특성분석 : Android 와 Tizen 사례NAVER D2
This document analyzes the I/O characteristics of SQLite databases in mobile platforms like Android and Tizen. It finds that SQLite database I/O is dominant, with small 4KB writes being common. SQLite journaling and Ext4 filesystem journaling together generate excessive I/O. Various optimizations are discussed, including using SQLite's WAL journal mode, filesystem mount options, fdatasync(), and reorganizing how databases are used by platforms and applications.
The document discusses common mistakes made when benchmarking systems and provides examples. It notes that benchmarks should have a specific question in mind and clearly define the environment, load, and requirements being tested. Common errors discussed include failing to account for caches, warmup times, background noise, and using an unrealistic test environment. The document emphasizes the importance of collecting statistical metrics like percentiles and maximums, not just averages, to understand performance under different levels of load.
1) Machine learning systems are increasingly configurable, making their performance behavior complex and difficult to understand. 2) The document discusses a social media monitoring system called SocialSensor, which uses a configurable data processing pipeline. 3) By exploring different system configurations, the performance of SocialSensor could potentially be improved without requiring more resources. This demonstrates an opportunity to optimize performance through configuration tuning.
Transfer Learning for Performance Analysis of Machine Learning SystemsPooyan Jamshidi
This document discusses transfer learning approaches for analyzing the performance of machine learning systems. It begins with the presenter's background and credentials. It then notes that today's most popular systems are highly configurable, but understanding how configurations impact performance is challenging. The document uses a case study of a social media analytics system called SocialSensor to illustrate the opportunity of exploring different configurations to improve performance without extra resources. Testing various configurations of SocialSensor's data processing pipelines revealed that the default was suboptimal, and an optimal configuration found through experimentation significantly outperformed the default and an expert's recommendation. The document concludes that default configurations are often bad, but transfer learning approaches can help identify configurations that noticeably improve performance.
Transfer Learning for Performance Analysis of Highly-Configurable SoftwarePooyan Jamshidi
This document discusses using transfer learning to analyze the performance of configurable software systems. It begins by noting that today's most popular software systems are highly configurable and that their increasing configurability makes understanding performance behavior difficult. The author then describes using transfer learning to enable learning performance models more efficiently by reusing data from related source domains. This allows developers and users to better understand performance tradeoffs and find optimal configurations.
The document discusses the paradigm shift in search engines from document-based to consensus-based search. It notes the increase in subjective queries as more personal opinions and views are shared online. Current search engines are limited in addressing subjective queries as the answer requires analyzing the consensus view from many opinions rather than just top documents. The document introduces the concept of a consensus search engine that can process and analyze the large number of implicit votes from personal opinions online to provide answers based on aggregated public sentiment.
This document discusses configuration management in Drupal 8. It describes experiments with a settings API that allows configuration to be deployed from one environment to another (e.g. dev to staging to live). Settings can be overridden in different places and relations allow settings to track dependencies. A settings log records all changes for replaying updates. The goals include a features-like system for exports and pushing settings between sites over web services. Known issues include handling specific configuration requirements and preventing deployment if requirements are missing.
12 core technologies you should learn, love, and hate to be a 'real' technocratJonathan Linowes
1. The document discusses 12 core technologies that one should learn as a technocrat, including the command line, HTML, CSS, HTTP, programming, JavaScript, MVC frameworks, databases, hosting, and media technologies.
2. It provides brief explanations and examples for each technology, such as describing HTML tags and the DOM, CSS selectors and media types, components of an HTTP request and response, concepts in programming like objects and control flow, and basics of media resolution, compression and formats.
3. The document emphasizes learning the technologies through both understanding concepts as well as gaining hands-on experience with examples and tools for each one.
[2C6]SQLite DB 의 입출력 특성분석 : Android 와 Tizen 사례NAVER D2
This document analyzes the I/O characteristics of SQLite databases in mobile platforms like Android and Tizen. It finds that SQLite database I/O is dominant, with small 4KB writes being common. SQLite journaling and Ext4 filesystem journaling together generate excessive I/O. Various optimizations are discussed, including using SQLite's WAL journal mode, filesystem mount options, fdatasync(), and reorganizing how databases are used by platforms and applications.
The document discusses common mistakes made when benchmarking systems and provides examples. It notes that benchmarks should have a specific question in mind and clearly define the environment, load, and requirements being tested. Common errors discussed include failing to account for caches, warmup times, background noise, and using an unrealistic test environment. The document emphasizes the importance of collecting statistical metrics like percentiles and maximums, not just averages, to understand performance under different levels of load.
The document discusses various PHP concepts:
- PHP allows creating dynamic web content that interacts with databases. It is used for web application development.
- Sessions store temporary data across HTTP requests to allow transactional functionality across multiple pages for a visitor.
- PEAR is a framework and distribution system for reusable PHP components that provides a standardized library, distribution system, and coding style.
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...DevOpsDays Tel Aviv
One of the critical factors for development velocity is software correctness. Our ability to develop and ship new features fast is bounded by our ability to validate several aspects of the change: * Does the feature meet the requirements? * How does the feature affect existing code, and how can it affect the production environment? With continues codebase growth and new features being added, naturally our productivity decreases, and our need to improve the guarantees for quality and correctness increase.
In this talk, I’ll focus on testing environments: why developers need a self-serve platform to create a full functioning environment on-demand, how such environments should be managed, and how can one restore part of the lost velocity. I’ll cover an internal system we use at AppsFlyer called ‘Namespaces’ that addresses the issue with the help of Mesos / Marathon, Docker, Traefik, and Consul.
Intro to Machine Learning with TF- workshopProttay Karim
A TensorFlow workshop by Google Developer Student Club - RMIT University. Find us @ https://gdsc.community.dev/rmit-university-melbourne/
A workshop by-
Patrick Haralabidis
Chapter Lead-Mobile, Flybuys
Melbourne TensorFlow User Group Organiser
Elasticsearch sur Azure : Make sense of your (BIG) data !Microsoft
The document is a presentation about using Elasticsearch on Azure. It introduces Elasticsearch and its features like scalability, plug and play functionality, and REST/JSON interface. It demonstrates how to deploy Elasticsearch on Azure by using unicast discovery across virtual machines or by using an Azure cloud plugin. It also shows how to scale out Elasticsearch on Azure by starting additional nodes and discusses using Elasticsearch to analyze big data on Azure.
Protect Your Payloads: Modern Keying TechniquesLeo Loobeek
The document discusses keying techniques for encrypting payloads in a way that only allows decryption on specific target systems. It covers using local system resources like environment variables or file paths to derive encryption keys. It also introduces using remote resources like web pages or DNS records hosted by the attacker to control when payloads execute. Tools like Ebowla, KeyRing, and KeyServer are presented as ways to implement these keying techniques for various scripting languages and to automate controlling remote keys. The goal is to make payloads only executable on intended targets and to maintain control over payload execution.
This document provides an agenda for a 10 hour PowerShell training course. The agenda covers PowerShell fundamentals like variables, data types, conditions, loops, cmdlets, functions, modules, and execution policy. It also covers more advanced topics like PowerShell remoting, working with Active Directory using PowerShell, and building PowerShell scripts. The document includes examples to illustrate various PowerShell concepts. The training will be delivered by Pardha Sai who works as an Automation Engineer.
React.js Basics document is summarized as follows:
[1] The document demonstrates how to build a React component to display speaker data grouped into rows, including conditionally displaying additional info for a selected speaker.
[2] It shows an initial proof of concept rendering static data, then fetching data asynchronously and handling the initial empty state.
[3] Child components are built to display each row and speaker, and functionality is added to track a selected speaker and display additional info.
This provides a concise overview of the key aspects covered in the React basics document, including component structure, asynchronous data handling, and adding interactivity.
Building Reactive Systems with Akka (in Java 8 or Scala)Jonas Bonér
Learn how to build Reactive Systems with Akka. Examples in both Java 8 and Scala.
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand. We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications.
In this talk we will introduce you to Akka and discuss how it can help you deliver on the four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven. We will start with the basics of Akka and work our way towards some of its more advanced modules such as Akka Cluster and Akka Persistence—all driven through code and practical examples.
Python and EM CLI: The Enterprise Management Super ToolsSeth Miller
Release 3 of Enterprise Manager gives the command line interface for EM a distinct advantage by moving the EMCLI functionality into Jython, a Java implementation of the Python programming language.
This session will provide an introduction to Python and give attendees a crash course in the newest version of EMCLI so they can get started using this powerful tool in their environments right away.
Learning Objectives:
-- Evaluate where Python can provide solutions in other aspects of the DBA's responsibility including automating password changes and backups.
-- Understand how to implement and use release 3 of EMCLI. Differentiate between the Jython architecture of release 3 versus earlier versions of EMCLI.
-- Have a basic understanding of and be able to construct simple scripts in Python.
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
At Ubisoft Technology Group, we've created a platform for video game production to share game assets, in-game footage, and animations across the entire company. Ease of search and good UX were incredibly important for an audience of artists and creative types. This is where the Web and a powerful JavaScript framework came in; we chose Ext JS for its robustness and scalability. In this session, we'll showcase two different applications and dive into the technical aspects of designing the UI for a faceted search based on Elasticsearch.
Prepares the students for (and is a prerequisite for) the more advanced material students will encounter in later courses. Data structures organize data Þ more efficient programs.
Modern, Scalable, Ambitious apps with Ember.jsMike North
Emberjs is an opinionated web UI framework focused on developer productivity. I will introduce the basics of the framework, and provide several examples of where ember saves an unprecedented amount of time for dev teams. Additionally, I'll cover ember-cli, the extensible build tool that the Emberjs and Angular communities are depending on for code generation, asset compilation, and running tests
Objective-C Crash Course for Web DevelopersJoris Verbogt
These are the slides of my SXSW 2010 Objective-C Crash Course for Web Developers.
The code samples (and the keynote document) can also be downloaded from http://workshop.verbogt.nl/
This document contains biographical information about Boulos Dib, an independent consultant specializing in software development. It provides details about Dib's early experience with personal computers and programming languages. It also lists upcoming presentations by Dib on LightSwitch and Silverlight at the NYC Code Camp in October 2011. The document concludes with an overview of PowerShell scripting.
Derrière ce titre putaclic se cache une réalité pour une partie de notre industrie.
Les boucles for/while sont des structures itératives proposant le plus bas niveau d'abstraction. Les langages modernes proposent encore de nos jours ces structures car elles ont leur utilité dans quelques cas exceptionnels.
Ces 10 dernières années, de nouvelles structures d'itérations sont apparues, proposant un plus haut niveau d'abstraction : donc une meilleure productivité, moins de ligne de code, donc moins de bug potentiels (que nous décrirons).
Nous partirons d'exemples de code simple et montrerons leur équivalent via ces nouvelles structures puis observerons les avantages (et inconvénients ?). Les exemples seront en JavaScript mais bien entendu applicable dans d'autres langages (Java, C#, Python, Ruby, C++, Scala, Go, Rust, ...).
Cassandra & puppet, scaling data at $15 per monthdaveconnors
Constant Contact shares lessons learned from DevOps approach to implementing Cassandra to manage social media data for over 400k small business customers. Puppet is the critical in our tool chain. Single most important factor was the willingness of Development and Operations to stretch beyond traditional roles and responsibilities.
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachPooyan Jamshidi
LWF Chain graphs were introduced by Lauritzen, Wermuth, and Frydenberg as a generalization of graphical models based on undirected graphs and DAGs. From the causality point of view, in an LWF CG: Directed edges represent direct causal effects. Undirected edges represent causal effects due to interference, which occurs when an individual’s outcome is influenced by their social interaction with other population members, e.g., in situations that involve contagious agents, educational programs, or social networks. The construction of chain graph models is a challenging task that would be greatly facilitated by automation.
Markov blanket discovery has an important role in structure learning of Bayesian network. It is surprising, however, how little attention it has attracted in the context of learning LWF chain graphs. In this work, we provide a graphical characterization of Markov blankets in chain graphs. The characterization is different from the well-known one for Bayesian networks and generalizes it. We provide a novel scalable and sound algorithm for Markov blanket discovery in LWF chain graphs. We also provide a sound and scalable constraint-based framework for learning the structure of LWF CGs from faithful causally sufficient data. With the use of our algorithm, the problem of structure learning is reduced to finding an efficient algorithm for Markov blanket discovery in LWF chain graphs. This greatly simplifies the structure-learning task and makes a wide range of inference/learning problems computationally tractable because our approach exploits locality.
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...Pooyan Jamshidi
We enable reliable and dependable self‐adaptations of component connectors in unreliable environments with imperfect monitoring facilities and conflicting user opinions about adaptation policies by developing a framework which comprises: (a) mechanisms for robust model evolution, (b) a method for adaptation reasoning, and (c) tool support that allows an end‐to‐end application of the developed techniques in real‐world domains.
More Related Content
Similar to Architectural Tradeoff in Learning-Based Software
The document discusses various PHP concepts:
- PHP allows creating dynamic web content that interacts with databases. It is used for web application development.
- Sessions store temporary data across HTTP requests to allow transactional functionality across multiple pages for a visitor.
- PEAR is a framework and distribution system for reusable PHP components that provides a standardized library, distribution system, and coding style.
Deploy and Destroy: Testing Environments - Michael Arenzon - DevOpsDays Tel A...DevOpsDays Tel Aviv
One of the critical factors for development velocity is software correctness. Our ability to develop and ship new features fast is bounded by our ability to validate several aspects of the change: * Does the feature meet the requirements? * How does the feature affect existing code, and how can it affect the production environment? With continues codebase growth and new features being added, naturally our productivity decreases, and our need to improve the guarantees for quality and correctness increase.
In this talk, I’ll focus on testing environments: why developers need a self-serve platform to create a full functioning environment on-demand, how such environments should be managed, and how can one restore part of the lost velocity. I’ll cover an internal system we use at AppsFlyer called ‘Namespaces’ that addresses the issue with the help of Mesos / Marathon, Docker, Traefik, and Consul.
Intro to Machine Learning with TF- workshopProttay Karim
A TensorFlow workshop by Google Developer Student Club - RMIT University. Find us @ https://gdsc.community.dev/rmit-university-melbourne/
A workshop by-
Patrick Haralabidis
Chapter Lead-Mobile, Flybuys
Melbourne TensorFlow User Group Organiser
Elasticsearch sur Azure : Make sense of your (BIG) data !Microsoft
The document is a presentation about using Elasticsearch on Azure. It introduces Elasticsearch and its features like scalability, plug and play functionality, and REST/JSON interface. It demonstrates how to deploy Elasticsearch on Azure by using unicast discovery across virtual machines or by using an Azure cloud plugin. It also shows how to scale out Elasticsearch on Azure by starting additional nodes and discusses using Elasticsearch to analyze big data on Azure.
Protect Your Payloads: Modern Keying TechniquesLeo Loobeek
The document discusses keying techniques for encrypting payloads in a way that only allows decryption on specific target systems. It covers using local system resources like environment variables or file paths to derive encryption keys. It also introduces using remote resources like web pages or DNS records hosted by the attacker to control when payloads execute. Tools like Ebowla, KeyRing, and KeyServer are presented as ways to implement these keying techniques for various scripting languages and to automate controlling remote keys. The goal is to make payloads only executable on intended targets and to maintain control over payload execution.
This document provides an agenda for a 10 hour PowerShell training course. The agenda covers PowerShell fundamentals like variables, data types, conditions, loops, cmdlets, functions, modules, and execution policy. It also covers more advanced topics like PowerShell remoting, working with Active Directory using PowerShell, and building PowerShell scripts. The document includes examples to illustrate various PowerShell concepts. The training will be delivered by Pardha Sai who works as an Automation Engineer.
React.js Basics document is summarized as follows:
[1] The document demonstrates how to build a React component to display speaker data grouped into rows, including conditionally displaying additional info for a selected speaker.
[2] It shows an initial proof of concept rendering static data, then fetching data asynchronously and handling the initial empty state.
[3] Child components are built to display each row and speaker, and functionality is added to track a selected speaker and display additional info.
This provides a concise overview of the key aspects covered in the React basics document, including component structure, asynchronous data handling, and adding interactivity.
Building Reactive Systems with Akka (in Java 8 or Scala)Jonas Bonér
Learn how to build Reactive Systems with Akka. Examples in both Java 8 and Scala.
Abstract:
The demands and expectations for applications have changed dramatically in recent years. Applications today are deployed on a wide range of infrastructure; from mobile devices up to thousands of nodes running in the cloud—all powered by multi-core processors. They need to be rich and collaborative, have a real-time feel with millisecond response time and should never stop running. Additionally, modern applications are a mashup of external services that need to be consumed and composed to provide the features at hand. We are seeing a new type of applications emerging to address these new challenges—these are being called Reactive Applications.
In this talk we will introduce you to Akka and discuss how it can help you deliver on the four key traits of Reactive; Responsive, Resilient, Elastic and Message-Driven. We will start with the basics of Akka and work our way towards some of its more advanced modules such as Akka Cluster and Akka Persistence—all driven through code and practical examples.
Python and EM CLI: The Enterprise Management Super ToolsSeth Miller
Release 3 of Enterprise Manager gives the command line interface for EM a distinct advantage by moving the EMCLI functionality into Jython, a Java implementation of the Python programming language.
This session will provide an introduction to Python and give attendees a crash course in the newest version of EMCLI so they can get started using this powerful tool in their environments right away.
Learning Objectives:
-- Evaluate where Python can provide solutions in other aspects of the DBA's responsibility including automating password changes and backups.
-- Understand how to implement and use release 3 of EMCLI. Differentiate between the Jython architecture of release 3 versus earlier versions of EMCLI.
-- Have a basic understanding of and be able to construct simple scripts in Python.
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
At Ubisoft Technology Group, we've created a platform for video game production to share game assets, in-game footage, and animations across the entire company. Ease of search and good UX were incredibly important for an audience of artists and creative types. This is where the Web and a powerful JavaScript framework came in; we chose Ext JS for its robustness and scalability. In this session, we'll showcase two different applications and dive into the technical aspects of designing the UI for a faceted search based on Elasticsearch.
Prepares the students for (and is a prerequisite for) the more advanced material students will encounter in later courses. Data structures organize data Þ more efficient programs.
Modern, Scalable, Ambitious apps with Ember.jsMike North
Emberjs is an opinionated web UI framework focused on developer productivity. I will introduce the basics of the framework, and provide several examples of where ember saves an unprecedented amount of time for dev teams. Additionally, I'll cover ember-cli, the extensible build tool that the Emberjs and Angular communities are depending on for code generation, asset compilation, and running tests
Objective-C Crash Course for Web DevelopersJoris Verbogt
These are the slides of my SXSW 2010 Objective-C Crash Course for Web Developers.
The code samples (and the keynote document) can also be downloaded from http://workshop.verbogt.nl/
This document contains biographical information about Boulos Dib, an independent consultant specializing in software development. It provides details about Dib's early experience with personal computers and programming languages. It also lists upcoming presentations by Dib on LightSwitch and Silverlight at the NYC Code Camp in October 2011. The document concludes with an overview of PowerShell scripting.
Derrière ce titre putaclic se cache une réalité pour une partie de notre industrie.
Les boucles for/while sont des structures itératives proposant le plus bas niveau d'abstraction. Les langages modernes proposent encore de nos jours ces structures car elles ont leur utilité dans quelques cas exceptionnels.
Ces 10 dernières années, de nouvelles structures d'itérations sont apparues, proposant un plus haut niveau d'abstraction : donc une meilleure productivité, moins de ligne de code, donc moins de bug potentiels (que nous décrirons).
Nous partirons d'exemples de code simple et montrerons leur équivalent via ces nouvelles structures puis observerons les avantages (et inconvénients ?). Les exemples seront en JavaScript mais bien entendu applicable dans d'autres langages (Java, C#, Python, Ruby, C++, Scala, Go, Rust, ...).
Cassandra & puppet, scaling data at $15 per monthdaveconnors
Constant Contact shares lessons learned from DevOps approach to implementing Cassandra to manage social media data for over 400k small business customers. Puppet is the critical in our tool chain. Single most important factor was the willingness of Development and Operations to stretch beyond traditional roles and responsibilities.
Similar to Architectural Tradeoff in Learning-Based Software (20)
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachPooyan Jamshidi
LWF Chain graphs were introduced by Lauritzen, Wermuth, and Frydenberg as a generalization of graphical models based on undirected graphs and DAGs. From the causality point of view, in an LWF CG: Directed edges represent direct causal effects. Undirected edges represent causal effects due to interference, which occurs when an individual’s outcome is influenced by their social interaction with other population members, e.g., in situations that involve contagious agents, educational programs, or social networks. The construction of chain graph models is a challenging task that would be greatly facilitated by automation.
Markov blanket discovery has an important role in structure learning of Bayesian network. It is surprising, however, how little attention it has attracted in the context of learning LWF chain graphs. In this work, we provide a graphical characterization of Markov blankets in chain graphs. The characterization is different from the well-known one for Bayesian networks and generalizes it. We provide a novel scalable and sound algorithm for Markov blanket discovery in LWF chain graphs. We also provide a sound and scalable constraint-based framework for learning the structure of LWF CGs from faithful causally sufficient data. With the use of our algorithm, the problem of structure learning is reduced to finding an efficient algorithm for Markov blanket discovery in LWF chain graphs. This greatly simplifies the structure-learning task and makes a wide range of inference/learning problems computationally tractable because our approach exploits locality.
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...Pooyan Jamshidi
We enable reliable and dependable self‐adaptations of component connectors in unreliable environments with imperfect monitoring facilities and conflicting user opinions about adaptation policies by developing a framework which comprises: (a) mechanisms for robust model evolution, (b) a method for adaptation reasoning, and (c) tool support that allows an end‐to‐end application of the developed techniques in real‐world domains.
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...Pooyan Jamshidi
Modern cyber-physical systems (e.g., robotics systems) are typically composed of physical and software components, the characteristics of which are likely to change over time. Assumptions about parts of the system made at design time may not hold at run time, especially when a system is deployed for long periods (e.g., over decades). Self-adaptation is designed to find reconfigurations of systems to handle such run-time inconsistencies. Planners can be used to find and enact optimal reconfigurations in such an evolving context. However, for systems that are highly configurable, such planning becomes intractable due to the size of the adaptation space. To overcome this challenge, in this paper we explore an approach that (a) uses machine learning to find Pareto-optimal configurations without needing to explore every configuration and (b) restricts the search space to such configurations to make planning tractable. We explore this in the context of robot missions that need to consider task timeliness and energy consumption. An independent evaluation shows that our approach results in high-quality adaptation plans in uncertain and adversarial environments.
Paper: https://arxiv.org/abs/1903.03920
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...Pooyan Jamshidi
Despite achieving state-of-the-art performance across many domains, machine learning systems are highly vulnerable to subtle adversarial perturbations. Although defense approaches have been proposed in recent years, many have been bypassed by even weak adversarial attacks. Previous studies showed that ensembles created by combining multiple weak defenses (i.e., input data transformations) are still weak. In this talk, I will show that it is indeed possible to construct effective ensembles using weak defenses to block adversarial attacks. However, to do so requires a diverse set of such weak defenses. Based on this motivation, I will present Athena, an extensible framework for building effective defenses to adversarial attacks against machine learning systems. I will talk about the effectiveness of ensemble strategies with a diverse set of many weak defenses that comprise transforming the inputs (e.g., rotation, shifting, noising, denoising, and many more) before feeding them to target deep neural network classifiers. I will also discuss the effectiveness of the ensembles with adversarial examples generated by various adversaries in different threat models. In the second half of the talk, I will explain why building defenses based on the idea of many diverse weak defenses works, when it is most effective, and what its inherent limitations and overhead are.
Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...Pooyan Jamshidi
Modern systems (e.g., deep neural networks, big data analytics, and compilers) are highly configurable, which means they expose different performance behavior under different configurations. The fundamental challenge is that one cannot simply measure all configurations due to the sheer size of the configuration space. Transfer learning has been used to reduce the measurement efforts by transferring knowledge about performance behavior of systems across environments. Previously, research has shown that statistical models are indeed transferable across environments. In this work, we investigate identifiability and transportability of causal effects and statistical relations in highly-configurable systems. Our causal analysis agrees with previous exploratory analysis~\cite{Jamshidi17} and confirms that the causal effects of configuration options can be carried over across environments with high confidence. We expect that the ability to carry over causal relations will enable effective performance analysis of highly-configurable systems.
Integrated Model Discovery and Self-Adaptation of RobotsPooyan Jamshidi
Machine learn models efficiently under budget constraints to adapt to perturbations such as environmental changes or changes in the internal resources.
Modern software-intensive systems are composed of components that are likely to change their behaviour over time (e.g., adding/removing components).
For software to continue to operate under such changes, the assumptions about parts of the system made at design time may not hold at runtime due to uncertainty.
Mechanisms must be put in place that can dynamically learn new models of these assumptions and use them to make decisions about missions, configurations, etc.
Production-Ready Machine Learning for the Software ArchitectPooyan Jamshidi
This document summarizes a guest lecture on building production-ready machine learning systems. The lecturer discusses how a startup called Sniffable, which created an Instagram-like app for dogs, tried to build a machine learning system called Pooch Predictor to predict how popular photos would be. However, Pooch Predictor failed repeatedly in production due to issues like not retraining models, tight coupling between components, and treating ML like a transactional rather than dynamic system. The lecturer emphasizes that ML systems must be reactive, responsive, resilient, elastic, and message-driven to succeed at scale.
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisPooyan Jamshidi
The document discusses transfer learning for building performance models of configurable software systems. Building accurate performance models through direct measurement is challenging due to the large configuration space and environmental factors. Transfer learning aims to address this by leveraging knowledge from performance models built for related systems or environments to improve the learning process for new systems and environments. The goal is to develop techniques that allow predicting and optimizing performance for configurable systems across changing environments.
Learning Software Performance Models for Dynamic and Uncertain EnvironmentsPooyan Jamshidi
This document provides background on Pooyan Jamshidi's research related to learning software performance models for dynamic and uncertain environments. It summarizes his past work developing techniques for modeling and optimizing performance across different systems and environments, including using transfer learning to reuse performance data from related sources to build more accurate models with fewer measurements. It also outlines opportunities for using transfer learning to adapt performance models to new environments and systems.
Sensitivity Analysis for Building Adaptive Robotic SoftwarePooyan Jamshidi
P. Jamshidi, M. Velez, C. Kästner, N. Siegmund, and P. Kawthekar. Transfer learning for improving model predictions in highly configurable software. Int’l Symp. Software Engineering for Adaptive and Self-Managing Systems (SEAMS), 2017.
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Pooyan Jamshidi
Modern software systems are now being built to be used in dynamic environments utilizing configuration capabilities to adapt to changes and external uncertainties. In a self-adaptation context, we are often interested in reasoning about the performance of the systems under different configurations. Usually, we learn a black-box model based on real measurements to predict the performance of the system given a specific configuration. However, as modern systems become more complex, there are many configuration parameters that may interact and, therefore, we end up learning an exponentially large configuration space. Naturally, this does not scale when relying on real measurements in the actual changing environment. We propose a different solution: Instead of taking the measurements from the real system, we learn the model using samples from other sources, such as simulators that approximate performance of the real system at low cost.
Transfer Learning for Improving Model Predictions in Robotic SystemsPooyan Jamshidi
Modern software systems are now being built to be used in dynamic environments utilizing configuration capabilities to adapt to changes and external uncertainties. In a self-adaptation context, we are often interested in reasoning about the performance of the systems under different configurations. Usually, we learn a black-box model based on real measurements to predict the performance of the system given a specific configuration. However, as modern systems become more complex, there are many configuration parameters that may interact and, therefore, we end up learning an exponentially large configuration space. Naturally, this does not scale when relying on real measurements in the actual changing environment. We propose a different solution: Instead of taking the measurements from the real system, we learn the model using samples from other sources, such as simulators that approximate performance of the real system at low cost.
The document discusses using machine learning techniques like Gaussian processes (GPs) to optimize the configuration of software systems. It notes that software performance landscapes are often complex, with non-linear interactions between parameters and non-convex response surfaces. Measurements are also subject to noise. The document introduces an approach called TL4CO that uses multi-task Gaussian processes to model software performance across different versions/deployments, allowing it to leverage data from other versions to improve optimization. This helps address challenges in DevOps where new versions are continuously delivered.
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...Pooyan Jamshidi
https://arxiv.org/abs/1606.06543
Finding optimal configurations for Stream Processing Systems (SPS) is a challenging problem due to the large number of parameters that can influence their performance and the lack of analytical models to anticipate the effect of a change. To tackle this issue, we consider tuning methods where an experimenter is given a limited budget of experiments and needs to carefully allocate this budget to find optimal configurations. We propose in this setting Bayesian Optimization for Configuration Optimization (BO4CO), an auto-tuning algorithm that leverages Gaussian Processes (GPs) to iteratively capture posterior distributions of the configuration spaces and sequentially drive the experimentation. Validation based on Apache Storm demonstrates that our approach locates optimal configurations within a limited experimental budget, with an improvement of SPS performance typically of at least an order of magnitude compared to existing configuration algorithms.
The document describes a configuration optimization tool that aims to automatically optimize the configuration of big data technologies. It does this by running experiments on data intensive applications, measuring performance under different configurations, and using this data to recommend optimal configurations. The tool implements two approaches for optimization - Bayesian optimization and transfer learning. It consists of several components, including an experimental suite to run tests, an optimization module, interfaces to various big data technologies, and a performance repository to store results. The goal is to help users like SMEs reduce the time and cost of testing and configuring big data applications between releases.
Fuzzy Self-Learning Controllers for Elasticity Management in Dynamic Cloud Ar...Pooyan Jamshidi
(1) The document discusses challenges in managing elasticity in cloud architectures due to unpredictable demand and uncertainty in measurements. (2) It proposes a fuzzy self-learning controller called RobusT2Scale that uses type-2 fuzzy logic to qualitatively specify thresholds and make robust scaling decisions despite uncertainty. (3) Experimental results show that RobusT2Scale is able to guarantee service level agreements while avoiding over- and under-provisioning of resources compared to other approaches.
Configuration Optimization for Big Data SoftwarePooyan Jamshidi
The document discusses configuration optimization for big data software using an approach developed in the DICE project funded by the European Union's Horizon 2020 program. It describes optimizing configurations for Apache Storm and Cassandra to significantly reduce configuration time. Experiments showed large performance variations between configurations and that default settings often performed poorly compared to optimized settings. Tuning on one version did not guarantee good performance on other versions, but transferring more observations from other versions improved performance, though with diminishing returns due to increased optimization costs.
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit...Pooyan Jamshidi
A look at the searches related to the term “microservices” on Google Trends revealed that the top searches are now technology driven. This implies that the time of general search terms such as “What is microservices?” has now long passed. Not only are software vendors (for example, IBM and Microsoft) using microservices and DevOps practices, but also content providers (for example, Netflix and the BBC) have adopted and are using them.
I report on experiences and lessons learned during incremental migration and architectural refactoring of a commercial mobile back end as a service to microservices architecture. I explain how we adopted DevOps and how this facilitated a smooth migration towards Microservices architecture.
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Liberarsi dai framework con i Web Component.pptxMassimo Artizzu
In Italian
Presentazione sulle feature e l'utilizzo dei Web Component nell sviluppo di pagine e applicazioni web. Racconto delle ragioni storiche dell'avvento dei Web Component. Evidenziazione dei vantaggi e delle sfide poste, indicazione delle best practices, con particolare accento sulla possibilità di usare web component per facilitare la migrazione delle proprie applicazioni verso nuovi stack tecnologici.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
14 th Edition of International conference on computer visionShulagnaSarkar2
About the event
14th Edition of International conference on computer vision
Computer conferences organized by ScienceFather group. ScienceFather takes the privilege to invite speakers participants students delegates and exhibitors from across the globe to its International Conference on computer conferences to be held in the Various Beautiful cites of the world. computer conferences are a discussion of common Inventions-related issues and additionally trade information share proof thoughts and insight into advanced developments in the science inventions service system. New technology may create many materials and devices with a vast range of applications such as in Science medicine electronics biomaterials energy production and consumer products.
Nomination are Open!! Don't Miss it
Visit: computer.scifat.com
Award Nomination: https://x-i.me/ishnom
Conference Submission: https://x-i.me/anicon
For Enquiry: Computer@scifat.com
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
Preparing Non - Technical Founders for Engaging a Tech AgencyISH Technologies
Preparing non-technical founders before engaging a tech agency is crucial for the success of their projects. It starts with clearly defining their vision and goals, conducting thorough market research, and gaining a basic understanding of relevant technologies. Setting realistic expectations and preparing a detailed project brief are essential steps. Founders should select a tech agency with a proven track record and establish clear communication channels. Additionally, addressing legal and contractual considerations and planning for post-launch support are vital to ensure a smooth and successful collaboration. This preparation empowers non-technical founders to effectively communicate their needs and work seamlessly with their chosen tech agency.Visit our site to get more details about this. Contact us today www.ishtechnologies.com.au
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
19. Empirical observations confirm that systems are
becoming increasingly configurable
08 7/2010 7/2012 7/2014
Release time
1/1999 1/2003 1/2007 1/2011
0
1/2014
N
Release time
02 1/2006 1/2010 1/2014
2.2.14
2.3.4
2.0.35
.3.24
Release time
Apache
1/2006 1/2008 1/2010 1/2012 1/2014
0
40
80
120
160
200
2.0.0
1.0.0
0.19.0
0.1.0
Hadoop
Numberofparameters
Release time
MapReduce
HDFS
[Tianyin Xu, et al., “Too Many Knobs…”, FSE’15]
20. Empirical observations confirm that systems are
becoming increasingly configurable
nia San Diego, ‡Huazhong Univ. of Science & Technology, †NetApp, Inc
tixu, longjin, xuf001, yyzhou}@cs.ucsd.edu
kar.Pasupathy, Rukma.Talwadker}@netapp.com
prevalent, but also severely
software. One fundamental
y of configuration, reflected
parameters (“knobs”). With
software to ensure high re-
aunting, error-prone task.
nderstanding a fundamental
users really need so many
answer, we study the con-
including thousands of cus-
m (Storage-A), and hundreds
ce system software projects.
ng findings to motivate soft-
ore cautious and disciplined
these findings, we provide
ich can significantly reduce
A as an example, the guide-
ters and simplify 19.7% of
on existing users. Also, we
tion methods in the context
7/2006 7/2008 7/2010 7/2012 7/2014
0
100
200
300
400
500
600
700
Storage-A
Numberofparameters
Release time
1/1999 1/2003 1/2007 1/2011
0
100
200
300
400
500
5.6.2
5.5.0
5.0.16
5.1.3
4.1.0
4.0.12
3.23.0
1/2014
MySQL
Numberofparameters
Release time
1/1998 1/2002 1/2006 1/2010 1/2014
0
100
200
300
400
500
600
1.3.14
2.2.14
2.3.4
2.0.35
1.3.24
Numberofparameters
Release time
Apache
1/2006 1/2008 1/2010 1/2012 1/2014
0
40
80
120
160
200
2.0.0
1.0.0
0.19.0
0.1.0
Hadoop
Numberofparameters
Release time
MapReduce
HDFS
[Tianyin Xu, et al., “Too Many Knobs…”, FSE’15]
21. “all constants should be configurable,
even if we can’t see any reason to
configure them.” — HDFS-4304
22. Configurations determine the performance
behavior
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
extern int Parrot_signbit(double x){
endif
else
PARROT_HAS_SETENV
LINUX
23. Configurations determine the performance
behavior
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
extern int Parrot_signbit(double x){
endif
else
PARROT_HAS_SETENV
LINUX
24. Configurations determine the performance
behavior
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
extern int Parrot_signbit(double x){
endif
else
PARROT_HAS_SETENV
LINUX
25. Configurations determine the performance
behavior
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
extern int Parrot_signbit(double x){
endif
else
PARROT_HAS_SETENV
LINUX
26. Configurations determine the performance
behavior
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
extern int Parrot_signbit(double x){
endif
else
PARROT_HAS_SETENV
LINUX
Speed
Energy
27. Configurations determine the performance
behavior
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
extern int Parrot_signbit(double x){
endif
else
PARROT_HAS_SETENV
LINUX
Speed
Energy
28. Configurations determine the performance
behavior
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
extern int Parrot_signbit(double x){
endif
else
PARROT_HAS_SETENV
LINUX
Speed
Energy
29. How do we understand performance behavior of
real-world highly-configurable systems that scale well…
30. How do we understand performance behavior of
real-world highly-configurable systems that scale well…
… and enable developers/users to reason about
qualities (performance, energy) and to make tradeoff?
57. 0 500 1000 1500
Throughput (ops/sec)
0
1000
2000
3000
4000
5000
Averagewritelatency(s)
Default configuration was bad, so was the expert’
better
better
58. 0 500 1000 1500
Throughput (ops/sec)
0
1000
2000
3000
4000
5000
Averagewritelatency(s)
Default configuration was bad, so was the expert’
Defaultbetter
better
59. 0 500 1000 1500
Throughput (ops/sec)
0
1000
2000
3000
4000
5000
Averagewritelatency(s)
Default configuration was bad, so was the expert’
Default
Recommended
by an expert
better
better
60. 0 500 1000 1500
Throughput (ops/sec)
0
1000
2000
3000
4000
5000
Averagewritelatency(s)
Default configuration was bad, so was the expert’
Default
Recommended
by an expert Optimal
Configuration
better
better
61. 0 0.5 1 1.5 2 2.5
Throughput (ops/sec) 10
4
0
50
100
150
200
250
300
Latency(ms)
Default configuration was bad, so was the expert’
better
better
62. 0 0.5 1 1.5 2 2.5
Throughput (ops/sec) 10
4
0
50
100
150
200
250
300
Latency(ms)
Default configuration was bad, so was the expert’
Default
better
better
63. 0 0.5 1 1.5 2 2.5
Throughput (ops/sec) 10
4
0
50
100
150
200
250
300
Latency(ms)
Default configuration was bad, so was the expert’
Default
Recommended
by an expert
better
better
64. 0 0.5 1 1.5 2 2.5
Throughput (ops/sec) 10
4
0
50
100
150
200
250
300
Latency(ms)
Default configuration was bad, so was the expert’
Default
Recommended
by an expert
Optimal
Configuration
better
better
66. Why this is an important problem?
Significant time saving
67. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
68. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
• Noticeably faster than median
69. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
• Noticeably faster than median
• Default is bad
70. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
• Noticeably faster than median
• Default is bad
• Expert’s is not optimal
71. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
• Noticeably faster than median
• Default is bad
• Expert’s is not optimal
72. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
• Noticeably faster than median
• Default is bad
• Expert’s is not optimal
Large configuration space
73. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
• Noticeably faster than median
• Default is bad
• Expert’s is not optimal
Large configuration space
• Exhaustive search is expensive
74. Why this is an important problem?
Significant time saving
• 2X-10X faster than worst
• Noticeably faster than median
• Default is bad
• Expert’s is not optimal
Large configuration space
• Exhaustive search is expensive
• Specific to hardware/workload/version
75. What did happen at the end?
• Achieved the objectives (100X user, same experience)
• Saved money by reducing cloud resources up to 20%
• Our tool was able to identify configurations that was
consistently better than expert recommendation
77. To enable performance tradeoff, we need a model
to reason about qualities
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
endif
else
PARROT_HAS_SETENV
LINUX
f(·) = 5 + 3 ⇥ o1
Execution time (s)
78. To enable performance tradeoff, we need a model
to reason about qualities
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
endif
else
PARROT_HAS_SETENV
LINUX
f(·) = 5 + 3 ⇥ o1
Execution time (s)
f(o1 := 1) = 8
79. To enable performance tradeoff, we need a model
to reason about qualities
void Parrot_setenv(. . . name,. . . value){
#ifdef PARROT_HAS_SETENV
my_setenv(name, value, 1);
#else
int name_len=strlen(name);
int val_len=strlen(value);
char* envs=glob_env;
if(envs==NULL){
return;
}
strcpy(envs,name);
strcpy(envs+name_len,"=");
strcpy(envs+name_len + 1,value);
putenv(envs);
#endif
}
#ifdef LINUX
endif
else
PARROT_HAS_SETENV
LINUX
f(·) = 5 + 3 ⇥ o1
Execution time (s)
f(o1 := 0) = 5
f(o1 := 1) = 8
80. What is a performance model?
f : C ! R
f(o1, o2) = 5 + 3o1 + 15o2 7o1 ⇥ o2
c =< o1, o2 >
81. What is a performance model?
f : C ! R
f(o1, o2) = 5 + 3o1 + 15o2 7o1 ⇥ o2
c =< o1, o2 >
82. What is a performance model?
f : C ! R
f(o1, o2) = 5 + 3o1 + 15o2 7o1 ⇥ o2
c =< o1, o2 >
83. What is a performance model?
f : C ! R
f(o1, o2) = 5 + 3o1 + 15o2 7o1 ⇥ o2
c =< o1, o2 >
c =< o1, o2, ..., o10 >
84. What is a performance model?
f : C ! R
f(o1, o2) = 5 + 3o1 + 15o2 7o1 ⇥ o2
c =< o1, o2 >
c =< o1, o2, ..., o10 >
c =< o1, o2, ..., o100 >
···
91. Insight: Performance measurements of the real
system is “similar” to the ones from the simulators
Measure
Simulator (Gazebo)
Data
Configurations
Performance
So why not reuse these data,
instead of measuring on real robot?
92. We developed methods to make learning cheaper
via transfer learning
Target (Learn)Source (Given)
DataModel
Transferable
Knowledge
II. INTUITION
Understanding the performance behavior of configurable
software systems can enable (i) performance debugging, (ii)
performance tuning, (iii) design-time evolution, or (iv) runtime
adaptation [11]. We lack empirical understanding of how the
performance behavior of a system will vary when the environ-
ment of the system changes. Such empirical understanding will
provide important insights to develop faster and more accurate
learning techniques that allow us to make predictions and
optimizations of performance for highly configurable systems
in changing environments [10]. For instance, we can learn
performance behavior of a system on a cheap hardware in a
controlled lab environment and use that to understand the per-
formance behavior of the system on a production server before
shipping to the end user. More specifically, we would like to
know, what the relationship is between the performance of a
system in a specific environment (characterized by software
configuration, hardware, workload, and system version) to the
one that we vary its environmental conditions.
In this research, we aim for an empirical understanding of
A. Preliminary concept
In this section, we p
cepts that we use throu
enable us to concisely
1) Configuration and
the i-th feature of a co
enabled or disabled an
configuration space is m
all the features C =
Dom(Fi) = {0, 1}. A
a member of the confi
all the parameters are
range (i.e., complete ins
We also describe an
e = [w, h, v] drawn fr
W ⇥H ⇥V , where they
values for workload, ha
2) Performance mod
configuration space F
formance model is a b
given some observation
combination of system
II. INTUITION
standing the performance behavior of configurable
systems can enable (i) performance debugging, (ii)
ance tuning, (iii) design-time evolution, or (iv) runtime
on [11]. We lack empirical understanding of how the
ance behavior of a system will vary when the environ-
the system changes. Such empirical understanding will
important insights to develop faster and more accurate
techniques that allow us to make predictions and
tions of performance for highly configurable systems
ging environments [10]. For instance, we can learn
ance behavior of a system on a cheap hardware in a
ed lab environment and use that to understand the per-
e behavior of the system on a production server before
to the end user. More specifically, we would like to
hat the relationship is between the performance of a
n a specific environment (characterized by software
ation, hardware, workload, and system version) to the
we vary its environmental conditions.
s research, we aim for an empirical understanding of
A. Preliminary concepts
In this section, we provide formal definitions of
cepts that we use throughout this study. The forma
enable us to concisely convey concept throughout
1) Configuration and environment space: Let F
the i-th feature of a configurable system A whic
enabled or disabled and one of them holds by de
configuration space is mathematically a Cartesian
all the features C = Dom(F1) ⇥ · · · ⇥ Dom(F
Dom(Fi) = {0, 1}. A configuration of a syste
a member of the configuration space (feature spa
all the parameters are assigned to a specific valu
range (i.e., complete instantiations of the system’s pa
We also describe an environment instance by 3
e = [w, h, v] drawn from a given environment s
W ⇥H ⇥V , where they respectively represent sets
values for workload, hardware and system version.
2) Performance model: Given a software syste
configuration space F and environmental instances
formance model is a black-box function f : F ⇥
given some observations of the system performanc
combination of system’s features x 2 F in an en
formance model is a black-box function f : F ⇥ E ! R
given some observations of the system performance for each
combination of system’s features x 2 F in an environment
e 2 E. To construct a performance model for a system A
with configuration space F, we run A in environment instance
e 2 E on various combinations of configurations xi 2 F, and
record the resulting performance values yi = f(xi) + ✏i, xi 2
F where ✏i ⇠ N (0, i). The training data for our regression
models is then simply Dtr = {(xi, yi)}n
i=1. In other words, a
response function is simply a mapping from the input space to
a measurable performance metric that produces interval-scaled
data (here we assume it produces real numbers).
3) Performance distribution: For the performance model,
we measured and associated the performance response to each
configuration, now let introduce another concept where we
vary the environment and we measure the performance. An
empirical performance distribution is a stochastic process,
pd : E ! (R), that defines a probability distribution over
performance measures for each environmental conditions. To
tem version) to the
ons.
al understanding of
g via an informed
learning a perfor-
ed on a well-suited
the knowledge we
the main research
information (trans-
o both source and
ore can be carried
r. This transferable
[10].
s that we consider
uration is a set of
s the primary vari-
rstand performance
ike to understand
der study will be
formance model is a black-box function f : F ⇥ E
given some observations of the system performance fo
combination of system’s features x 2 F in an enviro
e 2 E. To construct a performance model for a syst
with configuration space F, we run A in environment in
e 2 E on various combinations of configurations xi 2 F
record the resulting performance values yi = f(xi) + ✏i
F where ✏i ⇠ N (0, i). The training data for our regr
models is then simply Dtr = {(xi, yi)}n
i=1. In other wo
response function is simply a mapping from the input sp
a measurable performance metric that produces interval-
data (here we assume it produces real numbers).
3) Performance distribution: For the performance m
we measured and associated the performance response t
configuration, now let introduce another concept whe
vary the environment and we measure the performanc
empirical performance distribution is a stochastic pr
pd : E ! (R), that defines a probability distributio
performance measures for each environmental conditio
Extract Reuse
Learn Learn
Goal: Gain strength by
transferring information
across environments
93. TurtleBot
[P. Jamshidi, et al., “Transfer learning for improving model predictions ….”, SEAMS’17]
Our transfer learning solution
100. Gaussian processes for performance modeling
t = n
Observation
Mean
output,f(x)
input, x
101. Gaussian processes for performance modeling
t = n
Observation
Mean
Uncertainty
output,f(x)
input, x
102. Gaussian processes for performance modeling
t = n
Observation
Mean
Uncertainty
New
observation
output,f(x)
input, x
103. input, x
Gaussian processes for performance modeling
t = n t = n + 1
Observation
Mean
Uncertainty
New
observation
output,f(x)
input, x
104. Gaussian Processes enables reasoning about
performance
Step 1: Fit GP to the data seen
so far
Step 2: Explore the model for
regions of most variance
Step 3: Sample that region
Step 4: Repeat
-1.5 -1 -0.5 0 0.5 1 1.5
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Configuration
Space
Empirical
Model
Experiment
Experiment
0 20 40 60 80 100 120 140 160 180 200
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Selection Criteria
Sequential Design
117. Transfer Learning for Improving Model Predictions
in Highly Configurable Software
Pooyan Jamshidi, Miguel Velez, Christian K¨astner
Carnegie Mellon University, USA
{pjamshid,mvelezce,kaestner}@cs.cmu.edu
Norbert Siegmund
Bauhaus-University Weimar, Germany
norbert.siegmund@uni-weimar.de
Prasad Kawthekar
Stanford University, USA
pkawthek@stanford.edu
Abstract—Modern software systems are built to be used in
dynamic environments using configuration capabilities to adapt to
changes and external uncertainties. In a self-adaptation context,
we are often interested in reasoning about the performance of
the systems under different configurations. Usually, we learn
a black-box model based on real measurements to predict
the performance of the system given a specific configuration.
However, as modern systems become more complex, there are
many configuration parameters that may interact and we end up
learning an exponentially large configuration space. Naturally,
this does not scale when relying on real measurements in the
actual changing environment. We propose a different solution:
Instead of taking the measurements from the real system, we
learn the model using samples from other sources, such as
simulators that approximate performance of the real system at
Predictive Model
Learn Model with
Transfer Learning
Measure Measure
Data
Source
Target
Simulator (Source) Robot (Target)
Adaptation
Fig. 1: Transfer learning for performance model learning.
order to identify the best performing configuration for a robot
Details: [SEAMS ’17]
126. Looking further: When transfer learning goes
wrong
10
20
30
40
50
60
AbsolutePercentageError[%]
Sources s s1 s2 s3 s4 s5 s6
noise-level 0 5 10 15 20 25 30
corr. coeff. 0.98 0.95 0.89 0.75 0.54 0.34 0.19
µ(pe) 15.34 14.14 17.09 18.71 33.06 40.93 46.75
Insight: Predictions become
more accurate when the source
is more related to the target.
Non-transfer-learning
127. Looking further: When transfer learning goes
wrong
10
20
30
40
50
60
AbsolutePercentageError[%]
Sources s s1 s2 s3 s4 s5 s6
noise-level 0 5 10 15 20 25 30
corr. coeff. 0.98 0.95 0.89 0.75 0.54 0.34 0.19
µ(pe) 15.34 14.14 17.09 18.71 33.06 40.93 46.75
It worked!
Insight: Predictions become
more accurate when the source
is more related to the target.
Non-transfer-learning
128. Looking further: When transfer learning goes
wrong
10
20
30
40
50
60
AbsolutePercentageError[%]
Sources s s1 s2 s3 s4 s5 s6
noise-level 0 5 10 15 20 25 30
corr. coeff. 0.98 0.95 0.89 0.75 0.54 0.34 0.19
µ(pe) 15.34 14.14 17.09 18.71 33.06 40.93 46.75
It worked! It didn’t!
Insight: Predictions become
more accurate when the source
is more related to the target.
Non-transfer-learning
129. Our empirical study: We looked at different highly-
configurable systems to gain insights
[P. Jamshidi, et al., “Transfer learning for performance modeling of configurable systems….”, ASE’17]
SPEAR (SAT Solver)
Analysis time
14 options
16,384 configurations
SAT problems
3 hardware
2 versions
X264 (video encoder)
Encoding time
16 options
4,000 configurations
Video quality/size
2 hardware
3 versions
SQLite (DB engine)
Query time
14 options
1,000 configurations
DB Queries
2 hardware
2 versions
SaC (Compiler)
Execution time
50 options
71,267 configurations
10 Demo programs
130. Observation 1: Linear shift happens only in limited
environmental changes
Soft Environmental change Severity Corr.
SPEAR
NUC/2 -> NUC/4 Small 1.00
Amazon_nano -> NUC Large 0.59
Hardware/workload/version V Large -0.10
x264
Version Large 0.06
Workload Medium 0.65
SQLite
write-seq -> write-batch Small 0.96
read-rand -> read-seq Medium 0.50
Target
Source
Throughput
Implication: Simple transfer learning is limited
to hardware changes in practice
log P(θ, Xobs )
Θ
l
P(θ|Xobs)
Θ
Figure 5: The first column shows the log joint probab
131. Observation 1: Linear shift happens only in limited
environmental changes
Soft Environmental change Severity Corr.
SPEAR
NUC/2 -> NUC/4 Small 1.00
Amazon_nano -> NUC Large 0.59
Hardware/workload/version V Large -0.10
x264
Version Large 0.06
Workload Medium 0.65
SQLite
write-seq -> write-batch Small 0.96
read-rand -> read-seq Medium 0.50
Target
Source
Throughput
Implication: Simple transfer learning is limited
to hardware changes in practice
log P(θ, Xobs )
Θ
l
P(θ|Xobs)
Θ
Figure 5: The first column shows the log joint probab
132. Observation 1: Linear shift happens only in limited
environmental changes
Soft Environmental change Severity Corr.
SPEAR
NUC/2 -> NUC/4 Small 1.00
Amazon_nano -> NUC Large 0.59
Hardware/workload/version V Large -0.10
x264
Version Large 0.06
Workload Medium 0.65
SQLite
write-seq -> write-batch Small 0.96
read-rand -> read-seq Medium 0.50
Target
Source
Throughput
Implication: Simple transfer learning is limited
to hardware changes in practice
log P(θ, Xobs )
Θ
l
P(θ|Xobs)
Θ
Figure 5: The first column shows the log joint probab
133. Observation 1: Linear shift happens only in limited
environmental changes
Soft Environmental change Severity Corr.
SPEAR
NUC/2 -> NUC/4 Small 1.00
Amazon_nano -> NUC Large 0.59
Hardware/workload/version V Large -0.10
x264
Version Large 0.06
Workload Medium 0.65
SQLite
write-seq -> write-batch Small 0.96
read-rand -> read-seq Medium 0.50
Target
Source
Throughput
Implication: Simple transfer learning is limited
to hardware changes in practice
log P(θ, Xobs )
Θ
l
P(θ|Xobs)
Θ
Figure 5: The first column shows the log joint probab
134. Soft Environmental change Severity Dim t-test
x264
Version Large
16
12 10
Hardware/workload/ver V Large 8 9
SQLite
write-seq -> write-batch V Large
14
3 4
read-rand -> read-seq Medium 1 1
SaC Workload V Large 50 16 10
Implication: Avoid wasting budget on non-informative part
of configuration space and focusing where it matters.
Observation 2: Influential options and interactions
are preserved across environments
135. Soft Environmental change Severity Dim t-test
x264
Version Large
16
12 10
Hardware/workload/ver V Large 8 9
SQLite
write-seq -> write-batch V Large
14
3 4
read-rand -> read-seq Medium 1 1
SaC Workload V Large 50 16 10
Implication: Avoid wasting budget on non-informative part
of configuration space and focusing where it matters.
Observation 2: Influential options and interactions
are preserved across environments
136. Soft Environmental change Severity Dim t-test
x264
Version Large
16
12 10
Hardware/workload/ver V Large 8 9
SQLite
write-seq -> write-batch V Large
14
3 4
read-rand -> read-seq Medium 1 1
SaC Workload V Large 50 16 10
Implication: Avoid wasting budget on non-informative part
of configuration space and focusing where it matters.
Observation 2: Influential options and interactions
are preserved across environments
137. Soft Environmental change Severity Dim t-test
x264
Version Large
16
12 10
Hardware/workload/ver V Large 8 9
SQLite
write-seq -> write-batch V Large
14
3 4
read-rand -> read-seq Medium 1 1
SaC Workload V Large 50 16 10
Implication: Avoid wasting budget on non-informative part
of configuration space and focusing where it matters.
Observation 2: Influential options and interactions
are preserved across environments
216
250
= 0.000000000058
We only need to
explore part of
the space:
138. Transfer Learning for Performance Modeling of
Configurable Systems: An Exploratory Analysis
Pooyan Jamshidi
Carnegie Mellon University, USA
Norbert Siegmund
Bauhaus-University Weimar, Germany
Miguel Velez, Christian K¨astner
Akshay Patel, Yuvraj Agarwal
Carnegie Mellon University, USA
Abstract—Modern software systems provide many configura-
tion options which significantly influence their non-functional
properties. To understand and predict the effect of configuration
options, several sampling and learning strategies have been
proposed, albeit often with significant cost to cover the highly
dimensional configuration space. Recently, transfer learning has
been applied to reduce the effort of constructing performance
models by transferring knowledge about performance behavior
across environments. While this line of research is promising to
learn more accurate models at a lower cost, it is unclear why
and when transfer learning works for performance modeling. To
shed light on when it is beneficial to apply transfer learning, we
conducted an empirical study on four popular software systems,
varying software configurations and environmental conditions,
such as hardware, workload, and software versions, to identify
the key knowledge pieces that can be exploited for transfer
learning. Our results show that in small environmental changes
(e.g., homogeneous workload change), by applying a linear
transformation to the performance model, we can understand
the performance behavior of the target environment, while for
severe environmental changes (e.g., drastic workload change) we
can transfer only knowledge that makes sampling more efficient,
e.g., by reducing the dimensionality of the configuration space.
Index Terms—Performance analysis, transfer learning.
Fig. 1: Transfer learning is a form of machine learning that takes
advantage of transferable knowledge from source to learn an accurate,
reliable, and less costly model for the target environment.
their byproducts across environments is demanded by many
Details: [ASE ’17]
145. Software 2.0
Increasingly customized and configurable
VISION
Increasingly competing objectives
Accuracy
Training speed
Inference speed
Model size
Energy
147. Exploring the design space of deep networks
accuracy is reported on the CIFAR-10 test set. We note that the test set
tion, and it is only used for final model evaluation. We also evaluate the
in a large-scale setting on the ImageNet challenge dataset (Sect. 4.3).
globalpool
linear&softmax
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3
globalpool
linear&softmax
large CIFAR-10 model
cell
cell
cell
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
sep.conv3x3/2
globalpool
linear&softmax
ImageNet model
cell
cell
cell
cell
cell
cell
n models constructed using the cells optimized with architecture search.
during architecture search on CIFAR-10. Top-right: large CIFAR-10
Optimal Architecture
(Yesterday)
148. Exploring the design space of deep networks
accuracy is reported on the CIFAR-10 test set. We note that the test set
tion, and it is only used for final model evaluation. We also evaluate the
in a large-scale setting on the ImageNet challenge dataset (Sect. 4.3).
globalpool
linear&softmax
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3
globalpool
linear&softmax
large CIFAR-10 model
cell
cell
cell
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
sep.conv3x3/2
globalpool
linear&softmax
ImageNet model
cell
cell
cell
cell
cell
cell
n models constructed using the cells optimized with architecture search.
during architecture search on CIFAR-10. Top-right: large CIFAR-10
Optimal Architecture
(Yesterday)
New Fraud Pattern
149. Exploring the design space of deep networks
accuracy is reported on the CIFAR-10 test set. We note that the test set
tion, and it is only used for final model evaluation. We also evaluate the
in a large-scale setting on the ImageNet challenge dataset (Sect. 4.3).
globalpool
linear&softmax
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3
globalpool
linear&softmax
large CIFAR-10 model
cell
cell
cell
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
sep.conv3x3/2
globalpool
linear&softmax
ImageNet model
cell
cell
cell
cell
cell
cell
n models constructed using the cells optimized with architecture search.
during architecture search on CIFAR-10. Top-right: large CIFAR-10
milar approach has recently been used in (Zoph et al., 2017; Zhong et al., 2017).
rchitecture search is carried out entirely on the CIFAR-10 training set, which we split into two
ub-sets of 40K training and 10K validation images. Candidate models are trained on the training
ubset, and evaluated on the validation subset to obtain the fitness. Once the search process is over,
e selected cell is plugged into a large model which is trained on the combination of training and
alidation sub-sets, and the accuracy is reported on the CIFAR-10 test set. We note that the test set
never used for model selection, and it is only used for final model evaluation. We also evaluate the
ells, learned on CIFAR-10, in a large-scale setting on the ImageNet challenge dataset (Sect. 4.3).
sep.conv3x3/2
sep.conv3x3/2
sep.conv3x3
conv3x3
globalpool
linear&softmax
small CIFAR-10 model
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3
globalpool
linear&softmax
large CIFAR-10 model
cell
cell
cell
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3/2
conv3x3/2
sep.conv3x3/2
globalpool
linear&softmax
cell
cell
cell
cell
cell
cell
cell
Optimal Architecture
(Yesterday)
Optimal Architecture
(Today)
New Fraud Pattern
153. To achieve the optimal results, it is important to
explore:
• Network architectures
• Software libraries [TensorFlow, CNTK, Theano, etc]
• Deployment infrastructure
154. Exploring the design space of deep networks
0.2 0.4 0.6 0.8 1 1.2
Inference time [h]
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Validationerror
better
better
155. Exploring the design space of deep networks
0.2 0.4 0.6 0.8 1 1.2
Inference time [h]
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Validationerror
better
better
156. Exploring the design space of deep networks
0.2 0.4 0.6 0.8 1 1.2
Inference time [h]
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Validationerror
Default
subset, and evaluated on the validation subset
the selected cell is plugged into a large mode
validation sub-sets, and the accuracy is report
is never used for model selection, and it is only
cells, learned on CIFAR-10, in a large-scale se
image
sep.conv3x3/2
sep.conv3x3/2
sep.conv3x3
conv3x3
globalpool
linear&softmax
small CIFAR-10 model
cell
cell
cell
sep.conv3x3
image
conv3x3/2
conv3x3/2
sep.conv3x3/2
Imag
cell
cell
cell
Figure 2: Image classification models construc
Top-left: small model used during architectu
model used for learned cell evaluation. Bottom
better
better
157. Exploring the design space of deep networks
0.2 0.4 0.6 0.8 1 1.2
Inference time [h]
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Validationerror
Default
Pareto
optimal
subset, and evaluated on the validation subset
the selected cell is plugged into a large mode
validation sub-sets, and the accuracy is report
is never used for model selection, and it is only
cells, learned on CIFAR-10, in a large-scale se
image
sep.conv3x3/2
sep.conv3x3/2
sep.conv3x3
conv3x3
globalpool
linear&softmax
small CIFAR-10 model
cell
cell
cell
sep.conv3x3
image
conv3x3/2
conv3x3/2
sep.conv3x3/2
Imag
cell
cell
cell
Figure 2: Image classification models construc
Top-left: small model used during architectu
model used for learned cell evaluation. Bottom
better
better
158. Exploring the design space of deep networks
0.2 0.4 0.6 0.8 1 1.2
Inference time [h]
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Validationerror
Default
Pareto
optimal
subset, and evaluated on the validation subset
the selected cell is plugged into a large mode
validation sub-sets, and the accuracy is report
is never used for model selection, and it is only
cells, learned on CIFAR-10, in a large-scale se
image
sep.conv3x3/2
sep.conv3x3/2
sep.conv3x3
conv3x3
globalpool
linear&softmax
small CIFAR-10 model
cell
cell
cell
sep.conv3x3
image
conv3x3/2
conv3x3/2
sep.conv3x3/2
Imag
cell
cell
cell
Figure 2: Image classification models construc
Top-left: small model used during architectu
model used for learned cell evaluation. Bottom
Architecture search is carried out entirely on the CIFAR-10 training set, which w
sub-sets of 40K training and 10K validation images. Candidate models are trained
subset, and evaluated on the validation subset to obtain the fitness. Once the search
the selected cell is plugged into a large model which is trained on the combination
validation sub-sets, and the accuracy is reported on the CIFAR-10 test set. We note
is never used for model selection, and it is only used for final model evaluation. We
cells, learned on CIFAR-10, in a large-scale setting on the ImageNet challenge data
image
sep.conv3x3/2
sep.conv3x3/2
sep.conv3x3
conv3x3
globalpool
linear&softmax
small CIFAR-10 model
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
image
conv3x3
large CIFAR-10 model
cell
cell
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3/2
conv3x3/2
sep.conv3x3/2
globalpool
linear&softmax
ImageNet model
cell
cell
cell
cell
cell
cell
cell
Figure 2: Image classification models constructed using the cells optimized with arc
Top-left: small model used during architecture search on CIFAR-10. Top-right:
better
better
159. Exploring the design space of deep networks
0.2 0.4 0.6 0.8 1 1.2
Inference time [h]
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Validationerror
Default
Pareto
optimal
subset, and evaluated on the validation subset
the selected cell is plugged into a large mode
validation sub-sets, and the accuracy is report
is never used for model selection, and it is only
cells, learned on CIFAR-10, in a large-scale se
image
sep.conv3x3/2
sep.conv3x3/2
sep.conv3x3
conv3x3
globalpool
linear&softmax
small CIFAR-10 model
cell
cell
cell
sep.conv3x3
image
conv3x3/2
conv3x3/2
sep.conv3x3/2
Imag
cell
cell
cell
Figure 2: Image classification models construc
Top-left: small model used during architectu
model used for learned cell evaluation. Bottom
validation subset to obtain the fitness. Once the search process is over,
nto a large model which is trained on the combination of training and
ccuracy is reported on the CIFAR-10 test set. We note that the test set
tion, and it is only used for final model evaluation. We also evaluate the
in a large-scale setting on the ImageNet challenge dataset (Sect. 4.3).
globalpool
linear&softmax
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3
globalpool
linear&softmax
large CIFAR-10 model
cell
cell
cell
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
sep.conv3x3/2
globalpool
linear&softmax
ImageNet model
cell
cell
cell
cell
cell
cell
n models constructed using the cells optimized with architecture search.
during architecture search on CIFAR-10. Top-right: large CIFAR-10
valuation. Bottom: ImageNet model used for learned cell evaluation.
Architecture search is carried out entirely on the CIFAR-10 training set, which w
sub-sets of 40K training and 10K validation images. Candidate models are trained
subset, and evaluated on the validation subset to obtain the fitness. Once the search
the selected cell is plugged into a large model which is trained on the combination
validation sub-sets, and the accuracy is reported on the CIFAR-10 test set. We note
is never used for model selection, and it is only used for final model evaluation. We
cells, learned on CIFAR-10, in a large-scale setting on the ImageNet challenge data
image
sep.conv3x3/2
sep.conv3x3/2
sep.conv3x3
conv3x3
globalpool
linear&softmax
small CIFAR-10 model
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
image
conv3x3
large CIFAR-10 model
cell
cell
cell
cell
cell
sep.conv3x3/2
sep.conv3x3
sep.conv3x3/2
sep.conv3x3
sep.conv3x3
sep.conv3x3
image
conv3x3/2
conv3x3/2
sep.conv3x3/2
globalpool
linear&softmax
ImageNet model
cell
cell
cell
cell
cell
cell
cell
Figure 2: Image classification models constructed using the cells optimized with arc
Top-left: small model used during architecture search on CIFAR-10. Top-right:
better
better
174. Configuration complexity and dependencies between
options is a major source of configuration errors
Default
Operational context I
Operational context II
Operational context III
175. Configuration complexity and dependencies between
options is a major source of configuration errors
Configuration Options
Apache Hadoop Architecture
176. Configuration complexity and dependencies between
options is a major source of configuration errors
Configuration Options
Apache Hadoop Architecture
Associated to
177. Configuration complexity and dependencies between
options is a major source of configuration errors
Configuration Options
Apache Hadoop Architecture
Associated to
178. Configuration complexity and dependencies between
options is a major source of configuration errors
Configuration Options
Apache Hadoop Architecture
Associated to
181. We can find the repair patches faster with a lighter
workload
• [localization]: Using transfer learning to derive the most
likely configurations that manifest the bugs
182. We can find the repair patches faster with a lighter
workload
• [localization]: Using transfer learning to derive the most
likely configurations that manifest the bugs
• [repair]: Automatically prepare patches to fix the
configuration bug