{"title":"How to Build Emergent Software Systems (Tutorial)","authors":"Roberto Rodrigues Filho, Barry Porter","doi":"10.1109/FAS-W.2019.00068","DOIUrl":"https://doi.org/10.1109/FAS-W.2019.00068","url":null,"abstract":"Emergent software systems take a reward signal, an environment signal, and a collection of possible behavioural compositions implementing the system logic in a variety of ways, to learn in real-time how to best assemble a system to maximise reward. This reduces the burden of complexity in systems building by making human programmers responsible only for developing potential building blocks while the system determines how best to use them in its deployment conditions – with no architectural models or training regimes. Instead of adaptation being a special capability, emergent systems treat adaptation as continuous self-assembly, where a system is constantly reviewing its own behavioural composition to find alternative building blocks which better suit the currently perceived environment.","PeriodicalId":368308,"journal":{"name":"2019 IEEE 4th International Workshops on Foundations and Applications of Self* Systems (FAS*W)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-04-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129647957","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Emergent Scheduling of Distributed Execution Frameworks","authors":"Paul Dean","doi":"10.1109/FAS-W.2019.00063","DOIUrl":"https://doi.org/10.1109/FAS-W.2019.00063","url":null,"abstract":"Distributed execution Frameworks (DEFs) provide a platform for handling the increasing volume of data available to distributed computational processes, forming the creation and usage of a large number of DEFs for performing distributed computations. For example, sorting and analyzing large data sets through map and reduce operations, performing a set of operations across points in a data stream to provide near real-time analysis, and the training and testing of machine learning models for varying methods of learning, such as, supervised, unsupervised and reinforcement learning, exploiting the vast amounts of data available. Leading to varying DEFs becoming optimal for either fine or coarse grained computations, for example Apache Spark provides a framework for coarse grained data parallel processes providing data locality adding latency to scheduling decisions which would hinder performance of fine-grained computation. Whereas Ray and Apache Flink provide solutions to avoid the latency incurred by the scheduling method used by apache Spark while potentially incurring longer job completion times as data locality is no longer a priority. Therefore, this PhD will focus on overcoming the issue of trading performance for differing workloads by exploiting the capabilities presented by emergent software systems which learn how to assemble and re-assemble themselves in response to their current deployment conditions and input pattern. This allows the creation of a component based DEF capable of altering both the local behaviour of a DEF (i.e. Local Schedulers and placement polices within a centralised scheduler) to potentially improve the performance of single DEF as well as global behaviour of a DEF, for example the adaptation of a centralised to two-level scheduler.","PeriodicalId":368308,"journal":{"name":"2019 IEEE 4th International Workshops on Foundations and Applications of Self* Systems (FAS*W)","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-04-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125737695","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Code Synthesis in Self-Improving Software Systems","authors":"Roberto Rodrigues Filho, A. Wild, Barry Porter","doi":"10.1109/FAS-W.2019.00015","DOIUrl":"https://doi.org/10.1109/FAS-W.2019.00015","url":null,"abstract":"This extended abstract aims at provoking a wide discussion around code synthesis and its importance in creating the next generation of self-improving software systems. As a starting point for the discussion, a machine-to-machine self-improving framework is presented. The framework aims at improving system's performance by integrating two modules: i) a self-improving online module, and ii) a code synthesiser offline module. The online module learns, at runtime, as it handles the system's inputs, how to best compose the system from a pallet of available software components and a user-defined high level goal. The offline code synthesiser generates new components based on the perceived system's input, executing environment and the system's goal provided by the online module. The code synthesiser then provides better component options for the online module to integrate with the system to improve its performance. This abstract describes the framework, focusing on its main challenges.","PeriodicalId":368308,"journal":{"name":"2019 IEEE 4th International Workshops on Foundations and Applications of Self* Systems (FAS*W)","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-04-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121868239","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}