38 research outputs found

    A collaborative ide for graphics programming

    Get PDF
    We present a collaborative coding environment that helps the teaching of introductory computer graphics courses, with the goal of to do teaching graphics fundamentals more effectively and lowering the excessive difficult of initiate into 3D graphics programming. Traditionally, the OpenGL Library is used for teaching computer graphics courses, since there are bindings for the most popular languages, including Python, Ruby, Java and the web (WebGL). In particular, our proposed framework provides a web IDE for collaborative coding, between classmates or workgroups, and the professor can help them or interact on it. The second component is the use of the Emscripten library, which allows the program with OpenGL on the web in the same way as it is done in a local mode. Compared with WebGL, our proposal has better benefits since the code could be used in any computer with OpenGL support, which has greatly benefited our students. It also was proposed to diminish the complexity of creating websites with 3D graphics support and better online games, which has been motivating students to learn 3D computer graphics, build educational graphical applications and articles, host them online. Compared to other online coding platforms, oriented to mainstream graphics educational materials and graphics in general, the collaborative IDE for programming computer graphics that we have developed offers the possibility of students could learn OpenGL in a fast way for both inside and outside our classrooms with the C++ language.Revisión por pares de doble ciegoCampus Lima Centr

    On the performance of WebAssembly

    Get PDF
    Dissertação de mestrado integrado em Informatics EngineeringThe worldwide Web has dramatically evolved in recent years. Web pages are dynamic, expressed by pro grams written in common programming languages given rise to sophisticated Web applications. Thus, Web browsers are almost operating systems, having to interpret/compile such programs and execute them. Although JavaScript is widely used to express dynamic Web pages, it has several shortcomings and performance inefficiencies. To overcome such limitations, major IT powerhouses are developing a new portable and size/load efficient language: WebAssembly. In this dissertation, we conduct the first systematic study on the energy and run-time performance of WebAssembly and JavaScript on the Web. We used micro-benchmarks and real applications to have more realistic results. The results show that WebAssembly, while still in its infancy, is starting to already outperform JavaScript, with much more room to grow. A statistical analysis indicates that WebAssembly produces significant performance differences compared to JavaScript. However, these differences differ between micro-benchmarks and real-world benchmarks. Our results also show that WebAssembly improved energy efficiency by 30%, on average, and show how different WebAssembly behaviour is among three popular Web Browsers: Google Chrome, Microsoft Edge, and Mozilla Firefox. Our findings indicate that WebAssembly is faster than JavaScript and even more energy-efficient. Our benchmarking framework is also available to allow further research and replication.A Web evoluiu dramaticamente em todo o mundo nos últimos anos. As páginas Web são dinâmicas, expressas por programas escritos em linguagens de programação comuns, dando origem a aplicativos Web sofisticados. Assim, os navegadores Web são quase como sistemas operacionais, tendo que interpre tar/compilar tais programas e executá-los. Embora o JavaScript seja amplamente usado para expressar páginas Web dinâmicas, ele tem várias deficiências e ineficiências de desempenho. Para superar tais limitações, as principais potências de TI estão a desenvolver uma nova linguagem portátil e eficiente em tamanho/carregamento: WebAssembly. Nesta dissertação, conduzimos o primeiro estudo sistemático sobre o desempenho da energia e do tempo de execução do WebAssembly e JavaScript na Web. Usamos micro-benchmarks e aplicações reais para obter resultados mais realistas. Os resultados mostram que WebAssembly, embora ainda esteja na sua infância, já está começa a superar o JavaScript, com muito mais espaço para crescer. Uma análise estatística indica que WebAssembly produz diferenças de desempenho significativas em relação ao JavaScript. No entanto, essas diferenças diferem entre micro-benchmarks e benchmarks de aplicações reais. Os nossos resultados também mostram que o WebAssembly melhorou a eficiência energética em 30%, em média, e mostram como o comportamento do WebAssembly é diferente entre três navegadores Web populares: Google Chrome, Microsoft Edge e Mozilla Firefox. As nossas descobertas indicam que o WebAssembly é mais rápido que o JavaScript e ainda mais eficiente em termos de energia. A nossa benchmarking framework está disponível para permitir pesquisas adicionais e replicação

    WebAL Comes of Age: A review of the first 21 years of Artificial Life on the Web

    Get PDF
    We present a survey of the first 21 years of web-based artificial life (WebAL) research and applications, broadly construed to include the many different ways in which artificial life and web technologies might intersect. Our survey covers the period from 1994—when the first WebAL work appeared—up to the present day, together with a brief discussion of relevant precursors. We examine recent projects, from 2010–2015, in greater detail in order to highlight the current state of the art. We follow the survey with a discussion of common themes and methodologies that can be observed in recent work and identify a number of likely directions for future work in this exciting area

    iTrading

    Get PDF
    Mestrado em Engenharia de Computadores e TelemáticaA Internet permitiu revolucionar várias áreas económicas graças à facilidade com que é possível distribuir informação e comunicar entre entidades. Existem ainda áreas onde a Internet não só revolucionou os mercados financeiros, como levou à criação de novos mercados, permitindo o acesso desses mercados a novas entidades. Neste contexto, o aparecimento de mercados de negociação de bens e serviços em tempo-real é paradigmático. As bolsas de valores, mercados primários, correctores de apostas, entre outros, viram o seu modelo de funcionamento alterado pela Internet. Estes mercados passaram a negociar em permanência, pelo que, o número de ordens financeiras subiu tão exponencialmente que é actualmente necessário recorrer a complexas plataformas de transações. Hoje em dia existem inúmeras aplicações de negociação em tempo-real para os diversos mercados, umas nativas (domínio de plataformas Microsoft) e outras Web (limitações ao nível de tempo de resposta e das capacidades gráficas). Um aspecto comum a todas elas é o facto de se centrarem na negociação electrónica de ordens emitidas de forma explícita por humanos e ter apenas automatismos para situações de controlo de prejuízo (via triggers). Esta dissertação pretende, por isso, estudar o desenvolvimento de uma nova geração de aplicações de trading que incluam um ambiente de programação embutido na própria aplicação, automação de negociação e backtesting. De forma a colmatar a inexistência deste tipo de aplicações em ambientes não Windows, pretende-se que a mesma seja desenvolvida para ambientes Linux, OSX e Windows.The Internet brought a revolution to several economic areas because it facilitated the distribution of information and communication between entities. In this context, the emergence of online trading markets of goods and services is paradigmatic. Markets started to negotiate continuously and the number of financial orders rose exponentially as it is currently necessary to employ complex transactions platforms. Today, there are numerous applications of online trading, some are native (limited to platforms such as Microsoft OS), others are Web-based (latency issues). This dissertation presents the development of a new generation of trading applications that includes an embedded programming environment in the application itself, trading automation and backtesting. It was developed as a multi platform application for Linux, OSX and Windows platforms

    Using Blazor technology with the DotVVM framework

    Get PDF
    Diplomová práca sa zaoberá využitím technológií Blazor a WebAssembly s frameworkom DotVVM. Práca obsahuje fundamentálne informácie a teoretický rozbor webových tech- nológií a princípov. Tieto technológie sú prerekurzormi technológii WebAssembly, Blazor a DotVVM. Práca sa detailne zameriava na WebAssembly, ktorá umožňuje diverzifiká- ciu na poli klientských webových technológií. V tejto práci sa využíva časť technológie Blazor, konkrétne CLI runtime Mono, ktorý je skompilovaný do WebAssembly formátu a tým umožňuje beh IL kódu v prehliadači. Práca sa zameriava na minimalizáciu po- čtu PostBackov medzi klientom a serverom, ktorá je možná vďaka vyššie spomínanému Mono runtime.DotVVM, WebAssembly, WASM, Blazor, ASP.NET Core, .NET Core, .NET, Mono, JavaScript, JavaScript engine, LLVM, AOT compiler, JIT compiler, WSL

    엣지 클라우드 환경을 위한 연산 오프로딩 시스템

    Get PDF
    학위논문(박사)--서울대학교 대학원 :공과대학 전기·정보공학부,2020. 2. 문수묵.The purpose of my dissertation is to build lightweight edge computing systems which provide seamless offloading services even when users move across multiple edge servers. I focused on two specific application domains: 1) web applications and 2) DNN applications. I propose an edge computing system which offload computations from web-supported devices to edge servers. The proposed system exploits the portability of web apps, i.e., distributed as source code and runnable without installation, when migrating the execution state of web apps. This significantly reduces the complexity of state migration, allowing a web app to migrate within a few seconds. Also, the proposed system supports offloading of webassembly, a standard low-level instruction format for web apps, having achieved up to 8.4x speedup compared to offloading of pure JavaScript codes. I also propose incremental offloading of neural network (IONN), which simultaneously offloads DNN execution while deploying a DNN model, thus reducing the overhead of DNN model deployment. Also, I extended IONN to support large-scale edge server environments by proactively migrating DNN layers to edge servers where mobile users are predicted to visit. Simulation with open-source mobility dataset showed that the proposed system could significantly reduce the overhead of deploying a DNN model.본 논문의 목적은 사용자가 이동하는 동안에도 원활한 연산 오프로딩 서비스를 제공하는 경량 엣지 컴퓨팅 시스템을 구축하는 것입니다. 웹 어플리케이션과 인공신경망 (DNN: Deep Neural Network) 이라는 두 가지 어플리케이션 도메인에서 연구를 진행했습니다. 첫째, 웹 지원 장치에서 엣지 서버로 연산을 오프로드하는 엣지 컴퓨팅 시스템을 제안합니다. 제안된 시스템은 웹 앱의 실행 상태를 마이그레이션 할 때 웹 앱의 높은 이식성(소스 코드로 배포되고 설치하지 않고 실행할 수 있음)을 활용합니다. 이를 통해 상태 마이그레이션의 복잡성이 크게 줄여서 웹 앱이 몇 초 내에 마이그레이션 될 수 있습니다. 또한, 제안된 시스템은 웹 어플리케이션을 위한 표준 저수준 인스트럭션인 웹 어셈블리 오프로드를 지원하여 순수한 JavaScript 코드 오프로드와 비교하여 최대 8.4 배의 속도 향상을 달성했습니다. 둘째, DNN 어플리케이션을 엣지 서버에 배포할 때, DNN 모델을 전송하는 동안 DNN 연산을 오프로드 하여 빠르게 성능향상을 달성할 수 있는 점진적 오프로드 방식을 제안합니다. 또한, 모바일 사용자가 방문 할 것으로 예상되는 엣지 서버로 DNN 레이어를 사전에 마이그레이션하여 콜드 스타트 성능을 향상시키는 방식을 제안 합니다. 오픈 소스 모빌리티 데이터셋을 이용한 시뮬레이션에서, DNN 모델을 배포하면서 발생하는 성능 저하를 제안 하는 방식이 크게 줄일 수 있음을 확인하였습니다.Chapter 1. Introduction 1 1.1 Offloading Web App Computations to Edge Servers 1 1.2 Offloading DNN Computations to Edge Servers 3 Chapter 2. Seamless Offloading of Web App Computations 7 2.1 Motivation: Computation-Intensive Web Apps 7 2.2 Mobile Web Worker System 10 2.2.1 Review of HTML5 Web Worker 10 2.2.2 Mobile Web Worker System 11 2.3 Migrating Web Worker 14 2.3.1 Runtime State of Web Worker 15 2.3.2 Snapshot of Mobile Web Worker 16 2.3.3 End-to-End Migration Process 21 2.4 Evaluation 22 2.4.1 Experimental Environment 22 2.4.2 Migration Performance 24 2.4.3 Application Execution Performance 27 Chapter 3. IONN: Incremental Offloading of Neural Network Computations 30 3.1 Motivation: Overhead of Deploying DNN Model 30 3.2 Background 32 3.2.1 Deep Neural Network 33 3.2.2 Offloading of DNN Computations 33 3.3 IONN For DNN Edge Computing 35 3.4 DNN Partitioning 37 3.4.1 Neural Network (NN) Execution Graph 38 3.4.2 Partitioning Algorithm 40 3.4.3 Handling DNNs with Multiple Paths. 43 3.5 Evaluation 45 3.5.1 Experimental Environment 45 3.5.2 DNN Query Performance 46 3.5.3 Accuracy of Prediction Functions 48 3.5.4 Energy Consumption. 49 Chapter 4. PerDNN: Offloading DNN Computations to Pervasive Edge Servers 51 4.1 Motivation: Cold Start Issue 51 4.2 Proposed Offloading System: PerDNN 52 4.2.1 Edge Server Environment 53 4.2.2 Overall Architecture 54 4.2.3 GPU-aware DNN Partitioning 56 4.2.4 Mobility Prediction 59 4.3 Evaluation 63 4.3.1 Performance Gain of Single Client 64 4.3.2 Large-Scale Simulation 65 Chapter 5. RelatedWorks 73 Chapter 6. Conclusion. 78 Chapter 5. RelatedWorks 73 Chapter 6. Conclusion 78 Bibliography 80Docto

    Location, Proximity, Affinity – The Key Factors in FaaS

    Get PDF
    The Function-as-a-Service paradigm emerged not only as a pricing technique, but also as a programming model promising to simplify developing to the cloud. Interestingly, while placing functions across hosts under the service platform is believed to be flexible, currently the available platforms pay little attention to co-locate connected functions, or data with the respective processing function in order to improve performance. Even though the local function invocation and data access might be an order of magnitude faster than their remote intra-cloud counterparts. In this paper, we therefore propose a Function-asa- Service platform design that reaps the performance benefits of co-location. We build the platform on WebAssembly, a secure and flexible tool for efficient local function invocations, and on a distributed in-memory database, which allows arbitrary data placement. On top we advocate smart placement strategies for function executions and data, decoupled from the functions. Hence we envision good horizontal scaling of functions while keeping the experienced processing latency to that of a single machine case

    The Seamless Peer and Cloud Evolution Framework

    Get PDF
    Evolutionary algorithms are increasingly being applied to problems that are too computationally expensive to run on a single personal computer due to costly fitness function evaluations and/or large numbers of fitness evaluations. Here, we introduce the Seamless Peer And Cloud Evolution (SPACE) framework, which leverages bleeding edge web technologies to allow the computational resources necessary for running large scale evolutionary experiments to be made available to amateur and professional researchers alike, in a scalable and cost-effective manner, directly from their web browsers. The SPACE framework accomplishes this by distributing fitness evaluations across a heterogeneous pool of cloud compute nodes and peer computers. As a proof of concept, this framework has been attached to the RoboGen open-source platform for the co-evolution of robot bodies and brains, but importantly the framework has been built in a modular fashion such that it can be easily coupled with other evolutionary computation systems
    corecore