110,442 research outputs found

    Distributing Aggregate Computations on top of Akka Actors

    Get PDF
    In the context of the Internet of Things, development of large-scale, adaptive systems usually focuses on the behavior of the single device. Aggregate programming is a paradigm that provides an alternative approach, in which the basic unit of computing is a cooperating collection of devices, instead of a single device. scafi is a Scala framework for aggregate programming, and provides an Akka-based platform for aggregate applications, supporting both peer-to-peer and server-based networks. Moreover, scafi offers a simulator module for the simulation of an aggregate system. The work described in this thesis consists in the analysis of scafi, in the partial re-engineering of its internal actor platform, and in the development of new features. The main goal is to enhance the flexibility of scafi in a distributed context, promoting its adoption for programming spatial systems. First of all, communication between distributed nodes is enabled, by defining a JSON-based serialization strategy, which promotes interoperability. A hybrid platform is also introduced, exploiting a peer-to-peer communication between devices, with a central unit that manages all the relevant space related information. This platform fills the main gap of the peer to-peer approach in a distributed environment: tracking of remote devices. Moreover, a code mobility approach is implemented, allowing the assignment of new programs to devices, at runtime. Lastly, the concept of monitoring a distributed aggregate system emerged, leading to the development of a graphical user interface, observing the devices in a running system. In this thesis, I present the new architecture and API of the actor platform of scafi, designed with the aim of ensure a more flexible approach for the development of distributed applications with aggregate computing

    Context-aware collaborative storage and programming for mobile users

    Get PDF
    Since people generate and access most digital content from mobile devices, novel innovative mobile apps and services are possible. Most people are interested in sharing this content with communities defined by friendship, similar interests, or geography in exchange for valuable services from these innovative apps. At the same time, they want to own and control their content. Collaborative mobile computing is an ideal choice for this situation. However, due to the distributed nature of this computing environment and the limited resources on mobile devices, maintaining content availability and storage fairness as well as providing efficient programming frameworks are challenging. This dissertation explores several techniques to improve these shortcomings of collaborative mobile computing platforms. First, it proposes a medley of three techniques into one system, MobiStore, that offers content availability in mobile peer-to-peer networks: topology maintenance with robust connectivity, structural reorientation based on the current state of the network, and gossip-based hierarchical updates. Experimental results showed that MobiStore outperforms a state-of-the-art comparison system in terms of content availability and resource usage fairness. Next, the dissertation explores the usage of social relationship properties (i.e., network centrality) to improve the fairness of resource allocation for collaborative computing in peer-to-peer online social networks. The challenge is how to provide fairness in content replication for P2P-OSN, given that the peers in these networks exchange information only with one-hop neighbors. The proposed solution provides fairness by selecting the peers to replicate content based on their potential to introduce the storage skewness, which is determined from their structural properties in the network. The proposed solution, Philia, achieves higher content availability and storage fairness than several comparison systems. The dissertation concludes with a high-level distributed programming model, which efficiently uses computing resources on a cloud-assisted, collaborative mobile computing platform. This platform pairs mobile devices with virtual machines (VMs) in the cloud for increased execution performance and availability. On such a platform, two important challenges arise: first, pairing the two computing entities into a seamless computation, communication, and storage unit; and second, using the computing resources in a cost-effective way. This dissertation proposes Moitree, a distributed programming model and middleware that translates high-level programming constructs into events and provides the illusion of a single computing entity over the mobile-VM pairs. From programmers’ viewpoint, the Moitree API models user collaborations into dynamic groups formed over location, time, or social hierarchies. Experimental results from a prototype implementation show that Moitree is scalable, suitable for real-time apps, and can improve the performance of collaborating apps regarding latency and energy consumption

    Heterogeneous hierarchical workflow composition

    Get PDF
    Workflow systems promise scientists an automated end-to-end path from hypothesis to discovery. However, expecting any single workflow system to deliver such a wide range of capabilities is impractical. A more practical solution is to compose the end-to-end workflow from more than one system. With this goal in mind, the integration of task-based and in situ workflows is explored, where the result is a hierarchical heterogeneous workflow composed of subworkflows, with different levels of the hierarchy using different programming, execution, and data models. Materials science use cases demonstrate the advantages of such heterogeneous hierarchical workflow composition.This work is a collaboration between Argonne National Laboratory and the Barcelona Supercomputing Center within the Joint Laboratory for Extreme-Scale Computing. This research is supported by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, under contract number DE-AC02- 06CH11357, program manager Laura Biven, and by the Spanish Government (SEV2015-0493), by the Spanish Ministry of Science and Innovation (contract TIN2015-65316-P), by Generalitat de Catalunya (contract 2014-SGR-1051).Peer ReviewedPostprint (author's final draft

    Parallel processing over a peer-to-peer network : constructing the poor man’s supercomputer

    Get PDF
    The aggregation of typical home computers through a peer-to-peer (P2P) framework over the Internet would yield a virtual supercomputer of unmatched processing power, 95% of which is presently being left unutilized. However, the global community appears to be still hesitant at tapping into the well of unharnessed potential offered by exploiting distributed computing. Reasons include the lack of personal incentive for participants, and the high degree of expertise required from application developers. Our vision is to tackle the aforementioned obstacles by building a P2P system capable of deploying user-defined tasks onto the network for distributed execution. Users would only be expected to write standard concurrent code accessing our application programming interface, and may rely on the system to transparently provide for optimal task distribution, process migration, message delivery, global state, fault tolerance, and recovery. Strong mobility during process migration is achieved by pre-processing the source code. Our results indicate that near-linear efficiencies – approximately 94% ± 2% of the optimal – may be obtained for adequately coarse-grained applications, even when deployed on a heterogeneous net- work.peer-reviewe

    An evaluation of electronic individual peer assessment in an introductory programming course

    Get PDF
    [Abstract]: Peer learning is a powerful pedagogical practice delivering improved outcomes over conventional teacher-student interactions while offering marking relief to instructors. Peer review enables learning by requiring students to evaluate the work of others. PRAISE is an on-line peer-review system that facilitates anonymous review and delivers prompt feedback from multiple sources. This study is an evaluation of the use of PRAISE in an introductory programming course. Use of the system is examined and attitudes of novice programmers towards the use of peer review are compared to those of students from other disciplines, raising a number of interesting issues. Recommendations are made to introductory programming instructors who may be considering peer review in assignments

    Pando: Personal Volunteer Computing in Browsers

    Full text link
    The large penetration and continued growth in ownership of personal electronic devices represents a freely available and largely untapped source of computing power. To leverage those, we present Pando, a new volunteer computing tool based on a declarative concurrent programming model and implemented using JavaScript, WebRTC, and WebSockets. This tool enables a dynamically varying number of failure-prone personal devices contributed by volunteers to parallelize the application of a function on a stream of values, by using the devices' browsers. We show that Pando can provide throughput improvements compared to a single personal device, on a variety of compute-bound applications including animation rendering and image processing. We also show the flexibility of our approach by deploying Pando on personal devices connected over a local network, on Grid5000, a French-wide computing grid in a virtual private network, and seven PlanetLab nodes distributed in a wide area network over Europe.Comment: 14 pages, 12 figures, 2 table

    A general purpose programming framework for ubiquitous computing environments

    Get PDF
    It is important to note that the need to support ad-hoc and potentially mobile arrangements of devices in ubiquitous environments does not fit well within the traditional client/server architecture. We believe peer-to-peer communication offers a preferable alternative due to its decentralised nature, removing dependence on individual nodes. However, this choice adds to the complexity of the developers task. In this paper, we describe a two-tiered approach to address this problem: A lower tier employing peer-to-peer interactions for managing the network infrastructure and an upper tier providing a mobile agent based programming framework. The result is a general purpose framework for developing ubiquitous applications and services, where the underlying complexity is hidden from the developer. This paper discusses our on-going work; presenting our design decisions, features supported by our framework, and some of the challenges still to be addressed in a complex programming environment
    • …
    corecore