11 research outputs found

    Positional Games and QBF: The Corrective Encoding

    Full text link
    Positional games are a mathematical class of two-player games comprising Tic-tac-toe and its generalizations. We propose a novel encoding of these games into Quantified Boolean Formulas (QBF) such that a game instance admits a winning strategy for first player if and only if the corresponding formula is true. Our approach improves over previous QBF encodings of games in multiple ways. First, it is generic and lets us encode other positional games, such as Hex. Second, structural properties of positional games together with a careful treatment of illegal moves let us generate more compact instances that can be solved faster by state-of-the-art QBF solvers. We establish the latter fact through extensive experiments. Finally, the compactness of our new encoding makes it feasible to translate realistic game problems. We identify a few such problems of historical significance and put them forward to the QBF community as milestones of increasing difficulty.Comment: Accepted for publication in the 23rd International Conference on Theory and Applications of Satisfiability Testing (SAT2020

    Methodology for malleable applications on distributed memory systems

    Get PDF
    A la portada logo BSC(English) The dominant programming approach for scientific and industrial computing on clusters is MPI+X. While there are a variety of approaches within the node, denoted by the ``X'', Message Passing interface (MPI) is the standard for programming multiple nodes with distributed memory. This thesis argues that the OmpSs-2 tasking model can be extended beyond the node to naturally support distributed memory, with three benefits: First, at small to medium scale the tasking model is a simpler and more productive alternative to MPI. It eliminates the need to distribute the data explicitly and convert all dependencies into explicit message passing. It also avoids the complexity of hybrid programming using MPI+X. Second, the ability to offload parts of the computation among the nodes enables the runtime to automatically balance the loads in a full-scale MPI+X program. This approach does not require a cost model, and it is able to transparently balance the computational loads across the whole program, on all its nodes. Third, because the runtime handles all low-level aspects of data distribution and communication, it can change the resource allocation dynamically, in a way that is transparent to the application. This thesis describes the design, development and evaluation of OmpSs-2@Cluster, a programming model and runtime system that extends the OmpSs-2 model to allow a virtually unmodified OmpSs-2 program to run across multiple distributed memory nodes. For well-balanced applications it provides similar performance to MPI+OpenMP on up to 16 nodes, and it improves performance by up to 2x for irregular and unbalanced applications like Cholesky factorization. This work also extended OmpSs-2@Cluster for interoperability with MPI and Barcelona Supercomputing Center (BSC)'s state-of-the-art Dynamic Load Balance (DLB) library in order to dynamically balance MPI+OmpSs-2 applications by transparently offloading tasks among nodes. This approach reduces the execution time of a microscale solid mechanics application by 46% on 64 nodes and on a synthetic benchmark, it is within 10% of perfect load balancing on up to 8 nodes. Finally, the runtime was extended to transparently support malleability for pure OmpSs-2@Cluster programs and interoperate with the Resources Management System (RMS). The only change to the application is to explicitly call an API function to control the addition or removal of nodes. In this regard we additionally provide the runtime with the ability to semi-transparently save and recover part of the application status to perform checkpoint and restart. Such a feature hides the complexity of data redistribution and parallel IO from the user while allowing the program to recover and continue previous executions. Our work is a starting point for future research on fault tolerance. In summary, OmpSs-2@Cluster expands the OmpSs-2 programming model to encompass distributed memory clusters. It allows an existing OmpSs-2 program, with few if any changes, to run across multiple nodes. OmpSs-2@Cluster supports transparent multi-node dynamic load balancing for MPI+OmpSs-2 programs, and enables semi-transparent malleability for OmpSs-2@Cluster programs. The runtime system has a high level of stability and performance, and it opens several avenues for future work.(Espa帽ol) El modelo de programaci贸n dominante para clusters tanto en ciencia como industria es actualmente MPI+X. A pesar de que hay alguna variedad de alternativas para programar dentro de un nodo (indicado por la "X"), el estandar para programar m煤ltiples nodos con memoria distribuida sigue siendo Message Passing Interface (MPI). Esta tesis propone la extensi贸n del modelo de programaci贸n basado en tareas OmpSs-2 para su funcionamiento en sistemas de memoria distribuida, destacando 3 beneficios principales: En primer lugar; a peque帽a y mediana escala, un modelo basado en tareas es m谩s simple y productivo que MPI y elimina la necesidad de distribuir los datos expl铆citamente y convertir todas las dependencias en mensajes. Adem谩s, evita la complejidad de la programacion h铆brida MPI+X. En segundo lugar; la capacidad de enviar partes del c谩lculo entre los nodos permite a la librer铆a balancear la carga de trabajo en programas MPI+X a gran escala. Este enfoque no necesita un modelo de coste y permite equilibrar cargas transversalmente en todo el programa y todos los nodos. En tercer lugar; teniendo en cuenta que es la librer铆a quien maneja todos los aspectos relacionados con distribuci贸n y transferencia de datos, es posible la modificaci贸n din谩mica y transparente de los recursos que utiliza la aplicaci贸n. Esta tesis describe el dise帽o, desarrollo y evaluaci贸n de OmpSs-2@Cluster; un modelo de programaci贸n y librer铆a que extiende OmpSs-2 permitiendo la ejecuci贸n de programas OmpSs-2 existentes en m煤ltiples nodos sin pr谩cticamente necesidad de modificarlos. Para aplicaciones balanceadas, este modelo proporciona un rendimiento similar a MPI+OpenMP hasta 16 nodos y duplica el rendimiento en aplicaciones irregulares o desbalanceadas como la factorizaci贸n de Cholesky. Este trabajo incluye la extensi贸n de OmpSs-2@Cluster para interactuar con MPI y la librer铆a de balanceo de carga Dynamic Load Balancing (DLB) desarrollada en el Barcelona Supercomputing Center (BSC). De este modo es posible equilibrar aplicaciones MPI+OmpSs-2 mediante la transferencia transparente de tareas entre nodos. Este enfoque reduce el tiempo de ejecuci贸n de una aplicaci贸n de mec谩nica de s贸lidos a micro-escala en un 46% en 64 nodos; en algunos experimentos hasta 8 nodos se pudo equilibrar perfectamente la carga con una diferencia inferior al 10% del equilibrio perfecto. Finalmente, se implement贸 otra extensi贸n de la librer铆a para realizar operaciones de maleabilidad en programas OmpSs-2@Cluster e interactuar con el Sistema de Manejo de Recursos (RMS). El 煤nico cambio requerido en la aplicaci贸n es la llamada explicita a una funci贸n de la interfaz que controla la adici贸n o eliminaci贸n de nodos. Adem谩s, se agreg贸 la funcionalidad de guardar y recuperar parte del estado de la aplicaci贸n de forma semitransparente con el objetivo de realizar operaciones de salva-reinicio. Dicha funcionalidad oculta al usuario la complejidad de la redistribuci贸n de datos y las operaciones de lectura-escritura en paralelo, mientras permite al programa recuperar y continuar ejecuciones previas. Este es un punto de partida para futuras investigaciones en tolerancia a fallos. En resumen, OmpSs-2@Cluster ampl铆a el modelo de programaci贸n de OmpSs-2 para abarcar sistemas de memoria distribuida. El modelo permite la ejecuci贸n de programas OmpSs-2 en m煤ltiples nodos pr谩cticamente sin necesidad de modificarlos. OmpSs-2@Cluster permite adem谩s el balanceo din谩mico de carga en aplicaciones h铆bridas MPI+OmpSs-2 ejecutadas en varios nodos y es capaz de realizar maleabilidad semi-transparente en programas OmpSs-2@Cluster puros. La librer铆a tiene un niveles de rendimiento y estabilidad altos y abre varios caminos para trabajos futuro.Arquitectura de computador

    Design and implementation of a multi-agent opportunistic grid computing platform

    Get PDF
    Opportunistic Grid Computing involves joining idle computing resources in enterprises into a converged high performance commodity infrastructure. The research described in this dissertation investigates the viability of public resource computing in offering a plethora of possibilities through seamless access to shared compute and storage resources. The research proposes and conceptualizes the Multi-Agent Opportunistic Grid (MAOG) solution in an Information and Communication Technologies for Development (ICT4D) initiative to address some limitations prevalent in traditional distributed system implementations. Proof-of-concept software components based on JADE (Java Agent Development Framework) validated Multi-Agent Systems (MAS) as an important tool for provisioning of Opportunistic Grid Computing platforms. Exploration of agent technologies within the research context identified two key components which improve access to extended computer capabilities. The first component is a Mobile Agent (MA) compute component in which a group of agents interact to pool shared processor cycles. The compute component integrates dynamic resource identification and allocation strategies by incorporating the Contract Net Protocol (CNP) and rule based reasoning concepts. The second service is a MAS based storage component realized through disk mirroring and Google file-system鈥檚 chunking with atomic append storage techniques. This research provides a candidate Opportunistic Grid Computing platform design and implementation through the use of MAS. Experiments conducted validated the design and implementation of the compute and storage services. From results, support for processing user applications; resource identification and allocation; and rule based reasoning validated the MA compute component. A MAS based file-system that implements chunking optimizations was considered to be optimum based on evaluations. The findings from the undertaken experiments also validated the functional adequacy of the implementation, and show the suitability of MAS for provisioning of robust, autonomous, and intelligent platforms. The context of this research, ICT4D, provides a solution to optimizing and increasing the utilization of computing resources that are usually idle in these contexts

    Application Development from Prototype to Beta : A Case Study of the Application SeafarerCV

    Get PDF
    Master's thesis Multimedia and Educational Technology MM500 - University of Agder 2018When the prototype of a software product is completed and approved, development of a betaready resource is often the natural step toward a future final release. This process contains many steps that may prove vital to the eventual success or downfall of a future product. Technologies must be chosen, design methodologies must be followed, and care must be given to provide the final product with a solid foundation to build upon. This thesis follows such a development process for the development of resources for beta-testing. This process, as well as the human centered design approaches, and the resulting resources, are evaluated compared to relevant theory of the field. In addition, an external team was outsourced development of a mobile application. This thesis gives insight into of some of the considerations, as well as some of the pitfalls, that can occur during a process to take a prototype to a beta-ready stage. It concludes that although the research questions can be answered and the goals of stakeholders were largely met, there is still a significant amount of structured work required to elevate the result to a desired level of quality. Keywords: Application development, human-centered design, single authentication service, development process, application success factors.

    A software architecture for configuration and usage of process simulation models : software component technology and XML-based approach

    Get PDF
    Increased use of process simulation in different phases of the process and automation life cycle makes the information management related to model configuration and usage more important. Information management increases the requirements for more efficient model customisation and reuse, improved configurational co-use between different simulators, more generic extensibility of the simulation tools and more flexible run-time connectivity between the simulators and other applications. In this thesis, the emphasis is on large-scale dynamic process simulation of continuous processes in the power, pulp and paper industries. The main research problem is how to apply current information technologies, such as software component technology and XML, to facilitate the use of process simulation and to enhance the benefits gained from using it. As a development task this means developing a new software architecture that takes into account the requirements of improved information management in process simulation. As a research objective it means analysing whether it is possible to meet the new requirements in one software architecture using open specifications developed in information and automation technologies. Process simulation is analysed from the points of view of standardisation, current process simulation systems and simulation research. A new architectural solution is designed and implemented. The degree of meeting the new requirements is experimentally verified by testing the alleged features using examples and industrial cases. The main result of this thesis is the design, description and implementation of a new integration architecture for the configuration and usage of process simulation models. The original features of the proposed architecture are its openness, general distribution concept and distributed extensibility features.reviewe

    Design and implementation of a multi-agent opportunistic grid computing platform

    Get PDF
    Opportunistic Grid Computing involves joining idle computing resources in enterprises into a converged high performance commodity infrastructure. The research described in this dissertation investigates the viability of public resource computing in offering a plethora of possibilities through seamless access to shared compute and storage resources. The research proposes and conceptualizes the Multi-Agent Opportunistic Grid (MAOG) solution in an Information and Communication Technologies for Development (ICT4D) initiative to address some limitations prevalent in traditional distributed system implementations. Proof-of-concept software components based on JADE (Java Agent Development Framework) validated Multi-Agent Systems (MAS) as an important tool for provisioning of Opportunistic Grid Computing platforms. Exploration of agent technologies within the research context identified two key components which improve access to extended computer capabilities. The first component is a Mobile Agent (MA) compute component in which a group of agents interact to pool shared processor cycles. The compute component integrates dynamic resource identification and allocation strategies by incorporating the Contract Net Protocol (CNP) and rule based reasoning concepts. The second service is a MAS based storage component realized through disk mirroring and Google file-system鈥檚 chunking with atomic append storage techniques. This research provides a candidate Opportunistic Grid Computing platform design and implementation through the use of MAS. Experiments conducted validated the design and implementation of the compute and storage services. From results, support for processing user applications; resource identification and allocation; and rule based reasoning validated the MA compute component. A MAS based file-system that implements chunking optimizations was considered to be optimum based on evaluations. The findings from the undertaken experiments also validated the functional adequacy of the implementation, and show the suitability of MAS for provisioning of robust, autonomous, and intelligent platforms. The context of this research, ICT4D, provides a solution to optimizing and increasing the utilization of computing resources that are usually idle in these contexts

    Adaptation and Robustness in Peer-to-Peer Streaming

    Get PDF
    The rapid development of network communication infrastructure enables networked multimedia streaming applications ranging from on-demand video streaming to highly interactive video conferencing. Peer-to-Peer (P2P) technologies have emerged as a powerful and popular paradigm for bringing such emerging multimedia services to a large number of users. The essential advantage of P2P systems is that the system capacity scales up when more peers join, as peer upload capacity is utilized. However, providing satisfactory streaming services over P2P networks is challenging because of their inherent instability and unreliability and the limited adaptability of traditional video coding techniques. On one hand, different from dedicated servers, users may not have enough bandwidth to serve other users as most user connections are asymmetric in their upload and download capacity, and they are heterogeneous in terms of bandwidth and preferences. In addition, users can join and leave the system at any time as there are no guarantees on their contribution to the system. On the other hand, although traditional video coding techniques are efficient in terms of resource consumption, compression ratio, and coding and decoding speed, they do not support scalable modes efficiently as such modes come along with high computation cost. Consequently, in traditional P2P streaming systems, the bit rate (the video quality) of media streams is determined based on the capacities of the low-end users, i.e. the lowest common denominator, to make sure that most of their users can perceive acceptable quality. This causes two critical limitations of the current P2P streaming systems. First, users perceive the same quality regardless of their bandwidth capacity, i.e., no differentiated QoS. Second, with the current best-effort Internet and peer dynamics, the streaming quality at each peer is easily impaired, i.e., no continuous playback. Recently, multiple layer codec research has become more refined, as SVC (the scalable extension of the H.264/AVC standard) has been standardized with a bit rate overhead of around 10% and an indistinguishable visual quality compared to the state of the art single layer codec. The hypothesis of this research work is that the adaptable coding technique can bring significant benefits to P2P streaming as it enables adaptability in P2P streaming. In addition, to improve the robustness of the system to network fluctuations and peer dynamics, network coding and social networking are also applied. The overall goal of this research is to achieve adaptive and robust P2P streaming services, which are believed to be the next generation of P2P streaming on the Internet. Several major contributions are presented in this dissertation. First, to use SVC in P2P streaming, a segmentation method to segment SVC streams into scalable units is proposed such that they can be delivered adaptively by the P2P paradigm. The method is demonstrated to be able to preserve the scalability features of a stream, i.e., adaptation can be applied on segments and the re-generated stream at each peer is a valid stream. Second, a novel and complete adaptive P2P streaming protocol, named Chameleon, is presented. Chameleon uses the segmentation method to use SVC and combine it with network coding in P2P streaming to achieve high performance streaming. The core of Chameleon is studied, including neighbor selection, quality adaptation, receiver-driven peer coordination, and sender selection, with different design options. Experiments on Chameleon reveal that overlay construction is important to system performance, and traditional gossip-based protocols are not good enough for layered P2P streaming. Therefore, third, a SCAMP-based neighbor selection protocol and a peer sampling-based membership management protocol for layered P2P streaming are proposed. These gossip-based protocols are quality- and context-aware as they form robust and adaptable overlays for layered P2P streaming so that high capacity peers have a higher priority to be located at good positions in the overlay, e.g. closer to the server, and peers with similar capacity are connected to each other to better utilize resources. Fourth, to better deal with peer dynamics, Stir, a social-based P2P streaming system, is suggested. In Stir, the novel idea of spontaneous social networking is introduced. Stir users who join the same streaming session can make friends and communicate with each other by cheap yet efficient communication means, e.g., instant messaging and Twitter-like commenting. Such friendship networks are exploited directly by the underlying social-based P2P streaming protocol. The tight integration between the high level social networking of users and the low level overlay of peers is demonstrated to be beneficial in dealing with high churn rates and providing personalized streaming services. Finally, as the approaches are about different aspects of adaptive and robust P2P streaming, to complete the picture, Chameleon++, which combines Chameleon and Stir, is presented. The design and the evaluation of Chameleon++ demonstrate the feasibility and the benefits of the approaches, and the consistency of the study

    Selective search in games of different complexity

    Get PDF

    Real-time video streaming using peer-to-peer for video distribution

    Get PDF
    The growth of the Internet has led to research and development of several new and useful applications including video streaming. Commercial experiments are underway to determine the feasibility of multimedia broadcasting using packet based data networks alongside traditional over-the-air broadcasting. Broadcasting companies are offering low cost or free versions of video content online to both guage and at the same time generate popularity. In addition to television broadcasting, video streaming is used in a number of application areas including video conferencing, telecommuting and long distance education. Large scale video streaming has not become as widespread or widely deployed as could be expected. The reason for this is the high bandwidth requirement (and thus high cost) associated with video data. Provision of a constant stream of video data on a medium to large scale typically consumes a significant amount of bandwidth. An effect of this is that encoding bit rates are lowered and consequently video quality is degraded resulting in even slower uptake rates for video streaming services. The aim of this dissertation is to investigate peer-to-peer streaming as a potential solution to this bandwidth problem. The proposed peer-to-peer based solution relies on end user co-operation for video data distribution. This approach is highly effective in reducing the outgoing bandwidth requirement for the video streaming server. End users redistribute received video chunks amongst their respective peers and in so doing increase the potential capacity of the entire network for supporting more clients. A secondary effect of such a system is that encoding capabilities (including higher encoding bit rates or encoding of additional sub-channels) can be enhanced. Peer-to-peer distribution enables any regular user to stream video to large streaming networks with many viewers. This research includes a detailed overview of the fields of video streaming and peer-to-peer networking. Techniques for optimal video preparation and data distribution were investigated. A variety of academic and commercial peer-to-peer based multimedia broadcasting systems were analysed as a means to further define and place the proposed implementation in context with respect to other peercasting implementations. A proof-of-concept of the proposed implementation was developed, mathematically analyzed and simulated in a typical deployment scenario. Analysis was carried out to predict simulation performance and as a form of design evaluation and verification. The analysis highlighted some critical areas which resulted in adaptations to the initial design as well as conditions under which performance can be guaranteed. A simulation of the proof-of-concept system was used to determine the extent of bandwidth savings for the video server. The aim of the simulations was to show that it is possible to encode and deliver video data in real time over a peer-to-peer network. The proposed system achieved expectations and showed significant bandwidth savings for a sustantially large video streaming audience. The implementation was able to encode video in real time and continually stream video packets on time to connected peers while continually supporting network growth by connecting additional peers (or stream viewers). The system performed well and showed good performance under typical real world restrictions on available bandwith capacity.Dissertation (MEng)--University of Pretoria, 2009.Electrical, Electronic and Computer Engineeringunrestricte
    corecore