1,824 research outputs found

    Unconstrained and Constrained Fault-Tolerant Resource Allocation

    Full text link
    First, we study the Unconstrained Fault-Tolerant Resource Allocation (UFTRA) problem (a.k.a. FTFA problem in \cite{shihongftfa}). In the problem, we are given a set of sites equipped with an unconstrained number of facilities as resources, and a set of clients with set R\mathcal{R} as corresponding connection requirements, where every facility belonging to the same site has an identical opening (operating) cost and every client-facility pair has a connection cost. The objective is to allocate facilities from sites to satisfy R\mathcal{R} at a minimum total cost. Next, we introduce the Constrained Fault-Tolerant Resource Allocation (CFTRA) problem. It differs from UFTRA in that the number of resources available at each site ii is limited by RiR_{i}. Both problems are practical extensions of the classical Fault-Tolerant Facility Location (FTFL) problem \cite{Jain00FTFL}. For instance, their solutions provide optimal resource allocation (w.r.t. enterprises) and leasing (w.r.t. clients) strategies for the contemporary cloud platforms. In this paper, we consider the metric version of the problems. For UFTRA with uniform R\mathcal{R}, we present a star-greedy algorithm. The algorithm achieves the approximation ratio of 1.5186 after combining with the cost scaling and greedy augmentation techniques similar to \cite{Charikar051.7281.853,Mahdian021.52}, which significantly improves the result of \cite{shihongftfa} using a phase-greedy algorithm. We also study the capacitated extension of UFTRA and give a factor of 2.89. For CFTRA with uniform R\mathcal{R}, we slightly modify the algorithm to achieve 1.5186-approximation. For a more general version of CFTRA, we show that it is reducible to FTFL using linear programming

    병렬 및 λΆ„μ‚° μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„ μœ„ν•œ λͺ¨λΈ 기반 μ½”λ“œ 생성 ν”„λ ˆμž„μ›Œν¬

    Get PDF
    ν•™μœ„λ…Όλ¬Έ(박사)--μ„œμšΈλŒ€ν•™κ΅ λŒ€ν•™μ› :κ³΅κ³ΌλŒ€ν•™ 컴퓨터곡학뢀,2020. 2. ν•˜μˆœνšŒ.μ†Œν”„νŠΈμ›¨μ–΄ 섀계 생산성 및 μœ μ§€λ³΄μˆ˜μ„±μ„ ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠이 μ œμ•ˆλ˜μ—ˆμ§€λ§Œ, λŒ€λΆ€λΆ„μ˜ μ—°κ΅¬λŠ” μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό ν•˜λ‚˜μ˜ ν”„λ‘œμ„Έμ„œμ—μ„œ λ™μž‘μ‹œν‚€λŠ” 데에 μ΄ˆμ μ„ λ§žμΆ”κ³  μžˆλ‹€. λ˜ν•œ, μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„ κ°œλ°œν•˜λŠ” 데에 ν•„μš”ν•œ μ§€μ—°μ΄λ‚˜ μžμ› μš”κ΅¬ 사항에 λŒ€ν•œ λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항을 κ³ λ €ν•˜μ§€ μ•Šκ³  있기 λ•Œλ¬Έμ— 일반적인 μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠을 μž„λ² λ””λ“œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” 데에 μ μš©ν•˜λŠ” 것은 μ ν•©ν•˜μ§€ μ•Šλ‹€. 이 λ…Όλ¬Έμ—μ„œλŠ” 병렬 및 λΆ„μ‚° μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„ λŒ€μƒμœΌλ‘œ ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λͺ¨λΈλ‘œ ν‘œν˜„ν•˜κ³ , 이λ₯Ό μ†Œν”„νŠΈμ›¨μ–΄ λΆ„μ„μ΄λ‚˜ κ°œλ°œμ— ν™œμš©ν•˜λŠ” 개발 방법둠을 μ†Œκ°œν•œλ‹€. 우리의 λͺ¨λΈμ—μ„œ μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄λŠ” κ³„μΈ΅μ μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλŠ” μ—¬λŸ¬ 개의 νƒœμŠ€ν¬λ‘œ 이루어져 있으며, ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌκ³Ό λ…λ¦½μ μœΌλ‘œ λͺ…μ„Έν•œλ‹€. νƒœμŠ€ν¬ κ°„μ˜ 톡신 및 λ™κΈ°ν™”λŠ” λͺ¨λΈμ΄ μ •μ˜ν•œ κ·œμ•½μ΄ μ •ν•΄μ Έ 있고, μ΄λŸ¬ν•œ κ·œμ•½μ„ 톡해 μ‹€μ œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜κΈ° 전에 μ†Œν”„νŠΈμ›¨μ–΄ μ—λŸ¬λ₯Ό 정적 뢄석을 톡해 확인할 수 있고, μ΄λŠ” μ‘μš©μ˜ 검증 λ³΅μž‘λ„λ₯Ό μ€„μ΄λŠ” 데에 κΈ°μ—¬ν•œλ‹€. μ§€μ •ν•œ ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌμ—μ„œ λ™μž‘ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ€ νƒœμŠ€ν¬λ“€μ„ ν”„λ‘œμ„Έμ„œμ— λ§€ν•‘ν•œ 이후에 μžλ™μ μœΌλ‘œ ν•©μ„±ν•  수 μžˆλ‹€. μœ„μ˜ λͺ¨λΈ 기반 μ†Œν”„νŠΈμ›¨μ–΄ 개발 λ°©λ²•λ‘ μ—μ„œ μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž¨ ν•©μ„±κΈ°λ₯Ό λ³Έ λ…Όλ¬Έμ—μ„œ μ œμ•ˆν•˜μ˜€λŠ”λ°, λͺ…μ„Έν•œ ν”Œλž«νΌ μš”κ΅¬ 사항을 λ°”νƒ•μœΌλ‘œ 병렬 및 λΆ„μ‚° μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ„μ—μ„œ λ™μž‘ν•˜λŠ” μ½”λ“œλ₯Ό μƒμ„±ν•œλ‹€. μ—¬λŸ¬ 개의 μ •ν˜•μ  λͺ¨λΈλ“€μ„ κ³„μΈ΅μ μœΌλ‘œ ν‘œν˜„ν•˜μ—¬ μ‘μš©μ˜ 동적 ν–‰νƒœλ₯Ό λ‚˜νƒ€κ³ , ν•©μ„±κΈ°λŠ” μ—¬λŸ¬ λͺ¨λΈλ‘œ κ΅¬μ„±λœ 계측적인 λͺ¨λΈλ‘œλΆ€ν„° 병렬성을 κ³ λ €ν•˜μ—¬ νƒœμŠ€ν¬λ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€. λ˜ν•œ, ν”„λ‘œκ·Έλž¨ ν•©μ„±κΈ°μ—μ„œ λ‹€μ–‘ν•œ ν”Œλž«νΌμ΄λ‚˜ λ„€νŠΈμ›Œν¬λ₯Ό 지원할 수 μžˆλ„λ‘ μ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜λŠ” 방법도 보여주고 μžˆλ‹€. λ³Έ λ…Όλ¬Έμ—μ„œ μ œμ‹œν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠은 6개의 ν•˜λ“œμ›¨μ–΄ ν”Œλž«νΌκ³Ό 3 μ’…λ₯˜μ˜ λ„€νŠΈμ›Œν¬λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ” μ‹€μ œ κ°μ‹œ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œ μ‘μš© μ˜ˆμ œμ™€ 이쒅 λ©€ν‹° ν”„λ‘œμ„Έμ„œλ₯Ό ν™œμš©ν•˜λŠ” 원격 λ”₯ λŸ¬λ‹ 예제λ₯Ό μˆ˜ν–‰ν•˜μ—¬ 개발 λ°©λ²•λ‘ μ˜ 적용 κ°€λŠ₯성을 μ‹œν—˜ν•˜μ˜€λ‹€. λ˜ν•œ, ν”„λ‘œκ·Έλž¨ ν•©μ„±κΈ°κ°€ μƒˆλ‘œμš΄ ν”Œλž«νΌμ΄λ‚˜ λ„€νŠΈμ›Œν¬λ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•΄ ν•„μš”λ‘œ ν•˜λŠ” 개발 λΉ„μš©λ„ μ‹€μ œ μΈ‘μ • 및 μ˜ˆμΈ‘ν•˜μ—¬ μƒλŒ€μ μœΌλ‘œ 적은 λ…Έλ ₯으둜 μƒˆλ‘œμš΄ ν”Œλž«νΌμ„ 지원할 수 μžˆμŒμ„ ν™•μΈν•˜μ˜€λ‹€. λ§Žμ€ μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ—μ„œ μ˜ˆμƒμΉ˜ λͺ»ν•œ ν•˜λ“œμ›¨μ–΄ μ—λŸ¬μ— λŒ€ν•΄ 결함을 κ°λ‚΄ν•˜λŠ” 것을 ν•„μš”λ‘œ ν•˜κΈ° λ•Œλ¬Έμ— 결함 감내에 λŒ€ν•œ μ½”λ“œλ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•˜λŠ” 연ꡬ도 μ§„ν–‰ν•˜μ˜€λ‹€. λ³Έ κΈ°λ²•μ—μ„œ 결함 감내 섀정에 따라 νƒœμŠ€ν¬ κ·Έλž˜ν”„λ₯Ό μˆ˜μ •ν•˜λŠ” 방식을 ν™œμš©ν•˜μ˜€μœΌλ©°, 결함 κ°λ‚΄μ˜ λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항을 μ‘μš© κ°œλ°œμžκ°€ μ‰½κ²Œ μ μš©ν•  수 μžˆλ„λ‘ ν•˜μ˜€λ‹€. λ˜ν•œ, 결함 감내 μ§€μ›ν•˜λŠ” 것과 κ΄€λ ¨ν•˜μ—¬ μ‹€μ œ μˆ˜λ™μœΌλ‘œ κ΅¬ν˜„ν–ˆμ„ κ²½μš°μ™€ λΉ„κ΅ν•˜μ˜€κ³ , 결함 μ£Όμž… 도ꡬλ₯Ό μ΄μš©ν•˜μ—¬ 결함 λ°œμƒ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μž¬ν˜„ν•˜κ±°λ‚˜, μž„μ˜λ‘œ 결함을 μ£Όμž…ν•˜λŠ” μ‹€ν—˜μ„ μˆ˜ν–‰ν•˜μ˜€λ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ 결함 감내λ₯Ό μ‹€ν—˜ν•  λ•Œμ— ν™œμš©ν•œ 결함 μ£Όμž… λ„κ΅¬λŠ” λ³Έ λ…Όλ¬Έμ˜ 또 λ‹€λ₯Έ κΈ°μ—¬ 사항 쀑 ν•˜λ‚˜λ‘œ λ¦¬λˆ…μŠ€ ν™˜κ²½μœΌλ‘œ λŒ€μƒμœΌλ‘œ μ‘μš© μ˜μ—­ 및 컀널 μ˜μ—­μ— 결함을 μ£Όμž…ν•˜λŠ” 도ꡬλ₯Ό κ°œλ°œν•˜μ˜€λ‹€. μ‹œμŠ€ν…œμ˜ 견고성을 κ²€μ¦ν•˜κΈ° μœ„ν•΄ 결함을 μ£Όμž…ν•˜μ—¬ 결함 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μž¬ν˜„ν•˜λŠ” 것은 널리 μ‚¬μš©λ˜λŠ” λ°©λ²•μœΌλ‘œ, λ³Έ λ…Όλ¬Έμ—μ„œ 개발된 결함 μ£Όμž… λ„κ΅¬λŠ” μ‹œμŠ€ν…œμ΄ λ™μž‘ν•˜λŠ” 도쀑에 μž¬ν˜„ κ°€λŠ₯ν•œ 결함을 μ£Όμž…ν•  수 μžˆλŠ” 도ꡬ이닀. 컀널 μ˜μ—­μ—μ„œμ˜ 결함 μ£Όμž…μ„ μœ„ν•΄ 두 μ’…λ₯˜μ˜ 결함 μ£Όμž… 방법을 μ œκ³΅ν•˜λ©°, ν•˜λ‚˜λŠ” 컀널 GNU 디버거λ₯Ό μ΄μš©ν•œ 방법이고, λ‹€λ₯Έ ν•˜λ‚˜λŠ” ARM ν•˜λ“œμ›¨μ–΄ 브레이크포인트λ₯Ό ν™œμš©ν•œ 방법이닀. μ‘μš© μ˜μ—­μ—μ„œ 결함을 μ£Όμž…ν•˜κΈ° μœ„ν•΄ GDB 기반 결함 μ£Όμž… 방법을 μ΄μš©ν•˜μ—¬ 동일 μ‹œμŠ€ν…œ ν˜Ήμ€ 원격 μ‹œμŠ€ν…œμ˜ μ‘μš©μ— 결함을 μ£Όμž…ν•  수 μžˆλ‹€. 결함 μ£Όμž… 도ꡬ에 λŒ€ν•œ μ‹€ν—˜μ€ ODROID-XU4 λ³΄λ“œμ—μ„œ μ§„ν–‰ν•˜μ˜€λ‹€.While various software development methodologies have been proposed to increase the design productivity and maintainability of software, they usually focus on the development of application software running on a single processing element, without concern about the non-functional requirements of an embedded system such as latency and resource requirements. In this thesis, we present a model-based software development method for parallel and distributed embedded systems. An application is specified as a set of tasks that follow a set of given rules for communication and synchronization in a hierarchical fashion, independently of the hardware platform. Having such rules enables us to perform static analysis to check some software errors at compile time to reduce the verification difficulty. Platform-specific program is synthesized automatically after mapping of tasks onto processing elements is determined. The program synthesizer is also proposed to generate codes which satisfies platform requirements for parallel and distributed embedded systems. As multiple models which can express dynamic behaviors can be depicted hierarchically, the synthesizer supports to manage multiple task graphs with a different hierarchy to run tasks with parallelism. Also, the synthesizer shows methods of managing codes for heterogeneous platforms and generating various communication methods. The viability of the proposed software development method is verified with a real-life surveillance application that runs on six processing elements with three remote communication methods, and remote deep learning example is conducted to use heterogeneous multiprocessing components on distributed systems. Also, supporting a new platform and network requires a small effort by measuring and estimating development costs. Since tolerance to unexpected errors is a required feature of many embedded systems, we also support an automatic fault-tolerant code generation. Fault tolerance can be applied by modifying the task graph based on the selected fault tolerance configurations, so the non-functional requirement of fault tolerance can be easily adopted by an application developer. To compare the effort of supporting fault tolerance, manual implementation of fault tolerance is performed. Also, the fault tolerance method is tested with the fault injection tool to emulate fault scenarios and inject faults randomly. Our fault injection tool, which has used for testing our fault-tolerance method, is another work of this thesis. Emulating fault scenarios by intentionally injecting faults is commonly used to test and verify the robustness of a system. To emulate faults on an embedded system, we present a run-time fault injection framework that can inject a fault on both a kernel and application layer of Linux-based systems. For injecting faults on a kernel layer, two complementary fault injection techniques are used. One is based on Kernel GNU Debugger, and the other is using a hardware breakpoint supported by the ARM architecture. For application-level fault injection, the GDB-based fault injection method is used to inject a fault on a remote application. The viability of the proposed fault injection tool is proved by real-life experiments with an ODROID-XU4 system.Chapter 1 Introduction 1 1.1 Motivation 1 1.2 Contribution 6 1.3 Dissertation Organization 8 Chapter 2 Background 9 2.1 HOPES: Hope of Parallel Embedded Software 9 2.1.1 Software Development Procedure 9 2.1.2 Components of HOPES 12 2.2 Universal Execution Model 13 2.2.1 Task Graph Specification 13 2.2.2 Dataflow specification of an Application 15 2.2.3 Task Code Specification and Generic APIs 21 2.2.4 Meta-data Specification 23 Chapter 3 Program Synthesis for Parallel and Distributed Embedded Systems 24 3.1 Motivational Example 24 3.2 Program Synthesis Overview 26 3.3 Program Synthesis from Hierarchically-mixed Models 30 3.4 Platform Code Synthesis 33 3.5 Communication Code Synthesis 36 3.6 Experiments 40 3.6.1 Development Cost of Supporting New Platforms and Networks 40 3.6.2 Program Synthesis for the Surveillance System Example 44 3.6.3 Remote GPU-accelerated Deep Learning Example 46 3.7 Document Generation 48 3.8 Related Works 49 Chapter 4 Model Transformation for Fault-tolerant Code Synthesis 56 4.1 Fault-tolerant Code Synthesis Techniques 56 4.2 Applying Fault Tolerance Techniques in HOPES 61 4.3 Experiments 62 4.3.1 Development Cost of Applying Fault Tolerance 62 4.3.2 Fault Tolerance Experiments 62 4.4 Random Fault Injection Experiments 65 4.5 Related Works 68 Chapter 5 Fault Injection Framework for Linux-based Embedded Systems 70 5.1 Background 70 5.1.1 Fault Injection Techniques 70 5.1.2 Kernel GNU Debugger 71 5.1.3 ARM Hardware Breakpoint 72 5.2 Fault Injection Framework 74 5.2.1 Overview 74 5.2.2 Architecture 75 5.2.3 Fault Injection Techniques 79 5.2.4 Implementation 83 5.3 Experiments 90 5.3.1 Experiment Setup 90 5.3.2 Performance Comparison of Two Fault Injection Methods 90 5.3.3 Bit-flip Fault Experiments 92 5.3.4 eMMC Controller Fault Experiments 94 Chapter 6 Conclusion 97 Bibliography 99 μš” μ•½ 108Docto

    Project scheduling under undertainty – survey and research potentials.

    Get PDF
    The vast majority of the research efforts in project scheduling assume complete information about the scheduling problem to be solved and a static deterministic environment within which the pre-computed baseline schedule will be executed. However, in the real world, project activities are subject to considerable uncertainty, that is gradually resolved during project execution. In this survey we review the fundamental approaches for scheduling under uncertainty: reactive scheduling, stochastic project scheduling, stochastic GERT network scheduling, fuzzy project scheduling, robust (proactive) scheduling and sensitivity analysis. We discuss the potentials of these approaches for scheduling projects under uncertainty.Management; Project management; Robustness; Scheduling; Stability;

    FPT Approximation for Constrained Metric k-Median/Means

    Get PDF
    The Metric kk-median problem over a metric space (X,d)(\mathcal{X}, d) is defined as follows: given a set LβŠ†XL \subseteq \mathcal{X} of facility locations and a set CβŠ†XC \subseteq \mathcal{X} of clients, open a set FβŠ†LF \subseteq L of kk facilities such that the total service cost, defined as Ξ¦(F,C)β‰‘βˆ‘x∈Cmin⁑f∈Fd(x,f)\Phi(F, C) \equiv \sum_{x \in C} \min_{f \in F} d(x, f), is minimised. The metric kk-means problem is defined similarly using squared distances. In many applications there are additional constraints that any solution needs to satisfy. This gives rise to different constrained versions of the problem such as rr-gather, fault-tolerant, outlier kk-means/kk-median problem. Surprisingly, for many of these constrained problems, no constant-approximation algorithm is known. We give FPT algorithms with constant approximation guarantee for a range of constrained kk-median/means problems. For some of the constrained problems, ours is the first constant factor approximation algorithm whereas for others, we improve or match the approximation guarantee of previous works. We work within the unified framework of Ding and Xu that allows us to simultaneously obtain algorithms for a range of constrained problems. In particular, we obtain a (3+Ξ΅)(3+\varepsilon)-approximation and (9+Ξ΅)(9+\varepsilon)-approximation for the constrained versions of the kk-median and kk-means problem respectively in FPT time. In many practical settings of the kk-median/means problem, one is allowed to open a facility at any client location, i.e., CβŠ†LC \subseteq L. For this special case, our algorithm gives a (2+Ξ΅)(2+\varepsilon)-approximation and (4+Ξ΅)(4+\varepsilon)-approximation for the constrained versions of kk-median and kk-means problem respectively in FPT time. Since our algorithm is based on simple sampling technique, it can also be converted to a constant-pass log-space streaming algorithm

    Data Replication and Its Alignment with Fault Management in the Cloud Environment

    Get PDF
    Nowadays, the exponential data growth becomes one of the major challenges all over the world. It may cause a series of negative impacts such as network overloading, high system complexity, and inadequate data security, etc. Cloud computing is developed to construct a novel paradigm to alleviate massive data processing challenges with its on-demand services and distributed architecture. Data replication has been proposed to strategically distribute the data access load to multiple cloud data centres by creating multiple data copies at multiple cloud data centres. A replica-applied cloud environment not only achieves a decrease in response time, an increase in data availability, and more balanced resource load but also protects the cloud environment against the upcoming faults. The reactive fault tolerance strategy is also required to handle the faults when the faults already occurred. As a result, the data replication strategies should be aligned with the reactive fault tolerance strategies to achieve a complete management chain in the cloud environment. In this thesis, a data replication and fault management framework is proposed to establish a decentralised overarching management to the cloud environment. Three data replication strategies are firstly proposed based on this framework. A replica creation strategy is proposed to reduce the total cost by jointly considering the data dependency and the access frequency in the replica creation decision making process. Besides, a cloud map oriented and cost efficiency driven replica creation strategy is proposed to achieve the optimal cost reduction per replica in the cloud environment. The local data relationship and the remote data relationship are further analysed by creating two novel data dependency types, Within-DataCentre Data Dependency and Between-DataCentre Data Dependency, according to the data location. Furthermore, a network performance based replica selection strategy is proposed to avoid potential network overloading problems and to increase the number of concurrent-running instances at the same time
    • …
    corecore