57 research outputs found

    A calculus of functional BSP programs with projection

    Full text link

    BSP Functional Programming: Examples of a Cost Based Methodology

    Full text link
    Abstract. Bulk-Synchronous Parallel ML (BSML) is a functional data-parallel language for the implementation of Bulk-Synchronous Parallel (BSP) algorithms. It makes an estimation of the execution time (cost) possible. This paper presents some general examples of BSML programs and a comparison of their predicted costs with the measured execution time on a parallel machine

    Stream Fusion, to Completeness

    Full text link
    Stream processing is mainstream (again): Widely-used stream libraries are now available for virtually all modern OO and functional languages, from Java to C# to Scala to OCaml to Haskell. Yet expressivity and performance are still lacking. For instance, the popular, well-optimized Java 8 streams do not support the zip operator and are still an order of magnitude slower than hand-written loops. We present the first approach that represents the full generality of stream processing and eliminates overheads, via the use of staging. It is based on an unusually rich semantic model of stream interaction. We support any combination of zipping, nesting (or flat-mapping), sub-ranging, filtering, mapping-of finite or infinite streams. Our model captures idiosyncrasies that a programmer uses in optimizing stream pipelines, such as rate differences and the choice of a "for" vs. "while" loops. Our approach delivers hand-written-like code, but automatically. It explicitly avoids the reliance on black-box optimizers and sufficiently-smart compilers, offering highest, guaranteed and portable performance. Our approach relies on high-level concepts that are then readily mapped into an implementation. Accordingly, we have two distinct implementations: an OCaml stream library, staged via MetaOCaml, and a Scala library for the JVM, staged via LMS. In both cases, we derive libraries richer and simultaneously many tens of times faster than past work. We greatly exceed in performance the standard stream libraries available in Java, Scala and OCaml, including the well-optimized Java 8 streams

    eXplainable AI for trustworthy healthcare applications

    Get PDF
    Acknowledging that AI will inevitably become a central element of clinical practice, this thesis investigates the role of eXplainable AI (XAI) techniques in developing trustworthy AI applications in healthcare. The first part of this thesis focuses on the societal, ethical, and legal aspects of the use of AI in healthcare. It first compares the different approaches to AI ethics worldwide and then focuses on the practical implications of the European ethical and legal guidelines for AI applications in healthcare. The second part of the thesis explores how XAI techniques can help meet three key requirements identified in the initial analysis: transparency, auditability, and human oversight. The technical transparency requirement is tackled by enabling explanatory techniques to deal with common healthcare data characteristics and tailor them to the medical field. In this regard, this thesis presents two novel XAI techniques that incrementally reach this goal by first focusing on multi-label predictive algorithms and then tackling sequential data and incorporating domainspecific knowledge in the explanation process. This thesis then analyzes the ability to leverage the developed XAI technique to audit a fictional commercial black-box clinical decision support system (DSS). Finally, the thesis studies AI explanation’s ability to effectively enable human oversight by studying the impact of explanations on the decision-making process of healthcare professionals

    1995 Federal Research and Development Program in Materials Science and Technology

    Full text link

    Security in mobile agent systems: an approach to protect mobile agents from malicious host attacks

    Get PDF
    Mobile agents are autonomous programs that roam the Internet from machine to machine under their own control on behalf of their users to perform specific pre-defined tasks. In addition to that, a mobile agent can suspend its execution at any point; transfer itself to another machine then resume execution at the new machine without any loss of state. Such a mobile model can perform many possible types of operations, and might carry critical data that has to be protected from possible attacks. The issue of agent security and specially agent protection from host attacks has been a hot topic and no fully comprehensive solution has been found so far. In this thesis, we examine the possible security attacks that hosts and agents suffer from. These attacks can take one of four possible forms: Attacks from host to host, from agents to hosts, from agents to agents (peer to peer) and finally from hosts to agents. Our main concern in this thesis is these attacks from a malicious host on an agent. These attacks can take many forms including rerouting, spying out code, spying out data, spying out control flow, manipulation of code, manipulation of data, manipulation of control flow, incorrect execution of code, masquerading and denial of execution. In an attempt to solve the problem of malicious host attacks on agents, many partial solutions were proposed. These solutions ranged across simple legal protection, hardware solutions, partitioning, replication and voting, components, self-authentication, and migration history. Other solutions also included using audit logs, read-only state, append only logs, encrypted algorithms, digital signatures, partial result authentication codes, and code mess-up, limited life time of code and data as well as time limited black box security. In this thesis, we present a three-tier solution. This solution is a combination of code mess up, encryption and time out. Choosing code mess-up as part of the solution was due to the several strengths of this method that is based on obfuscating the features of the code so that any attacker will find it very difficult to understand the original code. A new algorithm iii was developed in this thesis to implement code mess-up that uses the concept of variable disguising by altering the values of strings and numerical values. Several encryption algorithms were studied to choose the best algorithm to use in the development of the proposed solution. The algorithms studied included DES, LUCIFER, MADRYGA, NEWDES, FEAL, REDOC, LOKI, KHUFU & KHAFRE, IDEA and finally MMB. The algorithm used was the DES algorithm due to several important factors including its key length. Not any language can be used to implement mobile agents. Candidate languages should possess the portability characteristic and should be safe and secure enough to guarantee a protection for the mobile agent. In addition to that the language should be efficient in order to minimize the implementation overhead and the overhead of providing safety and security. Languages used to implement mobile agents include Java, Limbo, Telescript, and Safe TCL. The Java language was chosen as the programming language for this thesis due to its high security, platform independence, and multithreading. This is in addition to several powerful features that characterize the Java language as will be mentioned later on. Implementing a mobile agent requires the assistance of a mobile agent system that helps in launching the agent from one host to another. There are many existing agent launching systems like Telescript, Aglets, Tacoma, Agent TCL and Concordia. Concordia was chosen to be the implementation tool used to launch our mobile agent. It is a software framework for developing, running and administering mobile agents, and it proved to be very efficient, and effective. The results of our proposed solutions showed the strength of the proposed model in terms of fully protecting the mobile agent from possible malicious host attacks. The model could have several points of enhancements. These enhancements include changing the code mess-up algorithm to a more powerful one, using a different encryption technique, and implementing an agent re-charge mechanism to recharge the agent after it is timeout

    DEVELOPMENT OF A FIELD-BASED MOBILE PLATFORM FOR PLANT PHENOTYPING

    Get PDF
    Design, implementation and performance verification of an affordable field-based high-throughput plant phenotyping platform for monitoring Canola plants, including both data acquisition/visualization software and measurement system, was the main objective of this research. The primary motivation for this research is the fact that breeders need a well-organized approach and efficient tool to monitor and analyze a number of plant traits to achieve a higher yield. At the moment, manual measurement is a conventional approach to gather the required information for plant analysis. Nevertheless, manual measurement has many limitations especially to study a large-scale field. To address this bottleneck, a high-throughput plant phenotyping platform (HTPP) was developed which consists of a data acquisition system, a data storage unit, and a data visualization and analysis software. Such an HTPP will be an essential asset for breeders to conveniently gather a comprehensive database which contains various information such as a plant height, temperature, Normalized Difference Vegetation Index (NDVI), etc. To develop and implement such an HTPP, first, the overall system block diagram and required algorithms were drawn. Then to find the optimum set of equipment according to the requirement of this application, the performance of different sensors and devices were examined using literature search and experimental examinations in the laboratory setting. Then a mechanical boom was attached to the rear of a farm vehicle (a Swather) to carry different sensors, cameras and other measurement equipment (mechanical development of the boom structure was carried out by other members of the research team). A control box containing power supplies, safety fuses, and a data logger unit was attached to the farm vehicle, and a program was developed for data logger to read sensors signals as well as GPS data for data geo-referencing and future retrieval purposes. The efficiency of different system architecture including different data transmission networks was examined by conducting several field tests to minimize existing errors such as delays in synchronizing different steps. Three programs were developed in MATLAB GUI for image acquisition via webcam and DSLR cameras as well as a central program for data processing and interactive data visualization. The indoor tests were performed at the Robotics laboratory, University of Saskatchewan and outdoor experiments were performed on a Canola nursery at Cargill Canada, Aberdeen, SK, throughout spring-summer 2016 and 2017. Finally, the performance and effectiveness of the developed field-based phenotyping platform was validated by various measures such as conducting some manual measurements and comparing the results with the values given by the platform. According to the achieved results, both hardware and software components of the proposed system meet the requirements of a field-based plant phenotyping platform as an essential asset for breeders for comprehensive study of Canola plants or any other cultivars as a result of some minor design modifications. The main contributions of this study to plant phenotyping research are autonomous image acquisition capability, enhancement of the data acquisition cycle to minimize data geo-referencing error, development of a modular program for data visualization in MATLAB, and faster data collection in a high-throughput fashion (almost 125 times faster)

    Human Machine Interfaces for Teleoperators and Virtual Environments Conference

    Get PDF
    In a teleoperator system the human operator senses, moves within, and operates upon a remote or hazardous environment by means of a slave mechanism (a mechanism often referred to as a teleoperator). In a virtual environment system the interactive human machine interface is retained but the slave mechanism and its environment are replaced by a computer simulation. Video is replaced by computer graphics. The auditory and force sensations imparted to the human operator are similarly computer generated. In contrast to a teleoperator system, where the purpose is to extend the operator's sensorimotor system in a manner that facilitates exploration and manipulation of the physical environment, in a virtual environment system, the purpose is to train, inform, alter, or study the human operator to modify the state of the computer and the information environment. A major application in which the human operator is the target is that of flight simulation. Although flight simulators have been around for more than a decade, they had little impact outside aviation presumably because the application was so specialized and so expensive
    corecore