A Python-Based Framework for Distributed Programming and Rapid Prototyping of Distributed Programming Models

Total Page:16

File Type:pdf, Size:1020Kb

A Python-Based Framework for Distributed Programming and Rapid Prototyping of Distributed Programming Models A Python-based Framework for Distributed Programming and Rapid Prototyping of Distributed Programming Models by ALEXEY S. FEDOSOV B.S. (University of San Francisco) 2001 THESIS Submitted in partial satisfaction of the requirements for the degree of MASTER OF SCIENCE in the DEPARTMENT OF COMPUTER SCIENCE of the UNIVERSITY OF SAN FRANCISCO Approved: Gregory D. Benson, Professor (Chair) Peter S. Pacheco, Professor Christopher H. Brooks, Associate Professor Jennifer E. Turpin, Dean of College of Arts and Sciences 2009 A Python-based Framework for Distributed Programming and Rapid Prototyping of Distributed Programming Models Copyright 2009 by Alexey S. Fedosov ii Abstract River is a Python-based framework for rapid prototyping of reliable parallel and distributed run- time systems. The current quest for new parallel programming models is hampered, in part, by the time and complexity required to develop dynamic run-time support and network communication. The simplicity of the River core combined with Python’s dynamic typing and concise notation makes it possible to go from a design idea to a working implementation in a matter of days or even hours. With the ability to test and throw away several implementations River allows researchers to explore a large design space. In addition, the River core and new extensions can be used directly to develop parallel and distributed applications in Python. This thesis describes the River system and its core interface for process creation, naming, discovery, and message passing. We also discuss various River extensions, such as Remote Access and Invocation (RAI) extension, the Trickle task-farming programming model, and a River MPI implementation. iii Soli Deo Gloria iv Contents List of Figures viii List of Tables x 1 Introduction 1 2 Background 4 2.1 Motivation...................................... ...... 4 2.2 Parallel and Distributed Languages . .............. 6 2.3 Communication Libraries and Mechanisms . ............. 9 2.4 ThePythonLanguage............................... ....... 11 2.5 Distributed Programming in Python . ............ 13 3 Programming with River 15 3.1 VirtualResources ................................ ........ 16 3.2 VirtualMachines ................................. ....... 18 3.3 VRExecution..................................... ..... 19 3.4 Discovery, Allocation, and Deployment . .............. 20 3.5 Super Flexible Messaging . .......... 22 3.6 ACompleteRiverProgram. ........ 28 3.7 SelectiveDiscovery ..... ...... ..... ...... ...... .. ......... 29 3.8 Examples ........................................ 30 3.8.1 MonteCarloPi .................................. 30 3.8.2 Distributed Word Frequency Count . ......... 32 3.8.3 Parallel Dot Product and Matrix Multiplication . ............... 33 3.9 Extensions...................................... ...... 35 4 Design and Implementation 38 4.1 Super Flexible Messaging . .......... 38 4.1.1 Encoding ...................................... 38 4.1.2 Decoding ...................................... 39 4.1.3 QueueMatching ................................. 40 4.2 RiverVM ......................................... 41 4.2.1 SendingData ................................... 42 4.2.2 ReceivingData ................................. 42 4.3 Connection Model and Caching . ......... 44 v 4.3.1 NameResolution ................................ 47 4.4 Discovery, Allocation, and Deployment . .............. 47 4.5 FaultTolerance .................................. ....... 50 4.6 ExperimentalResults . ......... 51 4.6.1 SFM .......................................... 51 4.6.2 RiverCore ..................................... 53 4.6.2.1 TTCP .................................... 53 4.6.2.2 Conjugate Gradient Solver . 55 5 Remote Access and Invocation 57 5.1 ProgrammingModel ................................ ...... 57 5.1.1 Passing Remote Object References . ......... 61 5.2 LocalDirectoryExport . ......... 62 5.3 Design and Implementation . .......... 62 5.4 Discussion...................................... ...... 65 5.5 ComparisonwithPYRO .............................. ...... 67 6 The Trickle Programming Model 72 6.1 ProgrammingModel ................................ ...... 72 6.1.1 Connecting and Injecting . ........ 74 6.1.2 Synchronous Remote Access . ....... 75 6.1.3 Asynchronous Remote Invocation . ......... 78 6.1.4 DynamicScheduling ...... ..... ...... ...... ..... ..... 79 6.2 WordFrequencyExample . ....... 81 6.3 Implementation .................................. ....... 82 6.3.1 Deployment.................................... 82 6.3.2 DynamicScheduling ...... ..... ...... ...... ..... ..... 83 6.4 Discussion...................................... ...... 84 6.5 ComparisonwithIPython. ......... 85 6.6 ExperimentalResults . ......... 87 6.7 Trickle Quick Reference . ......... 89 7 River MPI Implementation 90 7.1 Design.......................................... 90 7.2 ProgrammingModel ................................ ...... 91 7.3 Implementation .................................. ....... 93 7.3.1 BaseImplementation . ...... 94 7.3.2 DerivedDatatypes .............................. ..... 96 7.3.3 Non-blocking Communication . ........ 97 7.3.4 Optimized Collectives . ....... 98 7.4 Comparison with other Python MPI packages . .............101 7.5 ExperimentalResults . .........102 8 Conclusions and Future Work 105 8.1 Experience with River Development . ............105 8.2 FutureWork...................................... 107 vi Bibliography 109 A Examples Source Code 115 A.1 Monte Carlo Pi Calculator [mcpi.py] . .............115 A.2 Word Frequency Counter [wfreq.py] . ............116 A.3 Conjugate Gradients Solver [rcg.py] . ..............116 A.4 Remote Dictionary Extension [remdict.py] . ................118 A.5 Ping-pong Benchmark [pingpong.py] . ............119 A.6 Word Frequency Counter with Trickle [wfreq-trickle.py] ...................120 A.7 Word Frequency Counter with IPython [wfreq-ipy.py] . ..................121 B River Core Source Code 122 B.1 Virtual Resource Base Class [vr.py] . .............122 B.2 River Virtual Machine [riverVM.py] . .............124 B.3 ControlVR[control.py]. ..........128 B.4 Super Flexible Packet [packet.py] . .............131 B.5 SFMQueue[oneq.py] ............................... 132 B.6 Network Connection [nc.py] . ..........133 B.7 Connection Pool [pool.py] . ..........134 C River Extensions Source Code 136 C.1 RAIClientCode[remote.py] . ..........136 C.2 RAIServerCode[rai.py] . .........138 C.3 Trickle[trickle.py] . ..........140 C.4 rMPIBase[mpi.py]................................ .......143 C.5 rMPI Derived Datatypes [dd.py] . ...........151 C.6 rMPI Non-blocking [nbmpi.py] . ...........153 C.7 rMPI Optimized Collectives [optmpi.py] . ...............157 vii List of Figures 2.1 Using Python Keyword Arguments . .......... 12 3.1 RiverVirtualResource . ......... 16 3.2 River Virtual Machines on a Network . ........... 19 3.3 River Program in Execution . .......... 20 3.4 SimpleSFMExample................................ ...... 25 3.5 SFMMatching ..................................... 26 3.6 FirstRiverProgram............................... ........ 28 3.7 BroaderDiscovery ................................ ....... 29 3.8 Selective Discovery with Functions . .............. 30 3.9 MonteCarloPi .................................... ..... 31 3.10WordCount...................................... ..... 32 3.11 Parallel Dot-Product and Matrix Multiplication . ................... 34 3.12 Word Frequency Example with the Remote Dictionary Extension............... 35 3.13 Remote Dictionary Extension . ............ 37 4.1 SFMEncodingProcess .............................. ....... 39 4.2 RiverVirtualMachines . ......... 41 4.3 SendingData ..................................... ..... 43 4.4 ReceivingData ................................... ...... 44 4.5 Multiplexing Connections . .......... 45 4.6 ConnectionModel ................................. ...... 46 4.7 ControlVR ....................................... 48 4.8 ObtainingBaseClassList. .......... 49 4.9 Determining the Class to Instantiate . .............. 50 4.10 Ping-PongLatency ............................... ........ 52 4.11 Ping-PongBandwidth. ......... 53 4.12 TTCPBandwidth .................................. ...... 54 4.13 Conjugate Gradients Solver Speedup . .............. 56 5.1 Remote Access and Invocation . .......... 58 5.2 SampleRAIServerModule. ........ 58 5.3 SampleRAIClient ................................. ...... 59 5.4 RAI Client for an Unrestricted Server . ............. 60 5.5 Using Local Directory Export . .......... 62 viii 5.6 Locating a Parent for Orphan Remote Objects . .............. 64 5.7 Asynchronous Invocation in RAI . ........... 65 5.8 Partial Function Application in RAI . ............. 66 6.1 TrickleModel.................................... ...... 73 6.2 ASimpleTrickleProgram . ........ 74 6.3 TrickleInjection................................ ......... 75 6.4 SynchronousDataAccess. ......... 76 6.5 Synchronous Function Invocation . ............ 77 6.6 Synchronous Object Invocation . ............ 77 6.7 Asynchronous Invocation . .......... 79 6.8 DynamicWorkScheduling . ........ 80 6.9 Document Word Frequency Counter . .......... 81 6.10 TrickleDeployment. ......... 82 6.11 Implementation of forkwork() ................................ 83 6.12 Implementation of forkgen() ................................. 84 6.13 Word Frequency Performance . .......... 88 6.14 Word Frequency Speedup . ......... 88 6.15 Trickle Quick Reference . .......... 89 7.1 ASimplerMPIProgram .............................
Recommended publications
  • Alternatives to Python: Julia
    Crossing Language Barriers with , SciPy, and thon Steven G. Johnson MIT Applied Mathemacs Where I’m coming from… [ google “Steven Johnson MIT” ] Computaonal soPware you may know… … mainly C/C++ libraries & soPware … Nanophotonics … oPen with Python interfaces … (& Matlab & Scheme & …) jdj.mit.edu/nlopt www.w.org jdj.mit.edu/meep erf(z) (and erfc, erfi, …) in SciPy 0.12+ & other EM simulators… jdj.mit.edu/book Confession: I’ve used Python’s internal C API more than I’ve coded in Python… A new programming language? Viral Shah Jeff Bezanson Alan Edelman julialang.org Stefan Karpinski [begun 2009, “0.1” in 2013, ~20k commits] [ 17+ developers with 100+ commits ] [ usual fate of all First reacBon: You’re doomed. new languages ] … subsequently: … probably doomed … sll might be doomed but, in the meanBme, I’m having fun with it… … and it solves a real problem with technical compuBng in high-level languages. The “Two-Language” Problem Want a high-level language that you can work with interacBvely = easy development, prototyping, exploraon ⇒ dynamically typed language Plenty to choose from: Python, Matlab / Octave, R, Scilab, … (& some of us even like Scheme / Guile) Historically, can’t write performance-criBcal code (“inner loops”) in these languages… have to switch to C/Fortran/… (stac). [ e.g. SciPy git master is ~70% C/C++/Fortran] Workable, but Python → Python+C = a huge jump in complexity. Just vectorize your code? = rely on mature external libraries, operang on large blocks of data, for performance-criBcal code Good advice! But… • Someone has to write those libraries. • Eventually that person may be you.
    [Show full text]
  • Data Visualization in Python
    Data visualization in python Day 2 A variety of packages and philosophies • (today) matplotlib: http://matplotlib.org/ – Gallery: http://matplotlib.org/gallery.html – Frequently used commands: http://matplotlib.org/api/pyplot_summary.html • Seaborn: http://stanford.edu/~mwaskom/software/seaborn/ • ggplot: – R version: http://docs.ggplot2.org/current/ – Python port: http://ggplot.yhathq.com/ • Bokeh (live plots in your browser) – http://bokeh.pydata.org/en/latest/ Biocomputing Bootcamp 2017 Matplotlib • Gallery: http://matplotlib.org/gallery.html • Top commands: http://matplotlib.org/api/pyplot_summary.html • Provides "pylab" API, a mimic of matlab • Many different graph types and options, some obscure Biocomputing Bootcamp 2017 Matplotlib • Resulting plots represented by python objects, from entire figure down to individual points/lines. • Large API allows any aspect to be tweaked • Lengthy coding sometimes required to make a plot "just so" Biocomputing Bootcamp 2017 Seaborn • https://stanford.edu/~mwaskom/software/seaborn/ • Implements more complex plot types – Joint points, clustergrams, fitted linear models • Uses matplotlib "under the hood" Biocomputing Bootcamp 2017 Others • ggplot: – (Original) R version: http://docs.ggplot2.org/current/ – A recent python port: http://ggplot.yhathq.com/ – Elegant syntax for compactly specifying plots – but, they can be hard to tweak – We'll discuss this on the R side tomorrow, both the basics of both work similarly. • Bokeh – Live, clickable plots in your browser! – http://bokeh.pydata.org/en/latest/
    [Show full text]
  • Ipython: a System for Interactive Scientific
    P YTHON: B ATTERIES I NCLUDED IPython: A System for Interactive Scientific Computing Python offers basic facilities for interactive work and a comprehensive library on top of which more sophisticated systems can be built. The IPython project provides an enhanced interactive environment that includes, among other features, support for data visualization and facilities for distributed and parallel computation. he backbone of scientific computing is All these systems offer an interactive command mostly a collection of high-perfor- line in which code can be run immediately, without mance code written in Fortran, C, and having to go through the traditional edit/com- C++ that typically runs in batch mode pile/execute cycle. This flexible style matches well onT large systems, clusters, and supercomputers. the spirit of computing in a scientific context, in However, over the past decade, high-level environ- which determining what computations must be ments that integrate easy-to-use interpreted lan- performed next often requires significant work. An guages, comprehensive numerical libraries, and interactive environment lets scientists look at data, visualization facilities have become extremely popu- test new ideas, combine algorithmic approaches, lar in this field. As hardware becomes faster, the crit- and evaluate their outcome directly. This process ical bottleneck in scientific computing isn’t always the might lead to a final result, or it might clarify how computer’s processing time; the scientist’s time is also they need to build a more static, large-scale pro- a consideration. For this reason, systems that allow duction code. rapid algorithmic exploration, data analysis, and vi- As this article shows, Python (www.python.org) sualization have become a staple of daily scientific is an excellent tool for such a workflow.1 The work.
    [Show full text]
  • Writing Mathematical Expressions with Latex
    APPENDIX A Writing Mathematical Expressions with LaTeX LaTeX is extensively used in Python. In this appendix there are many examples that can be useful to represent LaTeX expressions inside Python implementations. This same information can be found at the link http://matplotlib.org/users/mathtext.html. With matplotlib You can enter the LaTeX expression directly as an argument of various functions that can accept it. For example, the title() function that draws a chart title. import matplotlib.pyplot as plt %matplotlib inline plt.title(r'$\alpha > \beta$') With IPython Notebook in a Markdown Cell You can enter the LaTeX expression between two '$$'. $$c = \sqrt{a^2 + b^2}$$ c= a+22b 537 © Fabio Nelli 2018 F. Nelli, Python Data Analytics, https://doi.org/10.1007/978-1-4842-3913-1 APPENDIX A WRITING MaTHEmaTICaL EXPRESSIONS wITH LaTEX With IPython Notebook in a Python 2 Cell You can enter the LaTeX expression within the Math() function. from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')) Subscripts and Superscripts To make subscripts and superscripts, use the ‘_’ and ‘^’ symbols: r'$\alpha_i > \beta_i$' abii> This could be very useful when you have to write summations: r'$\sum_{i=0}^\infty x_i$' ¥ åxi i=0 Fractions, Binomials, and Stacked Numbers Fractions, binomials, and stacked numbers can be created with the \frac{}{}, \binom{}{}, and \stackrel{}{} commands, respectively: r'$\frac{3}{4} \binom{3}{4} \stackrel{3}{4}$' 3 3 æ3 ö4 ç ÷ 4 è 4ø Fractions can be arbitrarily nested: 1 5 - x 4 538 APPENDIX A WRITING MaTHEmaTICaL EXPRESSIONS wITH LaTEX Note that special care needs to be taken to place parentheses and brackets around fractions.
    [Show full text]
  • Ipython Documentation Release 0.10.2
    IPython Documentation Release 0.10.2 The IPython Development Team April 09, 2011 CONTENTS 1 Introduction 1 1.1 Overview............................................1 1.2 Enhanced interactive Python shell...............................1 1.3 Interactive parallel computing.................................3 2 Installation 5 2.1 Overview............................................5 2.2 Quickstart...........................................5 2.3 Installing IPython itself....................................6 2.4 Basic optional dependencies..................................7 2.5 Dependencies for IPython.kernel (parallel computing)....................8 2.6 Dependencies for IPython.frontend (the IPython GUI).................... 10 3 Using IPython for interactive work 11 3.1 Quick IPython tutorial..................................... 11 3.2 IPython reference........................................ 17 3.3 IPython as a system shell.................................... 42 3.4 IPython extension API..................................... 47 4 Using IPython for parallel computing 53 4.1 Overview and getting started.................................. 53 4.2 Starting the IPython controller and engines.......................... 57 4.3 IPython’s multiengine interface................................ 64 4.4 The IPython task interface................................... 78 4.5 Using MPI with IPython.................................... 80 4.6 Security details of IPython................................... 83 4.7 IPython/Vision Beam Pattern Demo.............................
    [Show full text]
  • Easybuild Documentation Release 20210907.0
    EasyBuild Documentation Release 20210907.0 Ghent University Tue, 07 Sep 2021 08:55:41 Contents 1 What is EasyBuild? 3 2 Concepts and terminology 5 2.1 EasyBuild framework..........................................5 2.2 Easyblocks................................................6 2.3 Toolchains................................................7 2.3.1 system toolchain.......................................7 2.3.2 dummy toolchain (DEPRECATED) ..............................7 2.3.3 Common toolchains.......................................7 2.4 Easyconfig files..............................................7 2.5 Extensions................................................8 3 Typical workflow example: building and installing WRF9 3.1 Searching for available easyconfigs files.................................9 3.2 Getting an overview of planned installations.............................. 10 3.3 Installing a software stack........................................ 11 4 Getting started 13 4.1 Installing EasyBuild........................................... 13 4.1.1 Requirements.......................................... 14 4.1.2 Using pip to Install EasyBuild................................. 14 4.1.3 Installing EasyBuild with EasyBuild.............................. 17 4.1.4 Dependencies.......................................... 19 4.1.5 Sources............................................. 21 4.1.6 In case of installation issues. .................................. 22 4.2 Configuring EasyBuild.......................................... 22 4.2.1 Supported configuration
    [Show full text]
  • Intro to Jupyter Notebook
    Evan Williamson University of Idaho Library 2016­03­02 Introducing Jupyter Notebook for Python and R Three questions: http://goo.gl/forms/uYRvebcJkD ​ Try Jupyter https://try.jupyter.org/ Install Jupyter ● Get Python (suggested: Anaconda, Py3, 64­bit, https://www.continuum.io/downloads ) ​ ​ ● Manually install (if necessary), http://jupyter.readthedocs.org/en/latest/install.html ​ pip3 install jupyter Install R for Jupyter ● Get R, https://cran.cnr.berkeley.edu/ ​ (suggested: RStudio, https://www.rstudio.com/products/RStudio/#Desktop ) ​ ​ ● Open R console and follow: http://irkernel.github.io/installation/ ​ Start a Notebook ● Open terminal/command prompt jupyter notebook ● Notebook will open at http://127.0.0.1:8888 ​ ● Exit by closing the browser, then typing Ctrl+C in the terminal window Create Slides ● Open terminal/command prompt jupyter nbconvert slideshow.ipynb --to slides --post serve ● Note: “­­post serve” locally serves the file so you can give a presentation in your browser. If you only want to convert, leave this option off. The resulting HTML file must be served to render correctly. Slides use Reveal.js, http://lab.hakim.se/reveal­js/ ​ Reference ● Jupyter docs, http://jupyter.readthedocs.org/en/latest/index.html ​ ● IPython docs, http://ipython.readthedocs.org/en/stable/index.html ​ ● List of kernels, https://github.com/ipython/ipython/wiki/IPython­kernels­for­other­languages ● A gallery of interesting IPython Notebooks, https://github.com/ipython/ipython/wiki/A­gallery­of­interesting­IPython­Notebooks ● Markdown basics,
    [Show full text]
  • Numpy for MATLAB Users – Mathesaurus
    NumPy for MATLAB users Help MATLAB/Octave Python Description doc help() Browse help interactively help -i % browse with Info help help or doc doc help Help on using help help plot help(plot) or ?plot Help for a function help splines or doc splines help(pylab) Help for a toolbox/library package demo Demonstration examples Searching available documentation MATLAB/Octave Python Description lookfor plot Search help files help help(); modules [Numeric] List available packages which plot help(plot) Locate functions Using interactively MATLAB/Octave Python Description octave -q ipython -pylab Start session TAB or M-? TAB Auto completion foo(.m) execfile('foo.py') or run foo.py Run code from file history hist -n Command history diary on [..] diary off Save command history exit or quit CTRL-D End session CTRL-Z # windows sys.exit() Operators MATLAB/Octave Python Description help - Help on operator syntax Arithmetic operators MATLAB/Octave Python Description a=1; b=2; a=1; b=1 Assignment; defining a number a + b a + b or add(a,b) Addition a - b a - b or subtract(a,b) Subtraction a * b a * b or multiply(a,b) Multiplication a / b a / b or divide(a,b) Division a .^ b a ** b Power, $a^b$ power(a,b) pow(a,b) rem(a,b) a % b Remainder remainder(a,b) fmod(a,b) a+=1 a+=b or add(a,b,a) In place operation to save array creation overhead factorial(a) Factorial, $n!$ Relational operators MATLAB/Octave Python Description a == b a == b or equal(a,b) Equal a < b a < b or less(a,b) Less than a > b a > b or greater(a,b) Greater than a <= b a <= b or less_equal(a,b)
    [Show full text]
  • Sage Tutorial (Pdf)
    Sage Tutorial Release 9.4 The Sage Development Team Aug 24, 2021 CONTENTS 1 Introduction 3 1.1 Installation................................................4 1.2 Ways to Use Sage.............................................4 1.3 Longterm Goals for Sage.........................................5 2 A Guided Tour 7 2.1 Assignment, Equality, and Arithmetic..................................7 2.2 Getting Help...............................................9 2.3 Functions, Indentation, and Counting.................................. 10 2.4 Basic Algebra and Calculus....................................... 14 2.5 Plotting.................................................. 20 2.6 Some Common Issues with Functions.................................. 23 2.7 Basic Rings................................................ 26 2.8 Linear Algebra.............................................. 28 2.9 Polynomials............................................... 32 2.10 Parents, Conversion and Coercion.................................... 36 2.11 Finite Groups, Abelian Groups...................................... 42 2.12 Number Theory............................................. 43 2.13 Some More Advanced Mathematics................................... 46 3 The Interactive Shell 55 3.1 Your Sage Session............................................ 55 3.2 Logging Input and Output........................................ 57 3.3 Paste Ignores Prompts.......................................... 58 3.4 Timing Commands............................................ 58 3.5 Other IPython
    [Show full text]
  • A Lightweight, Customizable Tuple Space Supporting Context-Aware Applications
    LighTS: A Lightweight, Customizable Tuple Space Supporting Context-Aware Applications Gian Pietro Picco, Davide Balzarotti and Paolo Costa Dip. di Elettronica e Informazione, Politecnico di Milano, Italy {picco, balzarot, costa}@elet.polimi.it ABSTRACT develop context-aware applications. It is interesting to look The tuple space model inspired by Linda has recently been briefly into the lessons learned from these experiences, in rediscovered by distributed middleware. Moreover, some re- that they motivate the contributions we put forth in this pa- searchers also applied it in the challenging scenarios involv- per. The work in [10] describes a simple location-aware ap- ing mobility and more specifically context-aware computing. plication supporting collaborative exploration of geographi- Context information can be stored in the tuple space, and cal areas, e.g., to coordinate the help in a disaster recovery queried like any other data. scenario. Users are equipped with portable computing de- Nevertheless, it turns out that conventional tuple space vices and a localization system (e.g., GPS), are freely mo- implementations fall short of expectations in this new do- bile, and are transiently connected through ad hoc wireless main. On one hand, many of the available systems provide links. The key functionality provided is the ability for a a wealth of features, which make the resulting implementa- user to request the displaying of the current location and/or tion unnecessarily bloated and incompatible with the tight trajectory of any other user, provided wireless connectivity resource constraints typical of this field. Moreover, the tra- is available towards her. The implementation exploits tuple spaces as repositories for context information—i.e., location ditional Linda matching semantics based on value equal- Lime ity are not appropriate for context-aware computing, where data.
    [Show full text]
  • A Persistent Storage Model for Extreme Computing Shuangyang Yang Louisiana State University and Agricultural and Mechanical College
    Louisiana State University LSU Digital Commons LSU Doctoral Dissertations Graduate School 2014 A Persistent Storage Model for Extreme Computing Shuangyang Yang Louisiana State University and Agricultural and Mechanical College Follow this and additional works at: https://digitalcommons.lsu.edu/gradschool_dissertations Part of the Computer Sciences Commons Recommended Citation Yang, Shuangyang, "A Persistent Storage Model for Extreme Computing" (2014). LSU Doctoral Dissertations. 2910. https://digitalcommons.lsu.edu/gradschool_dissertations/2910 This Dissertation is brought to you for free and open access by the Graduate School at LSU Digital Commons. It has been accepted for inclusion in LSU Doctoral Dissertations by an authorized graduate school editor of LSU Digital Commons. For more information, please [email protected]. A PERSISTENT STORAGE MODEL FOR EXTREME COMPUTING A Dissertation Submitted to the Graduate Faculty of the Louisiana State University and Agricultural and Mechanical College in partial fulfillment of the requirements for the degree of Doctor of Philosophy in The Department of Computer Science by Shuangyang Yang B.S., Zhejiang University, 2006 M.S., University of Dayton, 2008 December 2014 Copyright © 2014 Shuangyang Yang All rights reserved ii Dedicated to my wife Miao Yu and our daughter Emily. iii Acknowledgments This dissertation would not be possible without several contributions. It is a great pleasure to thank Dr. Hartmut Kaiser @ Louisiana State University, Dr. Walter B. Ligon III @ Clemson University and Dr. Maciej Brodowicz @ Indiana University for their ongoing help and support. It is a pleasure also to thank Dr. Bijaya B. Karki, Dr. Konstantin Busch, Dr. Supratik Mukhopadhyay at Louisiana State University for being my committee members and Dr.
    [Show full text]
  • Sharing of Semantically Enhanced Information for the Adaptive Execution of Business Processes
    NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS DEPARTMENT OF INFORMATICS AND TELECOMUNICATIONS PROGRAM OF POSTGRADUATE STUDIES DIPLOMA THESIS Sharing of Semantically Enhanced Information for the Adaptive Execution of Business Processes Pigi D. Kouki Supervisor: Aphrodite Tsalgatidou, Assistant Professor NKUA Technical Support: Georgios Athanasopoulos, PhD Candidate NKUA ATHENS MAY 2011 DIPLOMA THESIS Sharing of Semantically Enhanced Information for the Adaptive Execution of Business Processes Pigi D. Kouki Registration Number: Μ 984 SUPERVISOR: Aphrodite Tsalgatidou, Assistant Professor NKUA TECHNICAL SUPPORT: Georgios Athanasopoulos, PhD Candidate NKUA MAY 2011 ABSTRACT Motivated from the Context Aware Computing, and more particularly from the Data-Driven Process Adaptation approach, we propose the Semantic Context Space (SCS) Engine which aims to facilitate the provision of adaptable business processes. The SCS Engine provides a space which stores semantically annotated data and it is open to other processes, systems, and external sources for information exchange. The specified implementation is inspired from the Semantic TupleSpace and uses the JavaSpace Service of the Jini Framework (changed to Apache River lately) as an underlying basis. The SCS Engine supplies an interface where a client can execute the following operations: (i) write: which inserts in the space available information along with its respective meta-information, (ii) read: which retrieves from the space information which meets specific meta-information constrains, and (iii) take: which retrieves and simultaneously deletes from the space information which meets specific meta-information constrains. In terms of this thesis the available types of meta-information are based on ontologies described in RDFS or WSML. The applicability of the SCS Engine implementation in the context of data-driven process adaptation has been ensured by an experimental evaluation of the provided operations.
    [Show full text]