A Distributed Workflow Platform for High-Performance Simulation Toan Nguyen, Jean-Antoine Desideri

Total Page:16

File Type:pdf, Size:1020Kb

A Distributed Workflow Platform for High-Performance Simulation Toan Nguyen, Jean-Antoine Desideri A Distributed Workflow Platform for High-Performance Simulation Toan Nguyen, Jean-Antoine Desideri To cite this version: Toan Nguyen, Jean-Antoine Desideri. A Distributed Workflow Platform for High-Performance Simu- lation. International Journal On Advances in Intelligent Systems, IARIA, 2012, 4 (3&4), pp.82-101. hal-00700816 HAL Id: hal-00700816 https://hal.inria.fr/hal-00700816 Submitted on 24 May 2012 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. A Distributed Workflow Platform for High-Performance Simulation Toàn Nguyên Jean-Antoine-Désidéri Project OPALE Project OPALE INRIA Grenoble Rhône-Alpes INRIA Sophia-Antipolis Méditerranée Grenoble, France Sophia-Antipolis, France [email protected] , [email protected] [email protected] Abstract —This paper presents an approach to design, implement and deploy a simulation platform based on II. RELATED WORK distributed workflows. It supports the smooth integration of Simulation is nowadays a prerequisite for product design existing software, e.g., Matlab, Scilab, Python, OpenFOAM, and for scientific breakthrough in many application areas Paraview and user-defined programs. Additional features ranging from pharmacy, biology to climate modeling that include the support for application-level fault-tolerance and also require extensive simulation testing. This requires often exception-handling, i.e., resilience, and the orchestrated large-scale experiments, including the management of execution of distributed codes on remote high-performance clusters. petabytes volumes of data and large multi-core supercomputers [10]. Keywords-workflows; fault-tolerance; resilience; simulation; In such application environments, various teams usually distributed systems; high-performance computing collaborate on several projects or part of projects. Computerized tools are often shared and tightly or loosely coupled [23]. Some codes may be remotely located and non- I. INTRODUCTION movable. This is supported by distributed code and data Large-scale simulation applications are becoming management facilities [29]. And unfortunately, this is prone standard in research laboratories and in the industry [1][2]. to a large variety of unexpected errors and breakdowns [30]. Because they involve a large variety of existing software and Most notably, data replication and redundant terabytes of data, moving around calculations and data files computations have been proposed to prevent from random is not a simple avenue. Further, software and data are often hardware and communication failures [42], as well as failure stored in proprietary locations and cannot be moved. prediction [43], sometimes applied to deadline-dependent Distributed computing infrastructures are therefore necessary scheduling [12]. [6][8]. System level fault-tolerance in specific programming This article explores the design, implementation and use environments are proposed, e.g., CIFTS [20], FTI [48]. Also, of a distributed simulation platform. It is based on a middleware usually support mechanisms to handle fault- workflow system and a wide-area distributed network. This tolerance in distributed job execution, usually calling upon infrastructure includes heterogeneous hardware and software data replication and redundant code execution components. Further, the application codes must interact in a [9][15][22][24]. timely, secure and effective manner. Additionally, because Also, erratic application behavior needs to be supported the coupling of remote hardware and software components is [45]. This implies evolution of the simulation process in the prone to run-time errors, sophisticated mechanisms are event of such occurrences. Little has been done in this area necessary to handle unexpected failures at the infrastructure [33][46]. The primary concerns of the designers, engineers and system levels [19]. This is also true for the coupled and users have so far focused on efficiency and performance software that contribute to large simulation applications [35]. [47] [49] [50]. Therefore, application unexpected behavior is Consequently, specific management software is required to usually handled by re-designing and re-programming pieces handle unexpected application and software behavior of code and adjusting parameter values and bounds. This [9][11][12][15]. usually requires the simulations to be stopped and restarted. This paper addresses these issues. Section II is an A dynamic approach is presented in the following overview of related work. Section III is a general description sections. It support the evolution of the application behavior of a sample application, infrastructure, systems and using the introduction of new exception handling rules at application software. Section IV addresses fault-tolerance run-time by the users, based on occurring (and possibly and resiliency issues. Section V gives an overview of the unexpected) events and data values. The running workflows implementation using the YAWL workflow management do not need to be suspended in this approach, as new rules system [4]. Section VI is a conclusion. can be added at run-time without stopping the executing III. TESTCASE APPLICATION workflows. This allows on-the-fly management of unexpected A. Example events. This approach also allows a permanent evolution of This work is performed for the OMD2 project the applications that supports their continuous adaptation to (Optimisation Multi-Discipline Distribuée , i.e., Distributed the occurrence of unforeseen situations [46]. As new Multi-Discipline Optimization) supported by the French situations arise and data values appear, new rules can be National Research Agency ANR. added to the workflows that will permanently take them into An overview of two running testcases is presented here. account in the future. These evolutions are dynamically It deals with the optimization of an auto air-conditioning hooked onto the workflows without the need to stop the system [36]. The goal of this particular testcase is to running applications. The overall application logics is optimize the geometry of an air conditioner pipe in order to therefore maintained unchanged. This guarantees a constant avoid air flow deviations in both pressure and speed adaptation to new situations without the need to redesign the concerning the pipe output (Figure 1). Several optimization existing workflows. Further, because exception-handling methods are used, based on current research by public and codes are themselves defined by new ad-hoc workflows, the industry laboratories. user interface remains unchanged [14]. Figure 1. Flow pressure (left) and speed (right) in an air-conditioner pipe (ParaView screenshots). This example is provided by a car manufacturer and Windows 7 and Windows XP running on a range of local involves several industry partners, e.g., software vendors, workstations and laptops (Figure 11, at the end of this paper). and academic labs, e.g., optimization research teams (Figure 1). B. Application Workflow The testcases are a dual faceted 2D and 3D example. In order to provide a simple and easy-to-use interface to Each facet involves different software for CAD modeling, the computing software, a workflow management system is e.g. CATIA and STAR-CCM+, numeric computations, e.g., used (Figure 2). It supports high-level graphic specification Matlab and Scilab, and flow computation, e.g., OpenFOAM for application design, deployment, execution and and visualization, e.g., ParaView (Figure 12, at the end of monitoring. It also supports interactions among this paper). heterogeneous software components. Indeed, the 2D The testcases are deployed on the YAWL workflow example testcase described in Section III.A involves several management system [4]. The goal is to distribute the codes written in Matlab, OpenFOAM and displayed using testcases on various partners locations where the software are ParaView (Figure 7). The 3D testcase involves CAD files running (Figure 2). In order to support this distributed generated using CATIA and STAR-CCM+, flow computing approach, an open source middleware is used calculations using OpenFOAM, Python scripts and [17]. visualization with ParaView. Extensions allow also the use A first step is implemented using extensively the of the Scilab toolbox. virtualization technologies (Figure 3), i.e., Oracle VM Because proprietary software are used, as well as open- VirtualBox, formerly SUN’s VirtualBox [7]. This allows source and in-house research codes, a secured network of hands-on experiments connecting several virtual guest connected computers is made available to the users, based on computers running heterogeneous software (Figure 10, at the existing middleware (Figure 8). end of this paper). These include Linux Fedora Core 12, This network is deployed on the various partners YAWL thus provides an abstraction layer that helps users locations throughout France. Web servers accessed through design complex applications that may involve a large the SSH protocol are used for the proprietary software number of distributed
Recommended publications
  • IADS Group Uses Multiple MATLAB Licenses
    Can We Migrate Our Analysis Routines to Python? Introduction • Can we migrate our analysis routines to Python? - MATLAB is powerful, but it’s expensive. - Capable open-source alternatives exist and are thriving. • Recent developments in scientific Python libraries have made migration from MATLAB to Python possible and attractive. • The IADS Group uses multiple MATLAB licenses. Dominance of MATLAB • MATLAB is the standard language for engineering analysis. • No need to be a programmer to solve engineering problems. • Used for collaboration and development of analysis routines. • MATLAB is required for study in an engineering curriculum - ECE 309 (CSUN), “Numerical Methods in Electrical Engineering”, is now taught using MATLAB. It was taught using Pascal in the 1980s… Dependence on MATLAB • IADS uses MATLAB to prototype new analysis routines. • IADS uses MATLAB to test and maintain data export and import. We need MATLAB! • IADS uses a set of MATLAB scripts to test Autospectrum and PSD results for Every Release. • IADS is dependent upon MATLAB. Problems with Dependency • Budget constraints mean fewer licenses and toolboxes are available. • MATLAB version changes force retest What happens of data interfaces. if they take MATLAB away • Retest requires an active license. from us? • Test Scripts are unusable without a license. • Having no backup plan in place is risky. Requirements for a Replacement • Should have broad industry acceptance. • Should have scientific libraries that mimic functionality that is commonly used in MATLAB by the flight test community. • Should have similar syntax. • Total MATLAB functionality is not necessary for our purposes, but it would be nice for going forward. • Should be relatively free of periodic licensing hassles.
    [Show full text]
  • A Comparative Evaluation of Matlab, Octave, R, and Julia on Maya 1 Introduction
    A Comparative Evaluation of Matlab, Octave, R, and Julia on Maya Sai K. Popuri and Matthias K. Gobbert* Department of Mathematics and Statistics, University of Maryland, Baltimore County *Corresponding author: [email protected], www.umbc.edu/~gobbert Technical Report HPCF{2017{3, hpcf.umbc.edu > Publications Abstract Matlab is the most popular commercial package for numerical computations in mathematics, statistics, the sciences, engineering, and other fields. Octave is a freely available software used for numerical computing. R is a popular open source freely available software often used for statistical analysis and computing. Julia is a recent open source freely available high-level programming language with a sophisticated com- piler for high-performance numerical and statistical computing. They are all available to download on the Linux, Windows, and Mac OS X operating systems. We investigate whether the three freely available software are viable alternatives to Matlab for uses in research and teaching. We compare the results on part of the equipment of the cluster maya in the UMBC High Performance Computing Facility. The equipment has 72 nodes, each with two Intel E5-2650v2 Ivy Bridge (2.6 GHz, 20 MB cache) proces- sors with 8 cores per CPU, for a total of 16 cores per node. All nodes have 64 GB of main memory and are connected by a quad-data rate InfiniBand interconnect. The tests focused on usability lead us to conclude that Octave is the most compatible with Matlab, since it uses the same syntax and has the native capability of running m-files. R was hampered by somewhat different syntax or function names and some missing functions.
    [Show full text]
  • Julia, My New Friend for Computing and Optimization? Pierre Haessig, Lilian Besson
    Julia, my new friend for computing and optimization? Pierre Haessig, Lilian Besson To cite this version: Pierre Haessig, Lilian Besson. Julia, my new friend for computing and optimization?. Master. France. 2018. cel-01830248 HAL Id: cel-01830248 https://hal.archives-ouvertes.fr/cel-01830248 Submitted on 4 Jul 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. « Julia, my new computing friend? » | 14 June 2018, IETR@Vannes | By: L. Besson & P. Haessig 1 « Julia, my New frieNd for computiNg aNd optimizatioN? » Intro to the Julia programming language, for MATLAB users Date: 14th of June 2018 Who: Lilian Besson & Pierre Haessig (SCEE & AUT team @ IETR / CentraleSupélec campus Rennes) « Julia, my new computing friend? » | 14 June 2018, IETR@Vannes | By: L. Besson & P. Haessig 2 AgeNda for today [30 miN] 1. What is Julia? [5 miN] 2. ComparisoN with MATLAB [5 miN] 3. Two examples of problems solved Julia [5 miN] 4. LoNger ex. oN optimizatioN with JuMP [13miN] 5. LiNks for more iNformatioN ? [2 miN] « Julia, my new computing friend? » | 14 June 2018, IETR@Vannes | By: L. Besson & P. Haessig 3 1. What is Julia ? Open-source and free programming language (MIT license) Developed since 2012 (creators: MIT researchers) Growing popularity worldwide, in research, data science, finance etc… Multi-platform: Windows, Mac OS X, GNU/Linux..
    [Show full text]
  • Delivering a Professional ®
    Delivering a professional ® We stand on the shoulders of giants (2015) Custodians of OpenFOAM® (2016) … www.esi-group.com 1 Copyright © ESICopyright Group, 2017. © ESI All Group, rights reserved.2017. All rights reserved. OpenFOAM – foreword Greetings from, and thanks to the Team • OpenCFD Core Development‣ Karen Kettle and Supporting Teams ‣ Takashi Minabe (Japan) ‣ Andrew Heather ‣ Mohsen Battoei (North America) ‣ Mattijs Janssens ‣ Ravi Ajjampudi (India) ‣ Sergio Ferraris ‣ Bjorn Landmann, Sebastien Vilfayeau (Germany) ‣ Mark Olesen ‣ Matej Forman (Training Coordinator) ‣ Prashant Sonakar ‣ Roger Almenar ‣ Pawan Ghildiyal ‣ Fred Mendonca OpenFOAM Operation www.esi-group.com 2 Copyright © ESI Group, 2017. All rights reserved. OpenCFD – Commitment to OpenFOAM Users Development and Release Schedule • OpenCFD owns the trademark • Releasing OpenFOAM since 2004 • Professional Six-monthly Development and Release cycle, including ‣ New developments ‣ Consolidated bug-fixes ‣ Overhaulled testing procedure for Quality Assurance ‣ Release and Development repositories in GitLab https://develop.openfoam.com ‣ Master branch ‣ Develop branch (includes > Master > Release ‣ Community Repositories > Develop www.esi-group.com 3 Copyright © ESI Group, 2017. All rights reserved. OpenCFD – Commitment to OpenFOAM Users Development and Release Schedule • OpenFOAM.com releases so far • OpenFOAM-v3.0+ on Jan 13th 2016 • OpenFOAM-v1606+ on June 30th 2016 • OpenFOAM-v1612+ on 23rd December 2016 • OpenFOAM-v1706 on 30th June 2017 www.esi-group.com 4 Copyright
    [Show full text]
  • Ordinary Differential Equations (ODE) Using Euler's Technique And
    Mathematical Models and Methods in Modern Science Ordinary Differential Equations (ODE) using Euler’s Technique and SCILAB Programming ZULZAMRI SALLEH Applied Sciences and Advance Technology Universiti Kuala Lumpur Malaysian Institute of Marine Engineering Technology Bandar Teknologi Maritim Jalan Pantai Remis 32200 Lumut, Perak MALAYSIA [email protected] http://www.mimet.edu.my Abstract: - Mathematics is very important for the engineering and scientist but to make understand the mathematics is very difficult if without proper tools and suitable measurement. A numerical method is one of the algorithms which involved with computer programming. In this paper, Scilab is used to carter the problems related the mathematical models such as Matrices, operation with ODE’s and solving the Integration. It remains true that solutions of the vast majority of first order initial value problems cannot be found by analytical means. Therefore, it is important to be able to approach the problem in other ways. Today there are numerous methods that produce numerical approximations to solutions of differential equations. Here, we introduce the oldest and simplest such method, originated by Euler about 1768. It is called the tangent line method or the Euler method. It uses a fixed step size h and generates the approximate solution. The purpose of this paper is to show the details of implementing of Euler’s method and made comparison between modify Euler’s and exact value by integration solution, as well as solve the ODE’s use built-in functions available in Scilab programming. Key-Words: - Numerical Methods, Scilab programming, Euler methods, Ordinary Differential Equation. 1 Introduction availability of digital computers has led to a Numerical methods are techniques by which veritable explosion in the use and development of mathematical problems are formulated so that they numerical methods [1].
    [Show full text]
  • Running Sagemath (With Or Without Installation)
    Running SageMath (with or without installation) http://www.sagemath.org/ Éric Gourgoulhon Running SageMath 9 Feb. 2017 1 / 5 Various ways to install/access SageMath 7.5.1 Install on your computer: 2 options: install a compiled binary version for Linux, MacOS X or Windows1 from http://www.sagemath.org/download.html compile from source (Linux, MacOS X): check the prerequisites (see here for Ubuntu) and run git clone git://github.com/sagemath/sage.git cd sage MAKE=’make -j8’ make Run on your computer without installation: Sage Debian Live http://sagedebianlive.metelu.net/ Bootable USB flash drive with SageMath (boosted with octave, scilab), Geogebra, LaTeX, gimp, vlc, LibreOffice,... Open a (free) account on SageMathCloud https://cloud.sagemath.com/ Run in SageMathCell Single cell mode: http://sagecell.sagemath.org/ 1requires VirtualBox; alternatively, a full Windows installer is in pre-release stage at https://github.com/embray/sage-windows/releases Éric Gourgoulhon Running SageMath 9 Feb. 2017 2 / 5 Example 1: installing on Ubuntu 16.04 1 Download the archive sage-7.5.1-Ubuntu_16.04-x86_64.tar.bz2 from one the mirrors listed at http://www.sagemath.org/download-linux.html 2 Run the following commands in a terminal: bunzip2 sage-7.5.1-Ubuntu_16.04-x86_64.tar.bz2 tar xvf sage-7.5.1-Ubuntu_16.04-x86_64.tar cd SageMath ./sage -n jupyter A Jupyter home page should then open in your browser. Click on New and select SageMath 7.5.1 to open a Jupyter notebook with a SageMath kernel. Éric Gourgoulhon Running SageMath 9 Feb. 2017 3 / 5 Example 2: using the SageMathCloud 1 Open a free account on https://cloud.sagemath.com/ 2 Create a new project 3 In the second top menu, click on New to create a new file 4 Select Jupyter Notebook for the file type 5 In the Jupyter menu, click on Kernel, then Change kernel and choose SageMath 7.5 Éric Gourgoulhon Running SageMath 9 Feb.
    [Show full text]
  • Introduction to Scilab
    www.scilab.org INTRODUCTION TO SCILAB Consortium sCilab Domaine de Voluceau - Rocquencourt - B.P. 105 - 78153 Le Chesnay Cedex France This document has been written by Michaël Baudin from the Scilab Consortium. © November 2010 The Scilab Consortium - Digiteo. All rights reserved. November 2010 Abstract In this document, we make an overview of Scilab features so that we can get familiar with this environment. The goal is to present the core of skills necessary to start with Scilab. In the first part, we present how to get and install this software on our computer. We also present how to get some help with the provided in-line documentation and also thanks to web resources and forums. In the remaining sections, we present the Scilab language, especially its structured programming features. We present an important feature of Scilab, that is the management of real matrices and overview the linear algebra library. The definition of functions and the elementary management of input and output variables is presented. We present Scilab's graphical features and show how to create a 2D plot, how to configure the title and the legend and how to export that plot into a vectorial or bitmap format. Contents 1 Overview5 1.1 Introduction................................5 1.2 Overview of Scilab............................5 1.3 How to get and install Scilab.......................6 1.3.1 Installing Scilab under Windows.................7 1.3.2 Installing Scilab under Linux..................7 1.3.3 Installing Scilab under Mac OS.................8 1.4 How to get help..............................8 1.5 Mailing lists, wiki and bug reports....................9 1.6 Getting help from Scilab demonstrations and macros........
    [Show full text]
  • Scilab for Very Beginners
    Scilab for very beginners Scilab Enterprises S.A.S - 143 bis rue Yves Le Coz - 78000 Versailles (France) - www.scilab-enterprises.com This document has been co-written by Scilab Enterprises and Christine Gomez, mathematics teacher at Lycée Descartes (Descartes HiGh School) in Antony, Hauts-de-Seine (France). © 2013 Scilab Enterprises. All riGhts reserved. Scilab for very beGinners - 2/33 Table of content Introduction About this document 4 Install Scilab 4 MailinG list 4 Complementary resources 4 Chapter 1 – Become familiar with Scilab The General environment and the console 5 Simple numerical calculations 6 The menu bar 7 The editor 8 The Graphics window 9 Windows manaGement and workspace customization 11 Chapter 2 - Programming Variables, assignment and display 12 Loops 16 Tests 17 2 and 3D plots 18 Supplements on matrices and vectors 23 Calculation accuracy 29 SolvinG differential equations 30 Chapter 3 – Useful Scilab functions In analysis 32 In probability and statistics 32 To display and plot 33 Utilities 33 Scilab for very beGinners - 3/33 Introduction About this document The purpose of this document is to Guide you step by step in explorinG the various basic features of Scilab for a user who has never used numerical computation software. This presentation is voluntarily limited to the essential to allow easier handling of Scilab. Computations, Graphs and illustrations are made with Scilab 5.4.0. You can reproduce all those commands from this version. Install Scilab Scilab is numerical computation software that anybody can freely download. Available under Windows, Linux and Mac OS X, Scilab can be downloaded at the followinG address: http://www.scilab.orG/ You can be notified of new releases of Scilab software by subscribinG to our channel notification at the following address: http://lists.scilab.orG/mailman/listinfo/release Mailing list To facilitate the exchanGe between Scilab users, dedicated mailinG lists exist (list in French, list for the education world, international list in English).
    [Show full text]
  • Some Effective Methods for Teaching Mathematics Courses in Technological Universities
    International Journal of Education and Information Studies. ISSN 2277-3169 Volume 6, Number 1 (2016), pp. 11-18 © Research India Publications http://www.ripublication.com Some Effective Methods for Teaching Mathematics Courses in Technological Universities Dr. D. S. Sankar Professor, School of Applied Sciences and Mathematics, Universiti Teknologi Brunei, Jalan Tungku Link, BE1410, Brunei Darussalam E-mail: [email protected] Dr. Rama Rao Karri Principal Lecturer, Petroleum and Chemical Engineering Programme Area, Faculty of Engineering, Universiti Teknologi Brunei, Jalan Tungku Link, Gadong BE1410, Brunei Darussalam E-mail: [email protected] Abstract This article discusses some effective and useful methods for teaching various mathematics topics to the students of undergraduate and post-graduate degree programmes in technological universities. These teaching methods not only equip the students to acquire knowledge and skills for solving real world problems efficiently, but also these methods enhance the teacher’s ability to demonstrate the mathematical concepts effectively along with suitable physical examples. The exposure to mathematical softwares like MATLAB, SCILAB, MATHEMATICA, etc not only increases the students confidential level to solve variety of typical problems which they come across in their respective disciplines of study, but also it enables them to visualize the surfaces of the functions of several variable. Peer learning, seminar based learning and project based learning are other methods of learning environment to the students which makes the students to learn mathematics by themselves. These are higher level learning methods which enhances the students understanding on the mathematical concepts and it enables them to take up research projects. It is noted that the teaching and learning of mathematics with the support of mathematical softwares is believed to be more effective when compared to the effects of other methods of teaching and learning of mathematics.
    [Show full text]
  • Some Notes on SCILAB
    Universit´ede Nice Sophia-Antipolis Master 1 MathMods Ann´ee 2008/2009 Some notes on SCILAB STEP 1 Get starting To run Scilab on Unix/Linux O.S. type in the window the word: scilab You get a Scilab window on your computer screen. This Scilab window has a menu (File, Control, Graphic Window, Help). 1.1 Manipulating variables, constants As programming language Scilab owns variables, constants, vectors. 1.1.1 Scalars Few examples are given − − −− > x = 2. + sqrt(5) − − −− > x = 3.e − 2 Usual arithmetic operations are valable with usual priority +, −, ∗, /, ∗∗. 1.1.2 Constants Scilab possesses predefined variables or protected variables known as constants. They cannot be changed. There are given in table 1. Constant meaning %pi π = 3.14... %e e = 2.73... %i complexe number i s.t. i2 = −1 %eps machine epsilon %inf +∞ %nan ”Not A Number” Table 1: Scilab constants. 1.1.3 String variables Examples of chains of caracters known as string variables are given. − − −− > s =0 subject0, v =0 verb0, c =00 complement00 Some operations on string variables are shown in table 2. 1 Universit´ede Nice Sophia-Antipolis Master 1 MathMods Ann´ee 2008/2009 operations meaning + concatenation strcat concatenation strindex caracter research strsubst caracter substitution length number of caracters in a chain Table 2: Some operations on string variables. 1.1.4 Logical variables Logical variable or boolean variable corresponds to a logical expression. A logical variable can only take two values: %t for true and %f for false. Basic operations on logical variables are given in table 3. operations meaning ˜ negation | or & and Table 3: Operations on logical variables.
    [Show full text]
  • Julia: a Fresh Approach to Numerical Computing∗
    SIAM REVIEW c 2017 Society for Industrial and Applied Mathematics Vol. 59, No. 1, pp. 65–98 Julia: A Fresh Approach to Numerical Computing∗ Jeff Bezansony Alan Edelmanz Stefan Karpinskix Viral B. Shahy Abstract. Bridging cultures that have often been distant, Julia combines expertise from the diverse fields of computer science and computational science to create a new approach to numerical computing. Julia is designed to be easy and fast and questions notions generally held to be \laws of nature" by practitioners of numerical computing: 1. High-level dynamic programs have to be slow. 2. One must prototype in one language and then rewrite in another language for speed or deployment. 3. There are parts of a system appropriate for the programmer, and other parts that are best left untouched as they have been built by the experts. We introduce the Julia programming language and its design|a dance between special- ization and abstraction. Specialization allows for custom treatment. Multiple dispatch, a technique from computer science, picks the right algorithm for the right circumstance. Abstraction, which is what good computation is really about, recognizes what remains the same after differences are stripped away. Abstractions in mathematics are captured as code through another technique from computer science, generic programming. Julia shows that one can achieve machine performance without sacrificing human con- venience. Key words. Julia, numerical, scientific computing, parallel AMS subject classifications. 68N15, 65Y05, 97P40 DOI. 10.1137/141000671 Contents 1 Scientific Computing Languages: The Julia Innovation 66 1.1 Julia Architecture and Language Design Philosophy . 67 ∗Received by the editors December 18, 2014; accepted for publication (in revised form) December 16, 2015; published electronically February 7, 2017.
    [Show full text]
  • Basic Statistics and Probability with SCILAB
    Basic Statistics and Probability with SCILAB By Gilberto E. Urroz, Ph.D., P.E. Distributed by i nfoClearinghouse.com ©2001 Gilberto E. Urroz All Rights Reserved A "zip" file containing all of the programs in this document (and other SCILAB documents at InfoClearinghouse.com) can be downloaded at the following site: http://www.engineering.usu.edu/cee/faculty/gurro/Software_Calculators/Scil ab_Docs/ScilabBookFunctions.zip The author's SCILAB web page can be accessed at: http://www.engineering.usu.edu/cee/faculty/gurro/Scilab.html Please report any errors in this document to: [email protected] INTRODUCTION TO STATISTICS AND PROBABILITY 2 Statistics of a sample 2 Percentiles 3 Calculation of percentiles 3 Deciles 4 The coefficient of variation 4 SCILAB script for sample statistics 4 A function that produces a summary of sample statistics 6 Moments of a sample 9 Covariance and correlation 11 Frequency distribution of a sample 12 Selecting the number of classes 13 Histogram and frequency plot 14 Relative frequency 14 Cumulative frequency 14 A SCILAB function for determining frequency distributions 14 Skewness and kurtosis 17 Probability 20 Sample space and events 20 Sets 20 Set operations 20 Venn diagrams 23 Definitions of probability 24 Probability axioms 24 Addition rule 24 Counting 25 The Gamma function and factorials 27 Permutations and combinations using the Gamma function 28 Conditional probability 29 Independent events 30 Total probability 30 Bayes theorem 31 Exercises 31 Download at InfoClearinghouse.com 1 © 2001 Gilberto E. Urroz Introduction to Statistics and Probability Statistics is the science of data analysis. Through the use of a number of mathematical techniques, statistics can be used to summarize and analyze data from samples taken from a population of data.
    [Show full text]