Sage for Power Users
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Sagemath and Sagemathcloud
Viviane Pons Ma^ıtrede conf´erence,Universit´eParis-Sud Orsay [email protected] { @PyViv SageMath and SageMathCloud Introduction SageMath SageMath is a free open source mathematics software I Created in 2005 by William Stein. I http://www.sagemath.org/ I Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 2 / 7 SageMath Source and language I the main language of Sage is python (but there are many other source languages: cython, C, C++, fortran) I the source is distributed under the GPL licence. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 3 / 7 SageMath Sage and libraries One of the original purpose of Sage was to put together the many existent open source mathematics software programs: Atlas, GAP, GMP, Linbox, Maxima, MPFR, PARI/GP, NetworkX, NTL, Numpy/Scipy, Singular, Symmetrica,... Sage is all-inclusive: it installs all those libraries and gives you a common python-based interface to work on them. On top of it is the python / cython Sage library it-self. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 4 / 7 SageMath Sage and libraries I You can use a library explicitly: sage: n = gap(20062006) sage: type(n) <c l a s s 'sage. interfaces .gap.GapElement'> sage: n.Factors() [ 2, 17, 59, 73, 137 ] I But also, many of Sage computation are done through those libraries without necessarily telling you: sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]]) sage : G . g a p () Group( [ (3,4), (1,2,3)(4,5) ] ) Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 5 / 7 SageMath Development model Development model I Sage is developed by researchers for researchers: the original philosophy is to develop what you need for your research and share it with the community. -
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. -
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. -
Using Mathematica As a Teaching Tool in the Undergraduate Economics Curriculum
USING MATHEMATICA AS A TEACHING TOOL IN THE UNDERGRADUATE ECONOMICS CURRICULUM Gary Hodgin* Abstract In recent years, the quantitative skills required of economics students have increased significantly. Students often experience difficulty in making the transition from their mathematics courses to the use of mathematics in their economics courses. Symbolic computation programs are mathematical tools that can potentially smooth this transition. This paper illustrates a few ways in which one symbolic computation program, Mathematica, has been used in the undergraduate economics curriculum. I. Introduction The undergraduate curriculum in economics has become increasingly quantitative. An economics major typically includes college algebra, statistics, and some form of calculus in its degree requirements.1 In addition, mathematical economics and econometrics are now standard courses in many undergraduate programs. Moreover, this quantitative emphasis generally extends to other courses across the economics curriculum, particularly the intermediate theory and managerial economics courses. For example, approximately 90 percent of the intermediate microeconomics instructors included in von Allmen and Brower's survey (1998, 279) use calculus in their courses. Although one might question whether too much emphasis is placed on quantitative skills, there appears to be consensus among economics professors that mathematics is an important ingredient in undergraduate economic education. Over the past three years, I have used a symbolic computation program entitled Mathematica in two of my intermediate microeconomics and three of my managerial economics courses. My observations in these courses suggests that some students experience difficulty in making the transition from their courses in mathematics to their use of mathematics in economics. By smoothing this transition, symbolic computation programs can assist students in learning economics. -
KNIME Big Data Workshop
KNIME Big Data Workshop Björn Lohrmann KNIME © 2018 KNIME.com AG. All Rights Reserved. Variety, Velocity, Volume • Variety: – Integrating heterogeneous data… – ... and tools • Velocity: – Real time scoring of millions of records/sec – Continuous data streams – Distributed computation • Volume: – From small files... – ...to distributed data repositories – Moving computation to the data © 2018 KNIME.com AG. All Rights Reserved. 2 2 Variety © 2018 KNIME.com AG. All Rights Reserved. 3 The KNIME Analytics Platform: Open for Every Data, Tool, and User Data Scientist Business Analyst KNIME Analytics Platform External Native External Data Data Access, Analysis, and Legacy Connectors Visualization, and Reporting Tools Distributed / Cloud Execution © 2018 KNIME.com AG. All Rights Reserved. 4 Data Integration © 2018 KNIME.com AG. All Rights Reserved. 5 Integrating R and Python © 2018 KNIME.com AG. All Rights Reserved. 6 Modular Integrations © 2018 KNIME.com AG. All Rights Reserved. 7 Other Programming/Scripting Integrations © 2018 KNIME.com AG. All Rights Reserved. 8 Velocity © 2018 KNIME.com AG. All Rights Reserved. 9 Velocity • High Demand Scoring/Prediction: – Scoring using KNIME Server – Scoring with the KNIME Managed Scoring Service • Continuous Data Streams – Streaming in KNIME © 2018 KNIME.com AG. All Rights Reserved. 10 What is High Demand Scoring? • I have a workflow that takes data, applies an algorithm/model and returns a prediction. • I need to deploy that to hundreds or thousands of end users • I need to update the model/workflow periodically © 2018 KNIME.com AG. All Rights Reserved. 11 How to make a scoring workflow • Use JSON Input/Output nodes • Put workflow on KNIME Server -> REST endpoint for scoring © 2018 KNIME.com AG. -
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.. -
Text Mining Course for KNIME Analytics Platform
Text Mining Course for KNIME Analytics Platform KNIME AG Copyright © 2018 KNIME AG Table of Contents 1. The Open Analytics Platform 2. The Text Processing Extension 3. Importing Text 4. Enrichment 5. Preprocessing 6. Transformation 7. Classification 8. Visualization 9. Clustering 10. Supplementary Workflows Licensed under a Creative Commons Attribution- ® Copyright © 2018 KNIME AG 2 Noncommercial-Share Alike license 1 https://creativecommons.org/licenses/by-nc-sa/4.0/ Overview KNIME Analytics Platform Licensed under a Creative Commons Attribution- ® Copyright © 2018 KNIME AG 3 Noncommercial-Share Alike license 1 https://creativecommons.org/licenses/by-nc-sa/4.0/ What is KNIME Analytics Platform? • A tool for data analysis, manipulation, visualization, and reporting • Based on the graphical programming paradigm • Provides a diverse array of extensions: • Text Mining • Network Mining • Cheminformatics • Many integrations, such as Java, R, Python, Weka, H2O, etc. Licensed under a Creative Commons Attribution- ® Copyright © 2018 KNIME AG 4 Noncommercial-Share Alike license 2 https://creativecommons.org/licenses/by-nc-sa/4.0/ Visual KNIME Workflows NODES perform tasks on data Not Configured Configured Outputs Inputs Executed Status Error Nodes are combined to create WORKFLOWS Licensed under a Creative Commons Attribution- ® Copyright © 2018 KNIME AG 5 Noncommercial-Share Alike license 3 https://creativecommons.org/licenses/by-nc-sa/4.0/ Data Access • Databases • MySQL, MS SQL Server, PostgreSQL • any JDBC (Oracle, DB2, …) • Files • CSV, txt -
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 -
Stan: a Probabilistic Programming Language
JSS Journal of Statistical Software January 2017, Volume 76, Issue 1. doi: 10.18637/jss.v076.i01 Stan: A Probabilistic Programming Language Bob Carpenter Andrew Gelman Matthew D. Hoffman Columbia University Columbia University Adobe Creative Technologies Lab Daniel Lee Ben Goodrich Michael Betancourt Columbia University Columbia University Columbia University Marcus A. Brubaker Jiqiang Guo Peter Li York University NPD Group Columbia University Allen Riddell Indiana University Abstract Stan is a probabilistic programming language for specifying statistical models. A Stan program imperatively defines a log probability function over parameters conditioned on specified data and constants. As of version 2.14.0, Stan provides full Bayesian inference for continuous-variable models through Markov chain Monte Carlo methods such as the No-U-Turn sampler, an adaptive form of Hamiltonian Monte Carlo sampling. Penalized maximum likelihood estimates are calculated using optimization methods such as the limited memory Broyden-Fletcher-Goldfarb-Shanno algorithm. Stan is also a platform for computing log densities and their gradients and Hessians, which can be used in alternative algorithms such as variational Bayes, expectation propa- gation, and marginal inference using approximate integration. To this end, Stan is set up so that the densities, gradients, and Hessians, along with intermediate quantities of the algorithm such as acceptance probabilities, are easily accessible. Stan can be called from the command line using the cmdstan package, through R using the rstan package, and through Python using the pystan package. All three interfaces sup- port sampling and optimization-based inference with diagnostics and posterior analysis. rstan and pystan also provide access to log probabilities, gradients, Hessians, parameter transforms, and specialized plotting. -
Stan: a Probabilistic Programming Language
JSS Journal of Statistical Software MMMMMM YYYY, Volume VV, Issue II. http://www.jstatsoft.org/ Stan: A Probabilistic Programming Language Bob Carpenter Andrew Gelman Matt Hoffman Columbia University Columbia University Adobe Research Daniel Lee Ben Goodrich Michael Betancourt Columbia University Columbia University University of Warwick Marcus A. Brubaker Jiqiang Guo Peter Li University of Toronto, NPD Group Columbia University Scarborough Allen Riddell Dartmouth College Abstract Stan is a probabilistic programming language for specifying statistical models. A Stan program imperatively defines a log probability function over parameters conditioned on specified data and constants. As of version 2.2.0, Stan provides full Bayesian inference for continuous-variable models through Markov chain Monte Carlo methods such as the No-U-Turn sampler, an adaptive form of Hamiltonian Monte Carlo sampling. Penalized maximum likelihood estimates are calculated using optimization methods such as the Broyden-Fletcher-Goldfarb-Shanno algorithm. Stan is also a platform for computing log densities and their gradients and Hessians, which can be used in alternative algorithms such as variational Bayes, expectation propa- gation, and marginal inference using approximate integration. To this end, Stan is set up so that the densities, gradients, and Hessians, along with intermediate quantities of the algorithm such as acceptance probabilities, are easily accessible. Stan can be called from the command line, through R using the RStan package, or through Python using the PyStan package. All three interfaces support sampling and optimization-based inference. RStan and PyStan also provide access to log probabilities, gradients, Hessians, and data I/O. Keywords: probabilistic program, Bayesian inference, algorithmic differentiation, Stan. -
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. -
Advancedhmc.Jl: a Robust, Modular and Efficient Implementation of Advanced HMC Algorithms
2nd Symposium on Advances in Approximate Bayesian Inference, 20191{10 AdvancedHMC.jl: A robust, modular and efficient implementation of advanced HMC algorithms Kai Xu [email protected] University of Edinburgh Hong Ge [email protected] University of Cambridge Will Tebbutt [email protected] University of Cambridge Mohamed Tarek [email protected] UNSW Canberra Martin Trapp [email protected] Graz University of Technology Zoubin Ghahramani [email protected] University of Cambridge & Uber AI Labs Abstract Stan's Hamilton Monte Carlo (HMC) has demonstrated remarkable sampling robustness and efficiency in a wide range of Bayesian inference problems through carefully crafted adaption schemes to the celebrated No-U-Turn sampler (NUTS) algorithm. It is challeng- ing to implement these adaption schemes robustly in practice, hindering wider adoption amongst practitioners who are not directly working with the Stan modelling language. AdvancedHMC.jl (AHMC) contributes a modular, well-tested, standalone implementation of NUTS that recovers and extends Stan's NUTS algorithm. AHMC is written in Julia, a modern high-level language for scientific computing, benefiting from optional hardware acceleration and interoperability with a wealth of existing software written in both Julia and other languages, such as Python. Efficacy is demonstrated empirically by comparison with Stan through a third-party Markov chain Monte Carlo benchmarking suite. 1. Introduction Hamiltonian Monte Carlo (HMC) is an efficient Markov chain Monte Carlo (MCMC) algo- rithm which avoids random walks by simulating Hamiltonian dynamics to make proposals (Duane et al., 1987; Neal et al., 2011). Due to the statistical efficiency of HMC, it has been widely applied to fields including physics (Duane et al., 1987), differential equations (Kramer et al., 2014), social science (Jackman, 2009) and Bayesian inference (e.g.