A Study of Software Multithreading in Distributed Systems

Total Page:16

File Type:pdf, Size:1020Kb

A Study of Software Multithreading in Distributed Systems A Study of Software Multithreading in Distributed Systems TA Marsland and Yao qing Gao Francis CM Lau Computing Science Department Computer Science Department University of Alb erta UniversityofHongKong Edmonton Canada TG H Hong Kong tonygaoyqcsualb ertaca fmclaucshkuhk Technical Rep ort TR Novemb er Abstract Multiple threads can b e used not only as a mechanism for tolerating un predictable communication latency but also for facilitating dynamic scheduling and load balancing Multithreaded systems are well suited to highly irregular and dynamic applications such as tree search problems and provide a nat ural waytoachieve p erformance improvement through such new concepts as active messages and remote memory copy Although already p opular in single pro cessor and sharedmemory pro cessor systems multithreading on distributed systems encounters more diculties and needs to address new issues suchas communication scheduling and migration b etween threads lo cated in separate addressing spaces This pap er addresses the key issues of multithreaded systems and investigates existing approaches for distributed concurrent computations Keywords Multithreaded computation thread virtual pro cessor thread safety active message datadriven This researchwas supp orted by Natural Sciences and Engineering Research Council of Canada TA MarslandYaoqing Gao and Francis CM Lau Intro duction Distributed computing on interconnected high p erformance workstations has b een increasingly prevalentover the past few years and provides a costeective alterna tive to the use of sup ercomputers and massively parallel machines Much eort has b een put into developing distributed programming systems suchasPVMP MPI and Express Most existing distributed software systems supp ort only a pro cessbased messagepassing paradigm ie pro cesses with lo cal memory that com municate with each other by sending and receiving messages This paradigm ts well on separate pro cessors connected bya communication network where a pro cess has only a single thread of execution ie it is doing only one thing at a time However the pro cess based paradigm suers p erformance p enalty through communication la tency and high context switchoverhead esp ecially in the case where computing work is frequently created and destroyed Toovercome these problems lightweight pro cesses or threads subpro cesses in a sheltered environmentandhaving a lower context switch cost have received much attention as a mechanism for a providing a ner granularity of concurrency b facilitating dynamic load balancing c making virtual pro cessors indep endentofthephysical pro cessors and d overlapping computation and communication to tolerate communication latency In addition multithreading provides a natural way to implementnonblo cking communication op erations active messages and remote memory copy Multithreading can b e supp orted bysoftware or even hardware eg MTA Alewife EARTH START Although it has b een p opular in single pro cessor and sharedmemory pro cessor systems multithreading on distributed sys tems encounters more diculties mainly b ecause of the high latency and low band width communication links underlying distributedmemory computers In this pap er we rst address some ma jor issues ab out designing and imple menting multithreading in distributed systems Then weinvestigate typical existing multithreaded systems for exploiting the p otential of multicomputers and workstation networks and compare their capabilities Toprovide a framework we use a uniform terminology of thread pro cess and pro cessor but provide at the end a table show ing the varied terminology used by the originating researchers From this study we identify three areas where further work is necessary to advance the p erformance of A Study of Software Multithreading in Distributed Systems multithreaded distributed systems Ma jor issues A runtime system denes the compilers or users view of a machine It can b e used either as a compiler target or for programmer use It is resp onsible for managementof computational resources communication and synchronization among parallel tasks in a program Designing and implementing multiple threads in distributed systems involves the following ma jor issues how to implement threads How to pro vide communication and scheduling mechanisms for threads in separate addressing space What kinds of programming paradigms are supp orted for ease of concur rent programming Howtomake the system threadsafe Threads A pro cess may b e dened lo osely as an address space together with a current state consisting of a program counter register values and a subroutine call stack A pro cess has only one program counter and do es one thing at a time single thread As we know one of the obvious obstacles to the p erformance of workstation networks is the relatively slow network interconnection hardware One of the motivations to intro duce the notion of threads is to provide greater concurrency within a single pro cess This is p ossible through more rapid switching of control of the CPU from one thread to another b ecause memory management is simplied When one thread is waiting for data from another pro cessor other threads can continue executing This improves p erformance if the overhead asso ciated with the use of multiple threads is less than the communication latency masked by computation From the view p oint of programmers it is desirable for reasons of clarity and simplicity that programs are co ded using a known numb er of virtual pro cessors irresp ective of the availabilityof the physical pro cessors Threads supp ort a scenario where each pro cess is a virtual pro cessor and multiple threads are running in the context of a pro cess The feature of lowoverhead for thread context switch is esp ecially suitable for highly dynamic irregular problems where threads are frequently created and destroyed Threads can b e supp orted TA MarslandYaoqing Gao and Francis CM Lau at the systemlevel where all functionality is part of the op erating system kernel by userlevel library co de where all functionality is part of the user program and can b e linked in and by a mixture of the ab ove Userlevel library implementations such as Cthread PCR FastThreads and pthread multiplex a p otentially large numb er of userdened threads on top of a single kernelimplemented pro cess This approach can b e more ecient than relying on op erating system kernel supp ort since the overhead of entering and leav ing the kernel at each call and the context switchoverhead of kernel threads is high Userlevel threads are on the other hand not only exible but can also b e customized to the needs of the language or user without kernel mo dication However userlevel library implementation complicates signal handling and some thread op erations such as synchronization and scheduling Two dierentscheduling mechanisms are needed one for kernellevel pro cesses and the other for userlevel threads Userlevel threads built on top of traditional pro cesses may exhibit p o or p erformance and even incor rect b ehavior in some cases when the op erating system activities such as IO and page faults distort the mapping from virtual pro cesses to physical pro cessors The kernel thread supp ort suchas Mach Topaz and V simplies control over thread op erations and signal handling but like traditional pro cesses these kernel threads carry to o muchoverhead A mixture of the ab ove can combine the function alityofkernel threads with the p erformance and exibility of userlevel threads The key issue is to provide a twowaycommunication mechanism b etween the kernel and user threads so that they can exchange information suchasscheduling hints The Psyche system provides suchamechanism by the following approaches shared data structures for asynchrono ous communication b etween the kernel and the user software interrupts to notify the user level of some kernel events and a scheduler in terface for interactions in the user space b etween dissimilar thread packages Another example is Scheduler Activations through whichthekernel can notify the thread scheduler of every event aecting the user and the user can also notify of the subset of userlevel events aecting pro cessor allo cation decisions In addition Scheduler Activations address some problems not handled bythePsyche system such as page faults and upwardcompatible simulation of traditional kernel threads A Study of Software Multithreading in Distributed Systems Thread safety A software system is said to b e threadsafe if multiple threads in the system can execute successfully without data corruption and without interfering with each other If a system is not thread safe then each thread must havemutually exclusive access to the system forcing serialization of other threads To supp ort multithreaded pro gramming eciently a system needs to b e carefully engineered in the following wayto make it threadsafe use as few global state information as p ossible explicitly manage any global state that cannot b e removed use reentrant functions that may b e safely invoked bymultiple threads concurrently without yielding erroneous results race conditions or deadlo cks and provide atomic access to nonreentrant functions Thread scheduling Scheduling plays an imp ortant role in distributed multithreaded systems There are two kinds of thread scheduling scheduling within a pro cess and among pro cesses The former are similar to the prioritybased preemptive or round robin strategies in traditional singlepro cessor systems
Recommended publications
  • User Interface Design Issues in HCI
    IJCSNS International Journal of Computer Science and Network Security, VOL.18 No.8, August 2018 153 User Interface Design Issues In HCI Waleed Iftikhar, Muhammad Sheraz Arshad Malik, Shanza Tariq, Maha Anwar, Jawad Ahmad, M. Saad sultan Department of Computing, Riphah International University, Faisalabad, Pakistan Summary Command line is the interface that allows the user to This paper presents an important analysis on a literature review interact with the computer by directly using the commands. which has the findings in design issues from the year 1999 to But there is an issue that the commands cannot be changed, 2018. This study basically discusses about all the issues related they are fixed and computer only understands the exact to design and user interface, and also gives the solutions to make commands. the designs or user interface more attractive and understandable. This study is the guideline to solve the main issues of user Graphical user interface is the interface that allows the interface. user to interact with the system, because this is user There is important to secure the system for modern applications. friendly and easy to use. This includes the graphics, The use of internet is quickly growing from years. Because of pictures and also attractive for all type of users. The this fast travelling lifestyle, where they lets the user to attach with command line is black and white interface. This interface systems from everywhere. When user is ignoring the is also known as WIMPS because it uses windows, icons, functionalities in the system then the system is not secure but, in menus, pointers.
    [Show full text]
  • Designing for Increased Autonomy & Human Control
    IFIP Workshop on Intelligent Vehicle Dependability and Security (IVDS) January 29, 2021 Designing for Increased Autonomy & Human Control Ben Shneiderman @benbendc Founding Director (1983-2000), Human-Computer Interaction Lab Professor, Department of Computer Science Member, National Academy of Engineering Photo: BK Adams IFIP Workshop on Intelligent Vehicle Dependability and Security (IVDS) January 29, 2021 Designing for Increased Automation & Human Control Ben Shneiderman @benbendc Founding Director (1983-2000), Human-Computer Interaction Lab Professor, Department of Computer Science Member, National Academy of Engineering Photo: BK Adams What is Human-Centered AI? Human-Centered AI Amplify, Augment, Enhance & Empower People Human Responsibility Supertools and Active Appliances Visual Interfaces to Prevent/Reduce Explanations Audit Trails to Analyze Failures & Near Misses Independent Oversight à Reliable, Safe & Trustworthy Supertools Digital Camera Controls Navigation Choices Texting Autocompletion Spelling correction Active Appliances Coffee maker, Rice cooker, Blender Dishwasher, Clothes Washer/Dryer Implanted Cardiac Pacemakers NASA Mars Rovers are Tele-Operated DaVinci Tele-Operated Surgery “Robots don’t perform surgery. Your surgeon performs surgery with da Vinci by using instruments that he or she guides via a console.” https://www.davincisurgery.com/ Bloomberg Terminal A 2-D HCAI Framework Designing the User Interface Balancing automation & human control First Edition: 1986 Designing the User Interface Balancing automation &
    [Show full text]
  • Distributed & Cloud Computing: Lecture 1
    Distributed & cloud computing: Lecture 1 Chokchai “Box” Leangsuksun SWECO Endowed Professor, Computer Science Louisiana Tech University [email protected] CTO, PB Tech International Inc. [email protected] Class Info ■" Class Hours: noon-1:50 pm T-Th ! ■" Dr. Box’s & Contact Info: ●"www.latech.edu/~box ●"Phone 318-257-3291 ●"Email: [email protected] Class Info ■" Main Text: ! ●" 1) Distributed Systems: Concepts and Design By Coulouris, Dollimore, Kindberg and Blair Edition 5, © Addison-Wesley 2012 ●" 2) related publications & online literatures Class Info ■" Objective: ! ●"the theory, design and implementation of distributed systems ●"Discussion on abstractions, Concepts and current systems/applications ●"Best practice on Research on DS & cloud computing Course Contents ! •" The Characterization of distributed computing and cloud computing. •" System Models. •" Networking and inter-process communication. •" OS supports and Virtualization. •" RAS, Performance & Reliability Modeling. Security. !! Course Contents •" Introduction to Cloud Computing ! •" Various models and applications. •" Deployment models •" Service models (SaaS, PaaS, IaaS, Xaas) •" Public Cloud: Amazon AWS •" Private Cloud: openStack. •" Cost models ( between cloud vs host your own) ! •" ! !!! Course Contents case studies! ! •" Introduction to HPC! •" Multicore & openMP! •" Manycore, GPGPU & CUDA! •" Cloud-based EKG system! •" Distributed Object & Web Services (if time allows)! •" Distributed File system (if time allows)! •" Replication & Disaster Recovery Preparedness! !!!!!! Important Dates ! ■" Apr 10: Mid Term exam ■" Apr 22: term paper & presentation due ■" May 15: Final exam Evaluations ! ■" 20% Lab Exercises/Quizzes ■" 20% Programming Assignments ■" 10% term paper ■" 20% Midterm Exam ■" 30% Final Exam Intro to Distributed Computing •" Distributed System Definitions. •" Distributed Systems Examples: –" The Internet. –" Intranets. –" Mobile Computing –" Cloud Computing •" Resource Sharing. •" The World Wide Web. •" Distributed Systems Challenges. Based on Mostafa’s lecture 10 Distributed Systems 0.
    [Show full text]
  • Distributed Algorithms with Theoretic Scalability Analysis of Radial and Looped Load flows for Power Distribution Systems
    Electric Power Systems Research 65 (2003) 169Á/177 www.elsevier.com/locate/epsr Distributed algorithms with theoretic scalability analysis of radial and looped load flows for power distribution systems Fangxing Li *, Robert P. Broadwater ECE Department Virginia Tech, Blacksburg, VA 24060, USA Received 15 April 2002; received in revised form 14 December 2002; accepted 16 December 2002 Abstract This paper presents distributed algorithms for both radial and looped load flows for unbalanced, multi-phase power distribution systems. The distributed algorithms are developed from tree-based sequential algorithms. Formulas of scalability for the distributed algorithms are presented. It is shown that computation time dominates communication time in the distributed computing model. This provides benefits to real-time load flow calculations, network reconfigurations, and optimization studies that rely on load flow calculations. Also, test results match the predictions of derived formulas. This shows the formulas can be used to predict the computation time when additional processors are involved. # 2003 Elsevier Science B.V. All rights reserved. Keywords: Distributed computing; Scalability analysis; Radial load flow; Looped load flow; Power distribution systems 1. Introduction Also, the method presented in Ref. [10] was tested in radial distribution systems with no more than 528 buses. Parallel and distributed computing has been applied More recent works [11Á/14] presented distributed to many scientific and engineering computations such as implementations for power flows or power flow based weather forecasting and nuclear simulations [1,2]. It also algorithms like optimizations and contingency analysis. has been applied to power system analysis calculations These works also targeted power transmission systems. [3Á/14].
    [Show full text]
  • Lecture 4 Resource Protection and Thread Safety
    Concurrency and Correctness – Resource Protection and TS Lecture 4 Resource Protection and Thread Safety 1 Danilo Piparo – CERN, EP-SFT Concurrency and Correctness – Resource Protection and TS This Lecture The Goals: 1) Understand the problem of contention of resources within a parallel application 2) Become familiar with the design principles and techniques to cope with it 3) Appreciate the advantage of non-blocking techniques The outline: § Threads and data races: synchronisation issues § Useful design principles § Replication, atomics, transactions and locks § Higher level concrete solutions 2 Danilo Piparo – CERN, EP-SFT Concurrency and Correctness – Resource Protection and TS Threads and Data Races: Synchronisation Issues 3 Danilo Piparo – CERN, EP-SFT Concurrency and Correctness – Resource Protection and TS The Problem § Fastest way to share data: access the same memory region § One of the advantages of threads § Parallel memory access: delicate issue - race conditions § I.e. behaviour of the system depends on the sequence of events which are intrinsically asynchronous § Consequences, in order of increasing severity § Catastrophic terminations: segfaults, crashes § Non-reproducible, intermittent bugs § Apparently sane execution but data corruption: e.g. wrong value of a variable or of a result Operative definition: An entity which cannot run w/o issues linked to parallel execution is said to be thread-unsafe (the contrary is thread-safe) 4 Danilo Piparo – CERN, EP-SFT Concurrency and Correctness – Resource Protection and TS To Be Precise: Data Race Standard language rules, §1.10/4 and /21: • Two expression evaluations conflict if one of them modifies a memory location (1.7) and the other one accesses or modifies the same memory location.
    [Show full text]
  • Exploring the User Interface Affordances of File Sharing
    CHI 2006 Proceedings • Activity: Design Implications April 22-27, 2006 • Montréal, Québec, Canada Share and Share Alike: Exploring the User Interface Affordances of File Sharing Stephen Voida1, W. Keith Edwards1, Mark W. Newman2, Rebecca E. Grinter1, Nicolas Ducheneaut2 1GVU Center, College of Computing 2Palo Alto Research Center Georgia Institute of Technology 3333 Coyote Hill Road 85 5th Street NW, Atlanta, GA 30332–0760, USA Palo Alto, CA 94304, USA {svoida, keith, beki}@cc.gatech.edu {mnewman, nicolas}@parc.com ABSTRACT and folders shared with other users on a single computer, With the rapid growth of personal computer networks and often as a default system behavior; files shared with other the Internet, sharing files has become a central activity in computers over an intranet or home network; and files computer use. The ways in which users control the what, shared with other users around the world on web sites and how, and with whom of sharing are dictated by the tools FTP servers. Users also commonly exchange copies of they use for sharing; there are a wide range of sharing documents as email attachments, transfer files during practices, and hence a wide range of tools to support these instant messaging sessions, post digital photos to online practices. In practice, users’ requirements for certain photo album services, and swap music files using peer–to– sharing features may dictate their choice of tool, even peer file sharing applications. though the other affordances available through that tool Despite these numerous venues for and implementations of may not be an ideal match to the desired manner of sharing.
    [Show full text]
  • User Interface for Volume Rendering in Virtual Reality Environments
    User Interface for Volume Rendering in Virtual Reality Environments Jonathan Klein∗ Dennis Reuling† Jan Grimm‡ Andreas Pfau§ Damien Lefloch¶ Martin Lambersk Andreas Kolb∗∗ Computer Graphics Group University of Siegen ABSTRACT the gradient or the curvature at the voxel location into account and Volume Rendering applications require sophisticated user interac- require even more complex user interfaces. tion for the definition and refinement of transfer functions. Tradi- Since Virtual Environments are especially well suited to explore tional 2D desktop user interface elements have been developed to spatial properties of complex 3D data, bringing Volume Render- solve this task, but such concepts do not map well to the interaction ing applications into such environments is a natural step. However, devices available in Virtual Reality environments. defining new user interfaces suitable both for the Virtual Environ- ment and for the Volume Rendering application is difficult. Pre- In this paper, we propose an intuitive user interface for Volume vious approaches mainly focused on porting traditional 2D point- Rendering specifically designed for Virtual Reality environments. and-click concepts to the Virtual Environment [8, 5, 9]. This tends The proposed interface allows transfer function design and refine- to be unintuitive, to complicate the interaction, and to make only ment based on intuitive two-handed operation of Wand-like con- limited use of available interaction devices. trollers. Additional interaction modes such as navigation and clip In this paper, we propose an intuitive 3D user interface for Vol- plane manipulation are supported as well. ume Rendering based on interaction devices that are suitable for The system is implemented using the Sony PlayStation Move Virtual Reality environments.
    [Show full text]
  • Effective User Interface Design for Consumer Trust Two Case Studies
    2005:097 SHU MASTER'S THESIS Effective User Interface Design for Consumer Trust Two Case Studies XILING ZHOU XIANGCHUN LIU Luleå University of Technology MSc Programme in Electronic Commerce Department of Business Administration and Social Sciences Division of Industrial marketing and e-commerce 2005:097 SHU - ISSN: 1404-5508 - ISRN: LTU-SHU-EX--05/097--SE Luleå University of Technology E-Commerce ACKNOWLEDGEMENT This thesis is the result of half a year of work whereby we have been accompanied and supported by many people. It is a pleasant aspect that we could have this opportunity to express our gratitude to all of them. First, we are deeply indebted to our supervisor Prof. Lennart Persson who is from Division of Industrial Marketing at LTU. He helped us with stimulating suggestions and encouragement in all the time of research and writing of this thesis. Without his never-ending support during this process, we could not have done this thesis. Especially, we would like to express our gratitude to all of participants, who have spent their valuable time to response the interview questions and discuss with us. Finally, we would like to thank our family and friends. I, Zhou Xiling am very grateful for everyone who gave me support and encouragement during this process. Especially I felt a deep sense of gratitude to my father and mother who formed part of my vision and taught me the good things that really matter in the life. I also want to thank my friend Tang Yu for his never-ending support and good advices. I, Liu XiangChun am very grateful for my parents, for their endless love and support.
    [Show full text]
  • Clojure, Given the Pun on Closure, Representing Anything Specific
    dynamic, functional programming for the JVM “It (the logo) was designed by my brother, Tom Hickey. “It I wanted to involve c (c#), l (lisp) and j (java). I don't think we ever really discussed the colors Once I came up with Clojure, given the pun on closure, representing anything specific. I always vaguely the available domains and vast emptiness of the thought of them as earth and sky.” - Rich Hickey googlespace, it was an easy decision..” - Rich Hickey Mark Volkmann [email protected] Functional Programming (FP) In the spirit of saying OO is is ... encapsulation, inheritance and polymorphism ... • Pure Functions • produce results that only depend on inputs, not any global state • do not have side effects such as Real applications need some changing global state, file I/O or database updates side effects, but they should be clearly identified and isolated. • First Class Functions • can be held in variables • can be passed to and returned from other functions • Higher Order Functions • functions that do one or both of these: • accept other functions as arguments and execute them zero or more times • return another function 2 ... FP is ... Closures • main use is to pass • special functions that retain access to variables a block of code that were in their scope when the closure was created to a function • Partial Application • ability to create new functions from existing ones that take fewer arguments • Currying • transforming a function of n arguments into a chain of n one argument functions • Continuations ability to save execution state and return to it later think browser • back button 3 ..
    [Show full text]
  • Grid Computing: What Is It, and Why Do I Care?*
    Grid Computing: What Is It, and Why Do I Care?* Ken MacInnis <[email protected]> * Or, “Mi caja es su caja!” (c) Ken MacInnis 2004 1 Outline Introduction and Motivation Examples Architecture, Components, Tools Lessons Learned and The Future Questions? (c) Ken MacInnis 2004 2 What is “grid computing”? Many different definitions: Utility computing Cycles for sale Distributed computing distributed.net RC5, SETI@Home High-performance resource sharing Clusters, storage, visualization, networking “We will probably see the spread of ‘computer utilities’, which, like present electric and telephone utilities, will service individual homes and offices across the country.” Len Kleinrock (1969) The word “grid” doesn’t equal Grid Computing: Sun Grid Engine is a mere scheduler! (c) Ken MacInnis 2004 3 Better definitions: Common protocols allowing large problems to be solved in a distributed multi-resource multi-user environment. “A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities.” Kesselman & Foster (1998) “…coordinated resource sharing and problem solving in dynamic, multi- institutional virtual organizations.” Kesselman, Foster, Tuecke (2000) (c) Ken MacInnis 2004 4 New Challenges for Computing Grid computing evolved out of a need to share resources Flexible, ever-changing “virtual organizations” High-energy physics, astronomy, more Differing site policies with common needs Disparate computing needs
    [Show full text]
  • A High Level User Interface for Topology Controlled Volume Rendering
    Topological Galleries: A High Level User Interface for Topology Controlled Volume Rendering Brian MacCarthy, Hamish Carr and Gunther H. Weber Abstract Existing topological interfaces to volume rendering are limited by their re- liance on sophisticated knowledge of topology by the user. We extend previous work by describing topological galleries, an interface for novice users that is based on the design galleries approach. We report three contributions: an interface based on hier- archical thumbnail galleries to display the containment relationships between topo- logically identifiable features, the use of the pruning hierarchy instead of branch decomposition for contour tree simplification, and drag-and-drop transfer function assignment for individual components. Initial results suggest that this approach suf- fers from limitations due to rapid drop-off of feature size in the pruning hierarchy. We explore these limitations by providing statistics of feature size as function of depth in the pruning hierarchy of the contour tree. 1 Introduction The overall goal of scientific visualisation is to provide useful insight into existing data. As visualisation techniques have become more complex, so have the interfaces for controlling them. In cases where the interface has been simplified, it has often been at the cost of the functionality of the program. Thus, while expert users are capable of using state of the art technology, novice users who would otherwise have uses for this technology are restricted by unintuitive interfaces. Topology-based volume rendering, while powerful, is difficult to apply success- fully. This difficulty is due to the fact that the interface used to design transfer func- Brian MacCarthy University College Dublin, Belfield, Dublin 4, Ireland, e-mail: [email protected] Hamish Carr University of Leeds, Woodhouse Lane, Leeds LS2 9JT, England e-mail: [email protected] Gunther H.
    [Show full text]
  • Computing at Massive Scale: Scalability and Dependability Challenges
    This is a repository copy of Computing at massive scale: Scalability and dependability challenges. White Rose Research Online URL for this paper: http://eprints.whiterose.ac.uk/105671/ Version: Accepted Version Proceedings Paper: Yang, R and Xu, J orcid.org/0000-0002-4598-167X (2016) Computing at massive scale: Scalability and dependability challenges. In: Proceedings - 2016 IEEE Symposium on Service-Oriented System Engineering, SOSE 2016. 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE), 29 Mar - 02 Apr 2016, Oxford, United Kingdom. IEEE , pp. 386-397. ISBN 9781509022533 https://doi.org/10.1109/SOSE.2016.73 (c) 2016 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other users, including reprinting/ republishing this material for advertising or promotional purposes, creating new collective works for resale or redistribution to servers or lists, or reuse of any copyrighted components of this work in other works. Reuse Unless indicated otherwise, fulltext items are protected by copyright with all rights reserved. The copyright exception in section 29 of the Copyright, Designs and Patents Act 1988 allows the making of a single copy solely for the purpose of non-commercial research or private study within the limits of fair dealing. The publisher or other rights-holder may allow further reproduction and re-use of this version - refer to the White Rose Research Online record for this item. Where records identify the publisher as the copyright holder, users can verify any specific terms of use on the publisher’s website. Takedown If you consider content in White Rose Research Online to be in breach of UK law, please notify us by emailing [email protected] including the URL of the record and the reason for the withdrawal request.
    [Show full text]