12 research outputs found

    Adaptive Data Parallelism for Internet Clients on Heterogeneous Platforms

    Get PDF
    Il Web moderno ha da molto superato le pagine statiche, limitate alla formattazione HTML e poche immagini. Siamo entrati i un era di Rich Internet Applications come giochi, simulazioni fisiche, rendering di immagini, elaborazione di foto, etc eseguite localmente dai programmi client. Nonostante questo gli attuali linguaggi lato client hanno limitatissime capacità di utilizzare le capacità computazionali della piattaforma, tipicamente eterogenea, sottostante. Presentiamo un DSL (Domain Specific Language) chiamato ASDP (ActionScript Data Parallel) integrato in ActionScript, uno dei linguaggi più popolari per la programmazione lato client e un parente prossimo di JavaScript. ASDP è molto similare ad ActionScript e permette frequentemente di introdurre la programmazione parallela con minime modifiche al codice sorgente. Presentiamo anche un prototipo di un sistema in cui computazioni data parallel possono essere eseguite su CPU o GPU. Il sistema runtime si occuperà di selezionare in modo trasparente la miglior unità computazionale a seconda della computazione, dell'architettura e del carico attuale del sistema. Vengono inoltre valutate le performance del sistema su diversi benchmark, rappresentativi dei seguenti tipi di applicazioni: fisica, elaborazione di immagini, calcolo scientifico e crittografia. Today’s Internet is long past static web pages full of HTML-formatted text sprinkled with an occasional image or animation. We have entered an era of Rich Internet Applications executed locally on Internet clients such as web browsers: games, physics engines, image rendering, photo editing, etc. And yet today’s languages used to program Internet clients have limited ability to tap to the computational capabilities of the underlying, often heterogeneous, platforms. We present how a Domain Specific Language (DSL) can be integrated into ActionScript, one of the most popular scripting languages used to program Internet clients and a close cousin of JavaScript. Our DSL, called ASDP (ActionScript Data Parallel), closely resembles ActionScript and often only minimal changes to existing ActionScript programs are required to enable data parallelism. We also present a prototype of a system, where data parallel workloads can be executed on either CPU or a GPU, with the runtime system transparently selecting the best processing unit, depending on the type of workload as well as the architecture and current load of the execution platform. We evaluate performance of our system on a variety of benchmarks, representing different types of workloads: physics, image processing, scientific computing and cryptography

    Symbolic Crosschecking of Data-Parallel Floating Point Code

    No full text
    In this thesis we present a symbolic execution-based technique for cross-checking programs accelerated using SIMD or OpenCL against an unaccelerated version, as well as a technique for detecting data races in OpenCL programs. Our techniques are implemented in KLEE-CL, a symbolic execution engine based on KLEE that supports symbolic reasoning on the equivalence between expressions involving both integer and floating-point operations. While the current generation of constraint solvers provide good support for integer arithmetic, there is little support available for floating-point arithmetic, due to the complexity inherent in such computations. The key insight behind our approach is that floating-point values are only reliably equal if they are essentially built by the same operations. This allows us to use an algorithm based on symbolic expression matching augmented with canonicalisation rules to determine path equivalence. Under symbolic execution, we have to verify equivalence along every feasible control-flow path. We reduce the branching factor of this process by aggressively merging conditionals, if-converting branches into select operations via an aggressive phi-node folding transformation. To support the Intel Streaming SIMD Extension (SSE) instruction set, we lower SSE instructions to equivalent generic vector operations, which in turn are interpreted in terms of primitive integer and floating-point operations. To support OpenCL programs, we symbolically model the OpenCL environment using an OpenCL runtime library targeted to symbolic execution. We detect data races by keeping track of all memory accesses using a memory log, and reporting a race whenever we detect that two accesses conflict. By representing the memory log symbolically, we are also able to detect races associated with symbolically indexed accesses of memory objects. We used KLEE-CL to find a number of issues in a variety of open source projects that use SSE and OpenCL, including mismatches between implementations, memory errors, race conditions and compiler bugs

    Interactive computer vision through the Web

    Get PDF
    Computer vision is the computational science aiming at reproducing and improving the ability of human vision to understand its environment. In this thesis, we focus on two fields of computer vision, namely image segmentation and visual odometry and we show the positive impact that interactive Web applications provide on each. The first part of this thesis focuses on image annotation and segmentation. We introduce the image annotation problem and challenges it brings for large, crowdsourced datasets. Many interactions have been explored in the literature to help segmentation algorithms. The most common consist in designating contours, bounding boxes around objects, or interior and exterior scribbles. When crowdsourcing, annotation tasks are delegated to a non-expert public, sometimes on cheaper devices such as tablets. In this context, we conducted a user study showing the advantages of the outlining interaction over scribbles and bounding boxes. Another challenge of crowdsourcing is the distribution medium. While evaluating an interaction in a small user study does not require complex setup, distributing an annotation campaign to thousands of potential users might differ. Thus we describe how the Elm programming language helped us build a reliable image annotation Web application. A highlights tour of its functionalities and architecture is provided, as well as a guide on how to deploy it to crowdsourcing services such as Amazon Mechanical Turk. The application is completely opensource and available online. In the second part of this thesis we present our open-source direct visual odometry library. In that endeavor, we provide an evaluation of other open-source RGB-D camera tracking algorithms and show that our approach performs as well as the currently available alternatives. The visual odometry problem relies on geometry tools and optimization techniques traditionally requiring much processing power to perform at realtime framerates. Since we aspire to run those algorithms directly in the browser, we review past and present technologies enabling high performance computations on the Web. In particular, we detail how to target a new standard called WebAssembly from the C++ and Rust programming languages. Our library has been started from scratch in the Rust programming language, which then allowed us to easily port it to WebAssembly. Thanks to this property, we are able to showcase a visual odometry Web application with multiple types of interactions available. A timeline enables one-dimensional navigation along the video sequence. Pairs of image points can be picked on two 2D thumbnails of the image sequence to realign cameras and correct drifts. Colors are also used to identify parts of the 3D point cloud, selectable to reinitialize camera positions. Combining those interactions enables improvements on the tracking and 3D point reconstruction results

    A SIMD programming model for dart, javascript,and other dynamically typed scripting languages

    No full text

    Proceedings of the 21st Conference on Formal Methods in Computer-Aided Design – FMCAD 2021

    Get PDF
    The Conference on Formal Methods in Computer-Aided Design (FMCAD) is an annual conference on the theory and applications of formal methods in hardware and system verification. FMCAD provides a leading forum to researchers in academia and industry for presenting and discussing groundbreaking methods, technologies, theoretical results, and tools for reasoning formally about computing systems. FMCAD covers formal aspects of computer-aided system design including verification, specification, synthesis, and testing

    Challenges for engineering students working with authentic complex problems

    Get PDF
    Engineers are important participants in solving societal, environmental and technical problems. However, due to an increasing complexity in relation to these problems new interdisciplinary competences are needed in engineering. Instead of students working with monodisciplinary problems, a situation where students work with authentic complex problems in interdisciplinary teams together with a company may scaffold development of new competences. The question is: What are the challenges for students structuring the work on authentic interdisciplinary problems? This study explores a three-day event where 7 students from Aalborg University (AAU) from four different faculties and one student from University College North Denmark (UCN), (6th-10th semester), worked in two groups at a large Danish company, solving authentic complex problems. The event was structured as a Hackathon where the students for three days worked with problem identification, problem analysis and finalizing with a pitch competition presenting their findings. During the event the students had workshops to support the work and they had the opportunity to use employees from the company as facilitators. It was an extracurricular activity during the summer holiday season. The methodology used for data collection was qualitative both in terms of observations and participants’ reflection reports. The students were observed during the whole event. Findings from this part of a larger study indicated, that students experience inability to transfer and transform project competences from their previous disciplinary experiences to an interdisciplinary setting

    Exploring the practical use of a collaborative robot for academic purposes

    Get PDF
    This article presents a set of experiences related to the setup and exploration of potential educational uses of a collaborative robot (cobot). The basic principles that have guided the work carried out have been three. First and foremost, study of all the functionalities offered by the robot and exploration of its potential academic uses both in subjects focused on industrial robotics and in subjects of related disciplines (automation, communications, computer vision). Second, achieve the total integration of the cobot at the laboratory, seeking not only independent uses of it but also seeking for applications (laboratory practices) in which the cobot interacts with some of the other devices already existing at the laboratory (other industrial robots and a flexible manufacturing system). Third, reuse of some available components and minimization of the number and associated cost of required new components. The experiences, carried out following a project-based learning methodology under the framework of bachelor and master subjects and thesis, have focused on the integration of mechanical, electronic and programming aspects in new design solutions (end effector, cooperative workspace, artificial vision system integration) and case studies (advanced task programming, cybersecure communication, remote access). These experiences have consolidated the students' acquisition of skills in the transition to professional life by having the close collaboration of the university faculty with the experts of the robotics company.Postprint (published version

    The Increasing Necessity of Skills Diversity in Team Teaching

    Get PDF
    corecore