138,540 research outputs found

    Type-driven automated program transformations and cost modelling for optimising streaming programs on FPGAs

    Get PDF
    In this paper we present a novel approach to program optimisation based on compiler-based type-driven program transformations and a fast and accurate cost/performance model for the target architecture. We target streaming programs for the problem domain of scientific computing, such as numerical weather prediction. We present our theoretical framework for type-driven program transformation, our target high-level language and intermediate representation languages and the cost model and demonstrate the effectiveness of our approach by comparison with a commercial toolchain

    Orchestrating Tuple-based Languages

    Get PDF
    The World Wide Web can be thought of as a global computing architecture supporting the deployment of distributed networked applications. Currently, such applications can be programmed by resorting mainly to two distinct paradigms: one devised for orchestrating distributed services, and the other designed for coordinating distributed (possibly mobile) agents. In this paper, the issue of designing a pro- gramming language aiming at reconciling orchestration and coordination is investigated. Taking as starting point the orchestration calculus Orc and the tuple-based coordination language Klaim, a new formalism is introduced combining concepts and primitives of the original calculi. To demonstrate feasibility and effectiveness of the proposed approach, a prototype implementation of the new formalism is described and it is then used to tackle a case study dealing with a simplified but realistic electronic marketplace, where a number of on-line stores allow client applications to access information about their goods and to place orders

    Successful Community Nutrition Programming:lessons from Kenya,Tanzania,and Uganda

    Get PDF
    Learning from success is the most effective and efficient way of learning.This report brings together the main findings of a series of assessments of successful community nutrition programming carried out in Kenya, Tanzania, and Uganda between 1999 and 2000. The overall aim of the assessments was to identify key lessons, or the main driving forces behind the successful processes and outcomes in these programs. Such elements of success fundamentally have to do with both what was done and how it was done. Experience with community-based nutrition programming, as documented in various syntheses and reviews during the 1990s, does show that malnutrition can be effectively addressed on a large scale, at reasonable cost, through appropriate programs and strategies, and backed up by sustained political support. In most cases, successful attempts to overcome malnutrition originate with participatory, community-based nutrition programs undertaken in parallel with supportive sectoral actions directed toward nutritionally at-risk groups. Such actions are often enabled and supported by policies aimed at improving access by the poor to adequate social services, improving women’s status and education, and\ud fostering equitable economic growth. Successful community-based programs are not islands of excellence existing in an imperfect world. Rather, part of their success has to do with contextual factors that provide an enabling or supportive environment. Some of these contextual factors are particularly influenced by policy, some less so. Contextual factors may include, for example, high literacy rates, women’s empowerment, community organizational capacity and structures, appropriate legislation. Nutrition program managers cannot normally influence contextual factors, at least in the short term.\ud In addition to favorable contextual factors, certain program factors contribute to successful programs, such as the design, implementation, and/or management of the program or project, which can, of course, be influenced by program managers. Both contextual and program factors, and the way they interact, need to be identified in order to understand the dynamics behind success. In 1998, under the Greater Horn of Africa Initiative (GHAI) supported by the United States Agency for International Development (USAID), nutrition coalitions were formed in Kenya, Tanzania, and Uganda. These nutrition coalitions, comprising individuals representing government, non-governmental organizations (NGOs), donors, academic institutions, and the private sector, seek to advance the nutrition agenda both in policy and programming through coordination and advocacy efforts. One of the first tasks of the nutrition coalitions, under the leadership of the Program for Applied Technologies in Health (PATH) in Kenya, the Tanzania Food and Nutrition Centre (TFNC) in Tanzania, and the African Medical Research Foundation (AMREF) in Uganda, was to prepare an inventory of community nutrition programs in their respective countries and identify of better practices in community nutrition programming. Country teams, supported by USAID/REDSO/ESA and LINKAGES/AED, then selected three successful programs in their respective countries based on preestablished "process" and "outcome" criteria. UNICEF has a long history of promoting and supporting community-based programs in Eastern and Southern Africa and has supported many reviews and evaluations. As part of its continued effort to strengthen community-based programs by learning from new success stories, UNICEF also identified for review a relatively large scale successful program in Tanzania\u

    Efficient and Reasonable Object-Oriented Concurrency

    Full text link
    Making threaded programs safe and easy to reason about is one of the chief difficulties in modern programming. This work provides an efficient execution model for SCOOP, a concurrency approach that provides not only data race freedom but also pre/postcondition reasoning guarantees between threads. The extensions we propose influence both the underlying semantics to increase the amount of concurrent execution that is possible, exclude certain classes of deadlocks, and enable greater performance. These extensions are used as the basis an efficient runtime and optimization pass that improve performance 15x over a baseline implementation. This new implementation of SCOOP is also 2x faster than other well-known safe concurrent languages. The measurements are based on both coordination-intensive and data-manipulation-intensive benchmarks designed to offer a mixture of workloads.Comment: Proceedings of the 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE '15). ACM, 201

    Towards an Adaptive Skeleton Framework for Performance Portability

    Get PDF
    The proliferation of widely available, but very different, parallel architectures makes the ability to deliver good parallel performance on a range of architectures, or performance portability, highly desirable. Irregularly-parallel problems, where the number and size of tasks is unpredictable, are particularly challenging and require dynamic coordination. The paper outlines a novel approach to delivering portable parallel performance for irregularly parallel programs. The approach combines declarative parallelism with JIT technology, dynamic scheduling, and dynamic transformation. We present the design of an adaptive skeleton library, with a task graph implementation, JIT trace costing, and adaptive transformations. We outline the architecture of the protoype adaptive skeleton execution framework in Pycket, describing tasks, serialisation, and the current scheduler.We report a preliminary evaluation of the prototype framework using 4 micro-benchmarks and a small case study on two NUMA servers (24 and 96 cores) and a small cluster (17 hosts, 272 cores). Key results include Pycket delivering good sequential performance e.g. almost as fast as C for some benchmarks; good absolute speedups on all architectures (up to 120 on 128 cores for sumEuler); and that the adaptive transformations do improve performance

    S-Net for multi-memory multicores

    Get PDF
    Copyright ACM, 2010. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the 5th ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming: http://doi.acm.org/10.1145/1708046.1708054S-Net is a declarative coordination language and component technology aimed at modern multi-core/many-core architectures and systems-on-chip. It builds on the concept of stream processing to structure dynamically evolving networks of communicating asynchronous components. Components themselves are implemented using a conventional language suitable for the application domain. This two-level software architecture maintains a familiar sequential development environment for large parts of an application and offers a high-level declarative approach to component coordination. In this paper we present a conservative language extension for the placement of components and component networks in a multi-memory environment, i.e. architectures that associate individual compute cores or groups thereof with private memories. We describe a novel distributed runtime system layer that complements our existing multithreaded runtime system for shared memory multicores. Particular emphasis is put on efficient management of data communication. Last not least, we present preliminary experimental data

    Mainstreaming Disaster Risk Reduction in WASH: Experience in DRR Mainstreaming in Nicaragua

    Get PDF
    Nicaragua is near the top of all international lists of countries with high disaster risk. Multiple global, national, and local factors augment the hazards faced by WASH services and increase their vulnerability. This publication discusses how disaster risk reduction (DRR) started in Nicaragua and the lessons learned from it
    • 

    corecore