Python Programming Training
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Python on Gpus (Work in Progress!)
Python on GPUs (work in progress!) Laurie Stephey GPUs for Science Day, July 3, 2019 Rollin Thomas, NERSC Lawrence Berkeley National Laboratory Python is friendly and popular Screenshots from: https://www.tiobe.com/tiobe-index/ So you want to run Python on a GPU? You have some Python code you like. Can you just run it on a GPU? import numpy as np from scipy import special import gpu ? Unfortunately no. What are your options? Right now, there is no “right” answer ● CuPy ● Numba ● pyCUDA (https://mathema.tician.de/software/pycuda/) ● pyOpenCL (https://mathema.tician.de/software/pyopencl/) ● Rewrite kernels in C, Fortran, CUDA... DESI: Our case study Now Perlmutter 2020 Goal: High quality output spectra Spectral Extraction CuPy (https://cupy.chainer.org/) ● Developed by Chainer, supported in RAPIDS ● Meant to be a drop-in replacement for NumPy ● Some, but not all, NumPy coverage import numpy as np import cupy as cp cpu_ans = np.abs(data) #same thing on gpu gpu_data = cp.asarray(data) gpu_temp = cp.abs(gpu_data) gpu_ans = cp.asnumpy(gpu_temp) Screenshot from: https://docs-cupy.chainer.org/en/stable/reference/comparison.html eigh in CuPy ● Important function for DESI ● Compared CuPy eigh on Cori Volta GPU to Cori Haswell and Cori KNL ● Tried “divide-and-conquer” approach on both CPU and GPU (1, 2, 5, 10 divisions) ● Volta wins only at very large matrix sizes ● Major pro: eigh really easy to use in CuPy! legval in CuPy ● Easy to convert from NumPy arrays to CuPy arrays ● This function is ~150x slower than the cpu version! ● This implies there -
Introduction Shrinkage Factor Reference
Comparison study for implementation efficiency of CUDA GPU parallel computation with the fast iterative shrinkage-thresholding algorithm Younsang Cho, Donghyeon Yu Department of Statistics, Inha university 4. TensorFlow functions in Python (TF-F) Introduction There are some functions executed on GPU in TensorFlow. So, we implemented our algorithm • Parallel computation using graphics processing units (GPUs) gets much attention and is just using that functions. efficient for single-instruction multiple-data (SIMD) processing. 5. Neural network with TensorFlow in Python (TF-NN) • Theoretical computation capacity of the GPU device has been growing fast and is much higher Neural network model is flexible, and the LASSO problem can be represented as a simple than that of the CPU nowadays (Figure 1). neural network with an ℓ1-regularized loss function • There are several platforms for conducting parallel computation on GPUs using compute 6. Using dynamic link library in Python (P-DLL) unified device architecture (CUDA) developed by NVIDIA. (Python, PyCUDA, Tensorflow, etc. ) As mentioned before, we can load DLL files, which are written in CUDA C, using "ctypes.CDLL" • However, it is unclear what platform is the most efficient for CUDA. that is a built-in function in Python. 7. Using dynamic link library in R (R-DLL) We can also load DLL files, which are written in CUDA C, using "dyn.load" in R. FISTA (Fast Iterative Shrinkage-Thresholding Algorithm) We consider FISTA (Beck and Teboulle, 2009) with backtracking as the following: " Step 0. Take �! > 0, some � > 1, and �! ∈ ℝ . Set �# = �!, �# = 1. %! Step k. � ≥ 1 Find the smallest nonnegative integers �$ such that with �g = � �$&# � �(' �$ ≤ �(' �(' �$ , �$ . -
Prototyping and Developing GPU-Accelerated Solutions with Python and CUDA Luciano Martins and Robert Sohigian, 2018-11-22 Introduction to Python
Prototyping and Developing GPU-Accelerated Solutions with Python and CUDA Luciano Martins and Robert Sohigian, 2018-11-22 Introduction to Python GPU-Accelerated Computing NVIDIA® CUDA® technology Why Use Python with GPUs? Agenda Methods: PyCUDA, Numba, CuPy, and scikit-cuda Summary Q&A 2 Introduction to Python Released by Guido van Rossum in 1991 The Zen of Python: Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Interpreted language (CPython, Jython, ...) Dynamically typed; based on objects 3 Introduction to Python Small core structure: ~30 keywords ~ 80 built-in functions Indentation is a pretty serious thing Dynamically typed; based on objects Binds to many different languages Supports GPU acceleration via modules 4 Introduction to Python 5 Introduction to Python 6 Introduction to Python 7 GPU-Accelerated Computing “[T]the use of a graphics processing unit (GPU) together with a CPU to accelerate deep learning, analytics, and engineering applications” (NVIDIA) Most common GPU-accelerated operations: Large vector/matrix operations (Basic Linear Algebra Subprograms - BLAS) Speech recognition Computer vision 8 GPU-Accelerated Computing Important concepts for GPU-accelerated computing: Host ― the machine running the workload (CPU) Device ― the GPUs inside of a host Kernel ― the code part that runs on the GPU SIMT ― Single Instruction Multiple Threads 9 GPU-Accelerated Computing 10 GPU-Accelerated Computing 11 CUDA Parallel computing -
Tangent: Automatic Differentiation Using Source-Code Transformation for Dynamically Typed Array Programming
Tangent: Automatic differentiation using source-code transformation for dynamically typed array programming Bart van Merriënboer Dan Moldovan Alexander B Wiltschko MILA, Google Brain Google Brain Google Brain [email protected] [email protected] [email protected] Abstract The need to efficiently calculate first- and higher-order derivatives of increasingly complex models expressed in Python has stressed or exceeded the capabilities of available tools. In this work, we explore techniques from the field of automatic differentiation (AD) that can give researchers expressive power, performance and strong usability. These include source-code transformation (SCT), flexible gradient surgery, efficient in-place array operations, and higher-order derivatives. We implement and demonstrate these ideas in the Tangent software library for Python, the first AD framework for a dynamic language that uses SCT. 1 Introduction Many applications in machine learning rely on gradient-based optimization, or at least the efficient calculation of derivatives of models expressed as computer programs. Researchers have a wide variety of tools from which they can choose, particularly if they are using the Python language [21, 16, 24, 2, 1]. These tools can generally be characterized as trading off research or production use cases, and can be divided along these lines by whether they implement automatic differentiation using operator overloading (OO) or SCT. SCT affords more opportunities for whole-program optimization, while OO makes it easier to support convenient syntax in Python, like data-dependent control flow, or advanced features such as custom partial derivatives. We show here that it is possible to offer the programming flexibility usually thought to be exclusive to OO-based tools in an SCT framework. -
Arxiv:1210.6293V1 [Cs.MS] 23 Oct 2012 So the Finally, Accessible
Journal of Machine Learning Research 1 (2012) 1-4 Submitted 9/12; Published x/12 MLPACK: A Scalable C++ Machine Learning Library Ryan R. Curtin [email protected] James R. Cline [email protected] N. P. Slagle [email protected] William B. March [email protected] Parikshit Ram [email protected] Nishant A. Mehta [email protected] Alexander G. Gray [email protected] College of Computing Georgia Institute of Technology Atlanta, GA 30332 Editor: Abstract MLPACK is a state-of-the-art, scalable, multi-platform C++ machine learning library re- leased in late 2011 offering both a simple, consistent API accessible to novice users and high performance and flexibility to expert users by leveraging modern features of C++. ML- PACK provides cutting-edge algorithms whose benchmarks exhibit far better performance than other leading machine learning libraries. MLPACK version 1.0.3, licensed under the LGPL, is available at http://www.mlpack.org. 1. Introduction and Goals Though several machine learning libraries are freely available online, few, if any, offer efficient algorithms to the average user. For instance, the popular Weka toolkit (Hall et al., 2009) emphasizes ease of use but scales poorly; the distributed Apache Mahout library offers scal- ability at a cost of higher overhead (such as clusters and powerful servers often unavailable to the average user). Also, few libraries offer breadth; for instance, libsvm (Chang and Lin, 2011) and the Tilburg Memory-Based Learner (TiMBL) are highly scalable and accessible arXiv:1210.6293v1 [cs.MS] 23 Oct 2012 yet each offer only a single method. -
Sb2b Statistical Machine Learning Hilary Term 2017
SB2b Statistical Machine Learning Hilary Term 2017 Mihaela van der Schaar and Seth Flaxman Guest lecturer: Yee Whye Teh Department of Statistics Oxford Slides and other materials available at: http://www.oxford-man.ox.ac.uk/~mvanderschaar/home_ page/course_ml.html Administrative details Course Structure MMath Part B & MSc in Applied Statistics Lectures: Wednesdays 12:00-13:00, LG.01. Thursdays 16:00-17:00, LG.01. MSc: 4 problem sheets, discussed at the classes: weeks 2,4,6,7 (check website) Part C: 4 problem sheets Class Tutors: Lloyd Elliott, Kevin Sharp, and Hyunjik Kim Please sign up for the classes on the sign up sheet! Administrative details Course Aims 1 Understand statistical fundamentals of machine learning, with a focus on supervised learning (classification and regression) and empirical risk minimisation. 2 Understand difference between generative and discriminative learning frameworks. 3 Learn to identify and use appropriate methods and models for given data and task. 4 Learn to use the relevant R or python packages to analyse data, interpret results, and evaluate methods. Administrative details SyllabusI Part I: Introduction to supervised learning (4 lectures) Empirical risk minimization Bias/variance, Generalization, Overfitting, Cross validation Regularization Logistic regression Neural networks Part II: Classification and regression (3 lectures) Generative vs. Discriminative models K-nearest neighbours, Maximum Likelihood Estimation, Mixture models Naive Bayes, Decision trees, CART Support Vector Machines Random forest, Boostrap Aggregation (Bagging), Ensemble learning Expectation Maximization Administrative details SyllabusII Part III: Theoretical frameworks Statistical learning theory Decision theory Part IV: Further topics Optimisation Hidden Markov Models Backward-forward algorithms Reinforcement learning Overview Statistical Machine Learning What is Machine Learning? http://gureckislab.org Tom Mitchell, 1997 Any computer program that improves its performance at some task through experience. -
Python Guide Documentation 0.0.1
Python Guide Documentation 0.0.1 Kenneth Reitz 2015 11 07 Contents 1 3 1.1......................................................3 1.2 Python..................................................5 1.3 Mac OS XPython.............................................5 1.4 WindowsPython.............................................6 1.5 LinuxPython...............................................8 2 9 2.1......................................................9 2.2...................................................... 15 2.3...................................................... 24 2.4...................................................... 25 2.5...................................................... 27 2.6 Logging.................................................. 31 2.7...................................................... 34 2.8...................................................... 37 3 / 39 3.1...................................................... 39 3.2 Web................................................... 40 3.3 HTML.................................................. 47 3.4...................................................... 48 3.5 GUI.................................................... 49 3.6...................................................... 51 3.7...................................................... 52 3.8...................................................... 53 3.9...................................................... 58 3.10...................................................... 59 3.11...................................................... 62 -
Computational Tools for Big Data — Python Libraries
Computational Tools for Big Data | Python Libraries Finn Arup˚ Nielsen DTU Compute Technical University of Denmark September 15, 2015 Computational Tools for Big Data | Python libraries Overview Numpy | numerical arrays with fast computation Scipy | computation science functions Scikit-learn (sklearn) | machine learning Pandas | Annotated numpy arrays Cython | write C program in Python Finn Arup˚ Nielsen 1 September 15, 2015 Computational Tools for Big Data | Python libraries Python numerics The problem with Python: >>> [1, 2, 3] * 3 Finn Arup˚ Nielsen 2 September 15, 2015 Computational Tools for Big Data | Python libraries Python numerics The problem with Python: >>> [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]# Not [3, 6, 9]! Finn Arup˚ Nielsen 3 September 15, 2015 Computational Tools for Big Data | Python libraries Python numerics The problem with Python: >>> [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]# Not [3, 6, 9]! >>> [1, 2, 3] + 1# Wants [2, 3, 4]... Finn Arup˚ Nielsen 4 September 15, 2015 Computational Tools for Big Data | Python libraries Python numerics The problem with Python: >>> [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]# Not [3, 6, 9]! >>> [1, 2, 3] + 1# Wants [2, 3, 4]... Traceback(most recent call last): File"<stdin>", line 1, in<module> TypeError: can only concatenate list(not"int") to list Finn Arup˚ Nielsen 5 September 15, 2015 Computational Tools for Big Data | Python libraries Python numerics The problem with Python: >>> [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]# Not [3, 6, 9]! >>> [1, 2, 3] + 1# Wants [2, 3, 4].. -
Hyperlearn Documentation Release 1
HyperLearn Documentation Release 1 Daniel Han-Chen Jun 19, 2020 Contents 1 Example code 3 1.1 hyperlearn................................................3 1.1.1 hyperlearn package.......................................3 1.1.1.1 Submodules......................................3 1.1.1.2 hyperlearn.base module................................3 1.1.1.3 hyperlearn.linalg module...............................7 1.1.1.4 hyperlearn.utils module................................ 10 1.1.1.5 hyperlearn.random module.............................. 11 1.1.1.6 hyperlearn.exceptions module............................. 11 1.1.1.7 hyperlearn.multiprocessing module.......................... 11 1.1.1.8 hyperlearn.numba module............................... 11 1.1.1.9 hyperlearn.solvers module............................... 12 1.1.1.10 hyperlearn.stats module................................ 14 1.1.1.11 hyperlearn.big_data.base module........................... 15 1.1.1.12 hyperlearn.big_data.incremental module....................... 15 1.1.1.13 hyperlearn.big_data.lsmr module........................... 15 1.1.1.14 hyperlearn.big_data.randomized module....................... 16 1.1.1.15 hyperlearn.big_data.truncated module........................ 17 1.1.1.16 hyperlearn.decomposition.base module........................ 18 1.1.1.17 hyperlearn.decomposition.NMF module....................... 18 1.1.1.18 hyperlearn.decomposition.PCA module........................ 18 1.1.1.19 hyperlearn.decomposition.PCA module........................ 18 1.1.1.20 hyperlearn.discriminant_analysis.base -
Zmcintegral: a Package for Multi-Dimensional Monte Carlo Integration on Multi-Gpus
ZMCintegral: a Package for Multi-Dimensional Monte Carlo Integration on Multi-GPUs Hong-Zhong Wua,∗, Jun-Jie Zhanga,∗, Long-Gang Pangb,c, Qun Wanga aDepartment of Modern Physics, University of Science and Technology of China bPhysics Department, University of California, Berkeley, CA 94720, USA and cNuclear Science Division, Lawrence Berkeley National Laboratory, Berkeley, CA 94720, USA Abstract We have developed a Python package ZMCintegral for multi-dimensional Monte Carlo integration on multiple Graphics Processing Units(GPUs). The package employs a stratified sampling and heuristic tree search algorithm. We have built three versions of this package: one with Tensorflow and other two with Numba, and both support general user defined functions with a user- friendly interface. We have demonstrated that Tensorflow and Numba help inexperienced scientific researchers to parallelize their programs on multiple GPUs with little work. The precision and speed of our package is compared with that of VEGAS for two typical integrands, a 6-dimensional oscillating function and a 9-dimensional Gaussian function. The results show that the speed of ZMCintegral is comparable to that of the VEGAS with a given precision. For heavy calculations, the algorithm can be scaled on distributed clusters of GPUs. Keywords: Monte Carlo integration; Stratified sampling; Heuristic tree search; Tensorflow; Numba; Ray. PROGRAM SUMMARY Manuscript Title: ZMCintegral: a Package for Multi-Dimensional Monte Carlo Integration on Multi-GPUs arXiv:1902.07916v2 [physics.comp-ph] 2 Oct 2019 Authors: Hong-Zhong Wu; Jun-Jie Zhang; Long-Gang Pang; Qun Wang Program Title: ZMCintegral Journal Reference: ∗Both authors contributed equally to this manuscript. Preprint submitted to Computer Physics Communications October 3, 2019 Catalogue identifier: Licensing provisions: Apache License Version, 2.0(Apache-2.0) Programming language: Python Operating system: Linux Keywords: Monte Carlo integration; Stratified sampling; Heuristic tree search; Tensorflow; Numba; Ray. -
Likelihood Algorithm Afterapplying PCA on LISS 3 Image Using Python Platform
International Journal of Scientific & Engineering Research, Volume 7, Issue 8, August-2016 1624 ISSN 2229-5518 Performance Evaluation of Maximum- Likelihood Algorithm afterApplying PCA on LISS 3 Image using Python Platform MayuriChatse, Vikas Gore, RasikaKalyane, Dr. K. V. Kale Dr. BabasahebAmbedkarMarathwada, University, Aurangabad, Maharashtra, India Abstract—This paper presents a system for multispectral image processing of LISS3 image using python programming language. The system starts with preprocessing technique i.e. by applying PCA on LISS3 image.PCA reduces image dimensionality by processing new, uncorrelated bands consisting of the principal components (PCs) of the given bands. Thus, this method transforms the original data set into a new dataset, which captures essential information.Further classification is done through maximum- likelihood algorithm. It is tested and evaluated on selected area i.e. region of interest. Accuracy is evaluated by confusion matrix and kappa statics.Satellite imagery tool using python shows better result in terms of overall accuracy and kappa coefficient than ENVI tool’s for maximum-likelihood algorithm. Keywords— Kappa Coefficient,Maximum-likelihood, Multispectral image,Overall Accuracy, PCA, Python, Satellite imagery tool —————————— —————————— I. Introduction microns), which provides information with a spatial resolution of 23.5 m not like in IRS-1C/1D (where the spatial resolution is 70.5 m) [12]. Remote sensing has become avitaltosol in wide areas. The classification of multi-spectral images has been a productive application that’s used for classification of land cover maps [1], urban growth [2], forest change [3], monitoring change in ecosystem condition [4], monitoring assessing deforestation and burned forest areas [5], agricultural expansion [6], The Data products are classified as Standard and have a mapping [7], real time fire detection [8], estimating tornado system level accuracy. -
Python Guide Documentation Publicación 0.0.1
Python Guide Documentation Publicación 0.0.1 Kenneth Reitz 17 de May de 2018 Índice general 1. Empezando con Python 3 1.1. Eligiendo un Interprete Python (3 vs. 2).................................3 1.2. Instalando Python Correctamente....................................5 1.3. Instalando Python 3 en Mac OS X....................................6 1.4. Instalando Python 3 en Windows....................................8 1.5. Instalando Python 3 en Linux......................................9 1.6. Installing Python 2 on Mac OS X.................................... 10 1.7. Instalando Python 2 en Windows.................................... 12 1.8. Installing Python 2 on Linux....................................... 13 1.9. Pipenv & Ambientes Virtuales...................................... 14 1.10. Un nivel más bajo: virtualenv...................................... 17 2. Ambientes de Desarrollo de Python 21 2.1. Your Development Environment..................................... 21 2.2. Further Configuration of Pip and Virtualenv............................... 26 3. Escribiendo Buen Código Python 29 3.1. Estructurando tu Proyecto........................................ 29 3.2. Code Style................................................ 40 3.3. Reading Great Code........................................... 49 3.4. Documentation.............................................. 50 3.5. Testing Your Code............................................ 53 3.6. Logging.................................................. 57 3.7. Common Gotchas...........................................