And Multi-Core BLAS Implementations and Gpus for Use with R
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Using Intel® Math Kernel Library and Intel® Integrated Performance Primitives in the Microsoft* .NET* Framework
Using Intel® MKL and Intel® IPP in Microsoft* .NET* Framework Using Intel® Math Kernel Library and Intel® Integrated Performance Primitives in the Microsoft* .NET* Framework Document Number: 323195-001US.pdf 1 Using Intel® MKL and Intel® IPP in Microsoft* .NET* Framework INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. -
Navigating the R Package Universe by Julia Silge, John C
CONTRIBUTED RESEARCH ARTICLES 558 Navigating the R Package Universe by Julia Silge, John C. Nash, and Spencer Graves Abstract Today, the enormous number of contributed packages available to R users outstrips any given user’s ability to understand how these packages work, their relative merits, or how they are related to each other. We organized a plenary session at useR!2017 in Brussels for the R community to think through these issues and ways forward. This session considered three key points of discussion. Users can navigate the universe of R packages with (1) capabilities for directly searching for R packages, (2) guidance for which packages to use, e.g., from CRAN Task Views and other sources, and (3) access to common interfaces for alternative approaches to essentially the same problem. Introduction As of our writing, there are over 13,000 packages on CRAN. R users must approach this abundance of packages with effective strategies to find what they need and choose which packages to invest time in learning how to use. At useR!2017 in Brussels, we organized a plenary session on this issue, with three themes: search, guidance, and unification. Here, we summarize these important themes, the discussion in our community both at useR!2017 and in the intervening months, and where we can go from here. Users need options to search R packages, perhaps the content of DESCRIPTION files, documenta- tion files, or other components of R packages. One author (SG) has worked on the issue of searching for R functions from within R itself in the sos package (Graves et al., 2017). -
(LINUX) Computer in Three Parts
Science on a (LINUX) computer in three parts Introductory short couse, Part II Thorsten Becker University of Southern California, Los Angeles September 2007 The first part dealt with ● UNIX: what and why ● File system, Window managers ● Shell environment ● Editing files ● Command line tools ● Scripts and GUIs ● Virtualization Contents part II ● Typesetting ● Programming – common languages – philosophy – compiling, debugging, make, version control – C and F77 interfacing – libraries and packages ● Number crunching ● Visualization tools Programming: Traditional languages in the natural sciences ● Fortran: higher level, good for math – F77: legacy, don't use (but know how to read) – F90/F95: nice vector features, finally implements C capabilities (structures, memory allocation) ● C: low level (e.g. pointers), better structured – very close to UNIX philosophy – structures offer nice way of modular programming, see Wikipedia on C ● I recommend F95, and use C happily myself Programming: Some Languages that haven't completely made it to scientific computing ● C++: object oriented programming model – reusable objects with methods and such – can be partly realized by modular programming in C ● Java: what's good for commercial projects (or smart, or elegant) doesn't have to be good for scientific computing ● Concern about portability as well as general access Programming: Compromises ● Python – Object oriented – Interpreted – Interfaces easily with F90/C – Numerous scientific packages Programming: Other interpreted, high- abstraction languages -
Computational Statistics in Practice
Computational Statistics in Practice Some Observations Dirk Eddelbuettel 10 November 2016 Invited Presentation Department of Statistics University of Illinois Urbana-Champaign, IL UIUC Nov 2016 1/147 Motivation UIUC Nov 2016 2/147 Almost all topics in twenty-first-century statistics are now computer-dependent [...] Here and in all our examples we are employing the language R, itself one of the key developments in computer-based statistical methodology. Efron and Hastie, 2016, pages xv and 6 (footnote 3) UIUC Nov 2016 3/147 A View of the World Computational Statistics in Practice • Statistics is now computational (Efron & Hastie, 2016) • Within (computational) statistics, reigning tool is R • Given R, Rcpp key for two angles: • Performance always matters, ease of use a sweetspot • “Extending R” (Chambers, 2016) • Time permitting • Being nice to other (languages) • an underdiscussed angle in industry UIUC Nov 2016 4/147 Overview / Outline / Plan Drawing on three Talks • Rcpp Introduction (from recent workshops / talks / courses) • [if time] If You Can’t Beat ’em (from JSS session at JSM) • [if time] Open Source Finance (from an industry conference) UIUC Nov 2016 5/147 About Me Brief Bio • PhD, MA Econometrics; MSc Ind.Eng. (Comp.Sci./OR) • Finance Quant for 20 years • Open Source for 22 years • Debian developer • R package author / contributor • R Foundation Board member, R Consortium ISC member • JSS Associate Editor UIUC Nov 2016 6/147 Rcpp: Introduction via Tweets UIUC Nov 2016 7/147 UIUC Nov 2016 8/147 UIUC Nov 2016 9/147 UIUC Nov 2016 10/147 UIUC Nov 2016 11/147 UIUC Nov 2016 12/147 UIUC Nov 2016 13/147 UIUC Nov 2016 14/147 UIUC Nov 2016 15/147 UIUC Nov 2016 16/147 Extending R UIUC Nov 2016 17/147 Why R? : Programming with Data from 1977 to 2016 Thanks to John Chambers for high-resolution cover images. -
Frequently Asked Questions About Rcpp
Frequently Asked Questions about Rcpp Dirk Eddelbuettel Romain François Rcpp version 0.12.9 as of January 14, 2017 Abstract This document attempts to answer the most Frequently Asked Questions (FAQ) regarding the Rcpp (Eddelbuettel, François, Allaire, Ushey, Kou, Russel, Chambers, and Bates, 2017; Eddelbuettel and François, 2011; Eddelbuettel, 2013) package. Contents 1 Getting started 2 1.1 How do I get started ?.....................................................2 1.2 What do I need ?........................................................2 1.3 What compiler can I use ?...................................................3 1.4 What other packages are useful ?..............................................3 1.5 What licenses can I choose for my code?..........................................3 2 Compiling and Linking 4 2.1 How do I use Rcpp in my package ?............................................4 2.2 How do I quickly prototype my code?............................................4 2.2.1 Using inline.......................................................4 2.2.2 Using Rcpp Attributes.................................................4 2.3 How do I convert my prototyped code to a package ?..................................5 2.4 How do I quickly prototype my code in a package?...................................5 2.5 But I want to compile my code with R CMD SHLIB !...................................5 2.6 But R CMD SHLIB still does not work !...........................................6 2.7 What about LinkingTo ?...................................................6 -
Some Notes on BLAS, SIMD, MIC and GPGPU (For Octave and Matlab)
Some Notes on BLAS, SIMD, MIC and GPGPU (for Octave and Matlab) Christian Himpe ([email protected]) WWU Münster Institute for Computational and Applied Mathematics Software-Tools für die Numerische Mathematik 15.10.2014 About1 BLAS & LAPACK Affinity SIMD Automatic Offloading 1 Get your Buzzword-Bingo ready! BLAS & LAPACK BLAS (Basic Linear Algebra System) Level 1: vector-vector operations (dot-product, vector norms, generalized vector addition) Level 2: matrix-vector operations (generalized matrix-vector multiplication) Level 3: matrix-matrix operations (generalized matrix-matrix multiplication) LAPACK (Linear Algebra Package) Matrix Factorizations: LU, QR, Cholesky, Schur Least-Squares: LLS, LSE, GLM Eigenproblems: SEP, NEP, SVD Default (un-optimized) netlib reference implementation. Used by Octave, Matlab, SciPy/NumPy (Python), Julia, R. MKL Intel’s implementation of BLAS and LAPACK. MKL (Math Kernel Library) can offload computations to XeonPhi can use OpenMP provides additionally FFT, libm and 1D-interpolation Current Version: 11.0.5 (automatic offloading to Phis) Costs (we have it, and Matlab ships with it, too) Go to: https://software.intel.com/en-us/intel-mkl ACML AMD doesn’t want to be left out. ACML (AMD Core Math Libraries) Can use OpenCL for automatic offloading to GPUs Special version to exploit FMA(4) instructions Choice of compiled binaries (GFortran, Intel Fortran, Open64, PGI) Current Version: 6 (automatic offloading to GPUs) Free (but not open source) Go to: http://developer.amd.com/tools-and-sdks/ cpu-development/amd-core-math-library-acml OpenBLAS Open Source, the third kind. OpenBLAS Fork of GotoBLAS Good performance for dense operations (close to the MKL) Can use OpenMP and is compiled for specific architecture Current Version: 0.2.11 Open source (!) Go to: http://github.com/xianyi/OpenBLAS FlexiBLAS So many BLAS implementations, so little time.. -
The Rockerverse: Packages and Applications for Containerisation
PREPRINT 1 The Rockerverse: Packages and Applications for Containerisation with R by Daniel Nüst, Dirk Eddelbuettel, Dom Bennett, Robrecht Cannoodt, Dav Clark, Gergely Daróczi, Mark Edmondson, Colin Fay, Ellis Hughes, Lars Kjeldgaard, Sean Lopp, Ben Marwick, Heather Nolis, Jacqueline Nolis, Hong Ooi, Karthik Ram, Noam Ross, Lori Shepherd, Péter Sólymos, Tyson Lee Swetnam, Nitesh Turaga, Charlotte Van Petegem, Jason Williams, Craig Willis, Nan Xiao Abstract The Rocker Project provides widely used Docker images for R across different application scenarios. This article surveys downstream projects that build upon the Rocker Project images and presents the current state of R packages for managing Docker images and controlling containers. These use cases cover diverse topics such as package development, reproducible research, collaborative work, cloud-based data processing, and production deployment of services. The variety of applications demonstrates the power of the Rocker Project specifically and containerisation in general. Across the diverse ways to use containers, we identified common themes: reproducible environments, scalability and efficiency, and portability across clouds. We conclude that the current growth and diversification of use cases is likely to continue its positive impact, but see the need for consolidating the Rockerverse ecosystem of packages, developing common practices for applications, and exploring alternative containerisation software. Introduction The R community continues to grow. This can be seen in the number of new packages on CRAN, which is still on growing exponentially (Hornik et al., 2019), but also in the numbers of conferences, open educational resources, meetups, unconferences, and companies that are adopting R, as exemplified by the useR! conference series1, the global growth of the R and R-Ladies user groups2, or the foundation and impact of the R Consortium3. -
Intel(R) Math Kernel Library for Linux* OS User's Guide
Intel® Math Kernel Library for Linux* OS User's Guide MKL 10.3 - Linux* OS Document Number: 315930-012US Legal Information Legal Information INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. -
Intel® Math Kernel Library for Windows* OS User's Guide
Intel® Math Kernel Library for Windows* OS User's Guide Intel® MKL - Windows* OS Document Number: 315930-027US Legal Information Contents Contents Legal Information................................................................................7 Introducing the Intel® Math Kernel Library...........................................9 Getting Help and Support...................................................................11 Notational Conventions......................................................................13 Chapter 1: Overview Document Overview.................................................................................15 What's New.............................................................................................15 Related Information.................................................................................15 Chapter 2: Getting Started Checking Your Installation.........................................................................17 Setting Environment Variables ..................................................................17 Compiler Support.....................................................................................19 Using Code Examples...............................................................................19 What You Need to Know Before You Begin Using the Intel® Math Kernel Library...............................................................................................19 Chapter 3: Structure of the Intel® Math Kernel Library Architecture Support................................................................................23 -
0 BLIS: a Modern Alternative to the BLAS
0 BLIS: A Modern Alternative to the BLAS FIELD G. VAN ZEE and ROBERT A. VAN DE GEIJN, The University of Texas at Austin We propose the portable BLAS-like Interface Software (BLIS) framework which addresses a number of short- comings in both the original BLAS interface and present-day BLAS implementations. The framework allows developers to rapidly instantiate high-performance BLAS-like libraries on existing and new architectures with relatively little effort. The key to this achievement is the observation that virtually all computation within level-2 and level-3 BLAS operations may be expressed in terms of very simple kernels. Higher-level framework code is generalized so that it can be reused and/or re-parameterized for different operations (as well as different architectures) with little to no modification. Inserting high-performance kernels into the framework facilitates the immediate optimization of any and all BLAS-like operations which are cast in terms of these kernels, and thus the framework acts as a productivity multiplier. Users of BLAS-dependent applications are supported through a straightforward compatibility layer, though calling sequences must be updated for those who wish to access new functionality. Experimental performance of level-2 and level-3 operations is observed to be competitive with two mature open source libraries (OpenBLAS and ATLAS) as well as an established commercial product (Intel MKL). Categories and Subject Descriptors: G.4 [Mathematical Software]: Efficiency General Terms: Algorithms, Performance Additional Key Words and Phrases: linear algebra, libraries, high-performance, matrix, BLAS ACM Reference Format: ACM Trans. Math. Softw. 0, 0, Article 0 ( 0000), 31 pages. -
Frequently Asked Questions About Rcpp
Frequently Asked Questions about Rcpp Dirk Eddelbuettel Romain François Rcpp version 0.12.7 as of September 4, 2016 Abstract This document attempts to answer the most Frequently Asked Questions (FAQ) regarding the Rcpp (Eddelbuettel, François, Allaire, Ushey, Kou, Chambers, and Bates, 2016a; Eddelbuettel and François, 2011; Eddelbuettel, 2013) package. Contents 1 Getting started 2 1.1 How do I get started ?.....................................................2 1.2 What do I need ?........................................................2 1.3 What compiler can I use ?...................................................3 1.4 What other packages are useful ?..............................................3 1.5 What licenses can I choose for my code?..........................................3 2 Compiling and Linking 4 2.1 How do I use Rcpp in my package ?............................................4 2.2 How do I quickly prototype my code?............................................4 2.2.1 Using inline.......................................................4 2.2.2 Using Rcpp Attributes.................................................4 2.3 How do I convert my prototyped code to a package ?..................................5 2.4 How do I quickly prototype my code in a package?...................................5 2.5 But I want to compile my code with R CMD SHLIB !...................................5 2.6 But R CMD SHLIB still does not work !...........................................6 2.7 What about LinkingTo ?...................................................6 -
Installing R and Cran Binaries on Ubuntu
INSTALLING R AND CRAN BINARIES ON UBUNTU COMPOUNDING MANY SMALL CHANGES FOR LARGER EFFECTS Dirk Eddelbuettel T4 Video Lightning Talk #006 and R4 Video #5 Jun 21, 2020 R PACKAGE INSTALLATION ON LINUX • In general installation on Linux is from source, which can present an additional hurdle for those less familiar with package building, and/or compilation and error messages, and/or more general (Linux) (sys-)admin skills • That said there have always been some binaries in some places; Debian has a few hundred in the distro itself; and there have been at least three distinct ‘cran2deb’ automation attempts • (Also of note is that Fedora recently added a user-contributed repo pre-builds of all 15k CRAN packages, which is laudable. I have no first- or second-hand experience with it) • I have written about this at length (see previous R4 posts and videos) but it bears repeating T4 + R4 Video 2/14 R PACKAGES INSTALLATION ON LINUX Three different ways • Barebones empty Ubuntu system, discussing the setup steps • Using r-ubuntu container with previous setup pre-installed • The new kid on the block: r-rspm container for RSPM T4 + R4 Video 3/14 CONTAINERS AND UBUNTU One Important Point • We show container use here because Docker allows us to “simulate” an empty machine so easily • But nothing we show here is limited to Docker • I.e. everything works the same on a corresponding Ubuntu system: your laptop, server or cloud instance • It is also transferable between Ubuntu releases (within limits: apparently still no RSPM for the now-current Ubuntu 20.04)