Fine-Grain Parallelism

Total Page:16

File Type:pdf, Size:1020Kb

Fine-Grain Parallelism Fine-Grain Parallelism An Investigative Study into the merits of Graphical Programming and a Fine - grain Execution Model A Major Qualifying Project Report Submitted to the Faculty of WORCESTER POLYTECHNIC INSTITUTE In partial fulfillment of the requirements for the Degree of Bachelor of Science By Erik Archambault John Hogeboom Joshua Montgomery Christopher Pardy Christopher Smith Brian Tate Advised By: Professor Craig E. Wills Professor Hugh C. Lauer March 2010 MQP-CEW-1002 Abstract Computer hardware is at the beginning of the multi-core revolution. While hardware at the commodity level is capable of running concurrent software, most software does not take advantage of this fact because parallel software development is difficult. This project addressed potential remedies to these difficulties by investigating graphical programming and fine-grain parallelism. A prototype system taking advantage of both of these concepts was implemented and evaluated in terms of real-world applications. i | P a g e Contents Abstract .......................................................................................................................................................... i Executive Summary ....................................................................................................................................... 1 1 Introduction .......................................................................................................................................... 2 2 Background ........................................................................................................................................... 4 2.1 Parallelism ..................................................................................................................................... 4 2.1.1 Examples of Parallel Computations ...................................................................................... 4 2.1.2 History of Parallel Abstractions ............................................................................................. 5 2.1.3 Problems with Parallelism ..................................................................................................... 6 2.1.4 Performance Increases due to Parallelism............................................................................ 8 2.2 Dataflow Language Overview ....................................................................................................... 9 2.2.1 Binary Modular Dataflow Machine ....................................................................................... 9 2.2.2 Pro-graph .............................................................................................................................. 9 2.2.3 Oz ........................................................................................................................................ 10 2.2.4 Simulink ............................................................................................................................... 10 2.2.5 SISAL .................................................................................................................................... 10 2.2.6 VHDL .................................................................................................................................... 10 2.2.7 PureData ............................................................................................................................. 10 2.2.8 OpenWire ............................................................................................................................ 10 2.2.9 Max ..................................................................................................................................... 11 2.2.10 Cantata ................................................................................................................................ 11 2.2.11 jMax..................................................................................................................................... 11 2.2.12 Lucid .................................................................................................................................... 11 2.3 Dataflow Languages in Depth ..................................................................................................... 11 2.3.1 LabVIEW .............................................................................................................................. 11 2.3.2 Mozart ................................................................................................................................. 12 2.3.3 SISAL .................................................................................................................................... 14 2.4 Related Work .............................................................................................................................. 17 2.5 Summary ..................................................................................................................................... 17 3 Design .................................................................................................................................................. 18 3.1 Architectural Vision ..................................................................................................................... 18 3.2 Fine-grain Parallelism .................................................................................................................. 19 ii | P a g e 3.3 Representation of Fine-grained Parallelism ................................................................................ 20 3.4 Summary ..................................................................................................................................... 24 4 Graphical Front-End ............................................................................................................................ 25 4.1 Introduction ................................................................................................................................ 25 4.1.1 Graphical Programming’s Appeal ....................................................................................... 25 4.1.2 Dia ....................................................................................................................................... 25 4.2 Design .......................................................................................................................................... 25 4.2.1 Shape Design ....................................................................................................................... 25 4.2.2 Loops ................................................................................................................................... 26 4.2.3 Designing Functions ............................................................................................................ 26 4.3 Implementation .......................................................................................................................... 27 4.3.1 Initial Implementation ........................................................................................................ 27 4.3.2 Revisions ............................................................................................................................. 29 4.3.3 Implementing Loops ........................................................................................................... 30 4.3.4 Implementing Constants ..................................................................................................... 31 4.4 Known Design and Implementation Concerns............................................................................ 31 4.5 Evaluation ................................................................................................................................... 32 4.5.1 Installation .......................................................................................................................... 32 4.5.2 Using the Interface .............................................................................................................. 32 4.6 Summary ..................................................................................................................................... 36 5 Runtime Implementation .................................................................................................................... 37 5.1.1 Threading ............................................................................................................................ 37 5.1.2 Memory ............................................................................................................................... 38 5.1.3 Summary of Solution ........................................................................................................... 40 5.1.4 Code Example ...................................................................................................................... 41 5.2 Summary ..................................................................................................................................... 42 6 Code Generation ................................................................................................................................. 43 6.1 Parsing Phase .............................................................................................................................. 43 6.1.1 IF1 Background...................................................................................................................
Recommended publications
  • Habari Client for Activemq Version 4.1
    Getting started with Habari Client for ActiveMQ Version 4.1 Trademarks Habari is a registered trademark of Michael Justin and is protected by the laws of Germany and other countries. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Embarcadero, the Embarcadero Technologies logos and all other Embarcadero Technologies product or service names are trademarks, service marks, and/or registered trademarks of Embarcadero Technologies, Inc. and are pro­ tected by the laws of the United States and other countries. Microsoft, Windows, Windows NT, and/or other Microsoft products referenced herein are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other brands and their products are trademarks of their respective holders. 2 Habari Client for ActiveMQ 4.1 Contents What's new in version 4.1?...................................................................6 Fixes and improvements...................................................................................6 Core library.....................................................................................................6 Conditional symbol HABARI_SSL_SUPPORT.....................................................6 Tests and demo projects...................................................................................6 Documentation................................................................................................7 Broker specific changes....................................................................................7
    [Show full text]
  • Malibu Library User's Manual Malibu Library User's Manual
    Malibu Library User's Manual Malibu Library User's Manual The Malibu Library User's Manual was prepared by the technical staff of Innovative Integration on December 10, 2013. For further assistance contact: Innovative Integration 2390-A Ward Ave Simi Valley, California 93065 PH: (805) 578-4260 FAX: (805) 578-4225 email: [email protected] Website: www.innovative-dsp.com This document is copyright 2013 by Innovative Integration. All rights are reserved. $/Distributions/Components/Malibu/Documentation/OO_Manual/Mali bu.pdf Rev 1.4 Table of Contents Chapter 1. Introduction..........................................................................................................................10 Real Time Solutions!.............................................................................................................................................................10 Vocabulary.............................................................................................................................................................................10 What is Malibu? ........................................................................................................................................................10 What is Microsoft MSVC?.........................................................................................................................................11 What is Qt?.................................................................................................................................................................11
    [Show full text]
  • Habari Client for Activemq Version 6.11 2 Habari Client for Activemq 6.11
    Getting started with Habari Client for ActiveMQ Version 6.11 2 Habari Client for ActiveMQ 6.11 LIMITED WARRANTY No warranty of any sort, expressed or implied, is provided in connection with the library, including, but not limited to, implied warranties of merchantability or fitness for a particular purpose. Any cost, loss or damage of any sort incurred owing to the malfunction or misuse of the library or the inaccuracy of the documentation or connected with the library in any other way whatsoever is solely the responsibility of the person who incurred the cost, loss or damage. Furthermore, any illegal use of the library is solely the responsibility of the person committing the illegal act. Trademarks Habari is a trademark or registered trademark of Michael Justin in Germany and/or other countries. Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Embarcadero, the Embarcadero Technologies logos and all other Embarcadero Technologies product or service names are trademarks, service marks, and/or registered trademarks of Embarcadero Technologies, Inc. and are protected by the laws of the United States and other countries. IBM and WebSphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. HornetQ, WildFly, JBoss and the JBoss logo are registered trademarks or trademarks of Red Hat, Inc. Mac OS is a trademark of Apple Inc., registered in the U.S.
    [Show full text]
  • FUSE™ Message Broker
    FUSE™ Message Broker Connectivity Guide Version 5.3 Febuary 2009 Connectivity Guide Version 5.3 Publication date 23 Jul 2009 Copyright © 2001-2009 Progress Software Corporation and/or its subsidiaries or affiliates. Legal Notices Progress Software Corporation and/or its subsidiaries may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this publication. Except as expressly provided in any written license agreement from Progress Software Corporation, the furnishing of this publication does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Any rights not expressly granted herein are reserved. Progress, IONA, IONA Technologies, the IONA logo, Orbix, High Performance Integration, Artix;, FUSE, and Making Software Work Together are trademarks or registered trademarks of Progress Software Corporation and/or its subsidiaries in the US and other countries. Java and J2EE are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. CORBA is a trademark or registered trademark of the Object Management Group, Inc. in the US and other countries. All other trademarks that appear herein are the property of their respective owners. While the information in this publication is believed to be accurate Progress Software Corporation makes no warranty of any kind to this material including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Progress Software Corporation shall not be liable for errors contained herein, or for incidental or consequential damages in connection with the furnishing, performance or use of this material. All products or services mentioned in this manual are covered by the trademarks, service marks, or product names as designated by the companies who market those products.
    [Show full text]
  • Table 1. Revision Table of Existing Applications and Libraries
    Table 1. Revision table of existing applications and libraries Quality Attributes Name Description Pros Cons EXT MOD POR USA Prograph1 was developed to create flow diagrams connecting Boxes connected by lines which represent Prograph boxes with lines. It was an old project, but it was one of the first It doesn’t exist anymore. - - - - a relationship between classes. visual programming languages. Simulink2 permits to design and simulate a mathematical system The interaction and the GUI are a really It is included only in Matlab written in Matlab. It uses the drag-and-drop to move the blocks Simulink good example to develop a simple and application so it is not - - from the Library Browser to the canvas. It is possible to decide intuitive interface. OpenSource. which block has to be executed. It is included only in Autodesk Softimage3 is an application which has a graphical editor to The interaction is impressive and the GUI Autodesk application so it is - - Softimage implement applications over Autodesk framework. uses really good and interesting techniques. not OpenSource. Pure Data4 is a visual programming environment to implement It is difficult to read and to OpenSource written in C++ PureData audio, video and image processing. In Intml project it is produced understand the code. - - Multiplatform an XML with the description of the diagram. The GUI is very simple. OpenSource OpenWire5 is a library to develop applications “without writing It was conceived as a general visual It is a library made to work OpenWire one line of code”. The principal objective is to generate code from programming language.
    [Show full text]
  • Wpviewpdf V4
    WPViewPDF V3 WPViewPDF Version 4 Copyright (C) 2004-2016 WPCubed GmbH I WPViewPDF V4 Contents Foreword 0 Topic 1 Introduction 1 1 WPView..P...D..F.. .S..t.a..n..d..a..r.d.. ........................................................................................................... 4 2 WPView..P...D..F.. .P..L..U...S.. ................................................................................................................ 4 Topic 2 Installation 5 1 Delphi ................................................................................................................................... 5 2 C++ Bu.i.l.d..e.r.. ........................................................................................................................... 6 3 Visual S..t.u..d..i.o.. ......................................................................................................................... 6 4 VB6 ................................................................................................................................... 7 5 Distribu..t.i.o..n.. ........................................................................................................................... 8 Topic 3 Create a PDF Editor 9 1 Delphi E..x..a..m...p..l.e. ...................................................................................................................... 9 Add the ba..s..i.c.. .c.o..n..t.r..o..l.s. ...................................................................................................................................... 9 Initialize.
    [Show full text]
  • Red Hat AMQ 7.6 Using the AMQ Openwire JMS Client
    Red Hat AMQ 7.6 Using the AMQ OpenWire JMS Client For Use with AMQ Clients 2.7 Last Updated: 2020-06-16 Red Hat AMQ 7.6 Using the AMQ OpenWire JMS Client For Use with AMQ Clients 2.7 Legal Notice Copyright © 2020 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • Habari Client for Activemq Version 5.2 2 Habari Client for Activemq 5.2
    Getting started with Habari Client for ActiveMQ Version 5.2 2 Habari Client for ActiveMQ 5.2 LIMITED WARRANTY No warranty of any sort, expressed or implied, is provided in connection with the library, including, but not limited to, implied warranties of merchantability or fitness for a particular purpose. Any cost, loss or damage of any sort incurred owing to the malfunction or misuse of the library or the inaccuracy of the documentation or connected with the library in any other way whatsoever is solely the responsibility of the person who incurred the cost, loss or damage. Furthermore, any illegal use of the library is solely the responsibility of the person committing the illegal act. Trademarks Habari is a trademark or registered trademark of Michael Justin in Germany and/or other countries. Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Embarcadero, the Embarcadero Technologies logos and all other Embarcadero Technologies product or service names are trademarks, service marks, and/or registered trademarks of Embarcadero Technologies, Inc. and are protected by the laws of the United States and other countries. IBM and WebSphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. HornetQ, WildFly, JBoss and the JBoss logo are registered trademarks or trademarks of Red Hat, Inc. Mac OS is a trademark of Apple Inc., registered in the U.S.
    [Show full text]
  • Protótipo De Sistema De Troca De Mensagens Em Delphi Baseado Em
    PROTÓTIPO DE SISTEMA DE TROCA DE MENSAGENS EM DELPHI BASEADO EM APACHE ACTIVEMQ Bruna Luisa Gessner, Mauro Marcelo Mattos – Orientador Curso de Bacharel em Ciência da Computação Departamento de Sistemas e Computação Universidade Regional de Blumenau (FURB) – Blumenau, SC – Brasil [email protected], [email protected] Resumo: Sistemas de mensagens são tecnologias que permeiam a sociedade atualmente pois permitem a troca de mensagens em alta velocidade e de forma assíncrona entre sistemas diferentes. Há servidores e clientes desenvolvidos em várias linguagens de programação, e, em Delphi há duas soluções disponíveis no mercado: uma proprietária e uma disponibilizada em código aberto. Este trabalho descreve um protótipo de aplicação que permite a troca de mensagens entre os usuários conectados utilizando esta biblioteca de código aberto. O desenvolvimento é baseado na biblioteca Stomp disponibilizada como software open source e no servidor Apache ActiveMQ. São apresentados a fundamentação teórica, a especificação e as principais características do protótipo. Como conclusões é possível afirmar que o projeto permite a troca de mensagens e o envio de imagens em chat privado e de grupo. Para os usuários em chat privado é permitido ainda a consulta do histórico de conversas trocadas com cada usuário. Palavras-chave: Apache ActiveMQ. Mensageria. Delphi XE.STOMP.MOM. 1 INTRODUÇÃO Atualmente, um dos aspectos mais notáveis observados na sociedade da informação é a convergência tecnológica dos meios de comunicação, através de um longo processo de adaptação de seus recursos comunicativos às mudanças evolutivas (TEIXEIRA, 2012). A palavra comunicação tem origem no Latim Communicatio que significa ação de tornar algo comum a muitos (POYARES, 1970).
    [Show full text]
  • Tableau OSS List 2020.1 Final.Xlsx
    Tableau Software, Inc. Open Source Software Disclosure (2020.1) Tableau Software products contain the following open source software packages. For more information please contact [email protected]. Name License Type URL 7-zip (See license about LGPL v2.1+ with LGPL v2.1+ with unRAR https://www.7-zip.org/ unRAR License restriction and BSD-3); License restriction and BSD-3 960 Grid System [Bundled with Ruby Gem - MIT https://github.com/nathansmith/960-grid- compass] (GPL or MIT) system/ Apache Axis 1.4 (Apache 2.0) Apache 2.0 http://ws.apache.org/axis Apache Commons Discovery 0.2 (Apache Apache 1.1 http://commons.apache.org/proper/commo 1.1) ns-discovery/ Apache Commons Logging 1.0.4 (Apache Apache 2.0 http://commons.apache.org/proper/commo 2.0) ns-logging/ Apache Tomcat (Apache 2.0) Apache 2.0 http://tomcat.apache.org/ Apache ZooKeeper 3.4.11 (Apache 2.0, See Apache 2.0 https://zookeeper.apache.org/releases.html notes about components) ax_code_coverage [Bundled with gRPC] LGPL v2.1+ https://www.gnu.org/software/automake/m (LGPL v2.1+) anual/html_node/GNU-Build-System.html Bison Parsers [Bundled with various GPL v3.0+ with Bison https://www.gnu.org/software/bison/ components] (GPL v3.0+ with Bison Exception Exception) Boost 1.66 (Boost Software License) Boost Software License https://www.boost.org/users/history/versio n_1_66_0.html Bower Component - Font Awesome 4.4.0 Font: SIL OFL 1.1, CSS: MIT http://fontawesome.io [Bundled with Node Module - dom-to- License image 2.6.0] (Font: SIL OFL 1.1, CSS: MIT License) Camellia [Bundled with OpenSSL]
    [Show full text]
  • Intelligence Virtual Analyst Capability (Ivac) - Framework and Components High-Level Software Architecture Description (SAD)
    Intelligence Virtual Analyst Capability (iVAC) - Framework and Components High-level Software Architecture Description (SAD) Version 0.4 Prepared by : Luckson Vilus Fujitsu Consulting (Canada) Inc. 2000, Lebourgneuf Blvd., Office 300 Québec (Québec) G2K 0B8 PWGSC’s Contract Number: W7701-135551/001/QCL Contract Scientific Authority: Alexandre Bergeron-Guyard (418) 844-4000 x 4107 DRDC – Valcartier Research Centre The scientific or technical validity of this Contract Report is entirely the responsibility of the Contractor and the contents do not necessarily have the approval or endorsement of Defence R&D Canada. Contract Report DRDC-RDDC-2014-C217 July 2013 Change History Version Description Author Date 0.1 Initial version of document Luckson Vilus May 9, 2013 0.2 Description of main blocks of the SAD Luckson Vilus May 20, 2013 0.3 Modifications following internal review Luckson Vilus June 6, 2013 0.4 Internal review and modifications Guy Michaud June 7, 2013 0.5 Modifications related to Sprint 3 delivery Luckson Vilus January 20, 2014 0.6 Modifications related to Sprint 4 delivery Luckson Vilus March 31, 2014 Issuing Organization © Sa majesté la reine, représentée par le ministre de la Défense nationale, 2013 © Her Majesty the Queen as represented by the Minister of National Defence, 2013 i Table of Contents 1 Introduction ................................................................................................................................................ 5 1.1 Identification .................................................................................................................................
    [Show full text]
  • Malibu Library User's Manual Malibu Library User's Manual
    Malibu Library User's Manual Malibu Library User's Manual The Malibu Library User's Manual was prepared by the technical staff of Innovative Integration on June 28, 2011. For further assistance contact: Innovative Integration 2390-A Ward Ave Simi Valley, California 93065 PH: (805) 578-4260 FAX: (805) 578-4225 email: [email protected] Website: www.innovative-dsp.com This document is copyright 2011 by Innovative Integration. All rights are reserved. $/Distributions/Components/Malibu/Documentation/OO_Manual/Mali bu.pdf Rev 1.4 Table of Contents Chapter 1. Introduction..........................................................................................................................10 Real Time Solutions!.............................................................................................................................................................10 Vocabulary.............................................................................................................................................................................10 What is Malibu? ........................................................................................................................................................10 What is wxWidgets?...................................................................................................................................................10 What is C++ Builder?.................................................................................................................................................11
    [Show full text]