Scientific computing platforms at PGI / JCNS

Similar documents
About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

Introduction to Python for Scientific Computing

Introduction to Programming

Getting more out of Matplotlib with GR

Installation and Introduction to Jupyter & RStudio

tutorial : modeling synaptic plasticity

Anaconda Python Guide On Windows Github Pages

CircuitPython with Jupyter Notebooks

Getting Started with Python

Introduction to Programming with Python 3, Ami Gates. Chapter 1: Creating a Programming Environment

Scientific Computing using Python

Spyder Documentation. Release 3. Pierre Raybaut

Scientific Computing: Lecture 1

Introduction to Python. Didzis Gosko

COSC 490 Computational Topology

Introduction to Computer Vision Laboratories

ME30_Lab1_18JUL18. August 29, ME 30 Lab 1 - Introduction to Anaconda, JupyterLab, and Python

Python ecosystem for scientific computing with ABINIT: challenges and opportunities. M. Giantomassi and the AbiPy group

Index. Bessel function, 51 Big data, 1. Cloud-based version-control system, 226 Containerization, 30 application, 32 virtualize processes, 30 31

Installation Manual and Quickstart Guide

Introduction to Scientific Computing with Python, part two.

(Ca...

Programming with Python

USING JUPYTERHUB IN THE CLASSROOM: SETUP AND LESSONS LEARNED

Webgurukul Programming Language Course

OREKIT IN PYTHON ACCESS THE PYTHON SCIENTIFIC ECOSYSTEM. Petrus Hyvönen

ARTIFICIAL INTELLIGENCE AND PYTHON

Command Line and Python Introduction. Jennifer Helsby, Eric Potash Computation for Public Policy Lecture 2: January 7, 2016

JUPYTER (IPYTHON) NOTEBOOK CHEATSHEET

HANDS ON DATA MINING. By Amit Somech. Workshop in Data-science, March 2016

Python Training. Complete Practical & Real-time Trainings. A Unit of SequelGate Innovative Technologies Pvt. Ltd.

Scientific Python. 1 of 10 23/11/ :00

Python: Its Past, Present, and Future in Meteorology

Connecting ArcGIS with R and Conda. Shaun Walbridge

Instituto Politécnico de Tomar. Python. Introduction. Ricardo Campos. Licenciatura ITM Técnicas Avançadas de Programação Abrantes, Portugal, 2018

Harnessing the Power of Python in ArcGIS Using the Conda Distribution. Shaun Walbridge Mark Janikas Ting Lee

PYTHON FOR MEDICAL PHYSICISTS. Radiation Oncology Medical Physics Cancer Care Services, Royal Brisbane & Women s Hospital

Introduction to Python Part 2

Installation Manual and Quickstart Guide

Using jupyter notebooks on Blue Waters. Roland Haas (NCSA / University of Illinois)

Conda Documentation. Release latest

David J. Pine. Introduction to Python for Science & Engineering

pandas: Rich Data Analysis Tools for Quant Finance

Practical Statistics for Particle Physics Analyses: Introduction to Computing Examples

Python With Data Science

Python, SageMath/Cloud, R and Open-Source

Introduction to Python Part 1. Brian Gregor Research Computing Services Information Services & Technology

Episode 1 Using the Interpreter

Python Programming. Hans-Petter Halvorsen.

Data Science with Python Course Catalog

Free Software Alternatives to Commercial Math Software

Python for Science and Engineering

Certified Data Science with Python Professional VS-1442

Chris Calloway for Triangle Python Users Group at Caktus Group December 14, 2017

Guillimin HPC Users Meeting December 14, 2017

Quick Reference Card Business Objects Toolbar Design Mode

Introduction to Python for Econometrics, Statistics and Data Analysis

Introduction to Python: Data types. HORT Lecture 8 Instructor: Kranthi Varala

Ch.1 Introduction. Why Machine Learning (ML)?

APPENDIX THE TOOLBAR. File Functions

Programming Concepts: IDEs, Debug. Paulo Penteado. (

Computational Programming with Python

Python for Finance. Introduction and Basics of Python. Andras Niedermayer

CIS192 Python Programming

Introduction to Data Science. Introduction to Data Science with Python. Python Basics: Basic Syntax, Data Structures. Python Concepts (Core)

Containers. Pablo F. Ordóñez. October 18, 2018

LECTURE 22. Numerical and Scientific Computing Part 2

ERTH3021 Exploration and Mining Geophysics

Lecture 3: Processing Language Data, Git/GitHub. LING 1340/2340: Data Science for Linguists Na-Rae Han

The Cantor Handbook. Alexander Rieder

Installation Manual and Quickstart Guide

Intel Distribution for Python* и Intel Performance Libraries

Matplotlib Python Plotting

SAS and Python: The Perfect Partners in Crime

page 1 OU Campus User Guide

Python: Swiss-Army Glue. Josh Karpel Graduate Student, Yavuz Group UW-Madison Physics Department

QUICK REFERENCE GUIDE

Introduction to Python for Econometrics, Statistics and Data Analysis. Kevin Sheppard University of Oxford

KNIME Python Integration Installation Guide. KNIME AG, Zurich, Switzerland Version 3.7 (last updated on )

Lava New Media s CMS. Documentation Page 1

Python for Earth Scientists

Quick Reference Guide OU Campus

Using the Text Editor Tutorial

Ch.1 Introduction. Why Machine Learning (ML)? manual designing of rules requires knowing how humans do it.

UI and Python Interface

Python for Finance. Introduction and Basics of Python. Andras Niedermayer

[%]%async_run. an IPython notebook* magic for asynchronous (code) cell execution. Valerio Maggio Researcher

Metview s new Python interface first results and roadmap for further developments

Data Acquisition and Processing

Nbconvert Refactor Final 1.0

The Python interpreter

Weekly Discussion Sections & Readings

SQL Server Machine Learning Marek Chmel & Vladimir Muzny

Last year I demonstrated two Stata/Python projects.

Introduction to the MODx Manager

Research Computing with Python, Lecture 1

Webinar Series. Introduction To Python For Data Analysis March 19, With Interactive Brokers

SQL Server 2017: Data Science with Python or R?

Python for Data Analysis

OpenDreamKit. Computational environments for research and education Min Ragan-Kelley. Simula Research Lab

Transcription:

Member of the Helmholtz Association Scientific computing platforms at PGI / JCNS PGI-1 / IAS-1 Scientific Visualization Workshop Josef Heinen

Outline Introduction Python distributions The SciPy stack Julia as an alternative to Python Jupyter notebook Development environments Best practices for using Python and Julia An Overview of software developed by the Scientific IT Systems group 2

Introduction Why should I use Python? general purpose programming language REPL (Read Eval Print Loop) suited for interactive work or quick prototyping dynamically typed powerful data structures, e.g. dictionaries simple and elegant Object-Oriented Programming scheme huge standard library and thousands of add-on packages user community support 3

Python distributions Which version should I use and install? UNIX and OS X systems include a system installation of Python (/usr) + locally installed Python 2.7.11 (/usr/local) maintained by Scientific IT Systems group for both Linux and OS X + Anaconda 2.4.1 (Continuum Analytics) with Python 2.7.11 / 3.5.1 support (/usr/local/anaconda2) completely free Python distribution, installed on all Linux and OS X machines create virtual environments (virtualenv, pyvenv) 4

Python distributions Please use the locally installed Python or Anaconda distributions: % python-select Please use one of the following environments: local - locally installed Python 2.7 anaconda root - Anaconda Python 2.7 py3k - Anaconda Python 3.5 pypy - Python 2.7.10 interpreter and just-in-time compiler % python-select local Python 2.7.11 % python-select anaconda Python 2.7.11 :: Anaconda 2.4.1 (x86_64) % python-select py3k Python 3.5.1 :: Anaconda 2.4.1 (x86_64) 5

The SciPy stack Powerful modules for science, technology, engineering and mathematics (STEM) NumPy SciPy SymPy 6

The SciPy stack more components: Mayavi2 Anaconda local 7

Batteries included NumPy package for numerical computation SciPy collection of numerical algorithms and specific toolboxes Matplotlib popular plotting package GR framework combined 2D/3D visualization framework Pandas provides high-performance, easy to use data structures SymPy symbolic mathematics and computer algebra IPython rich interactive interface (including IPython notebook) Mayavi2 3D visualization framework, based on VTK h5py, PyTables managing hierarchical datasets (HDF5) 8

Julia as an alternative to Python very similar to Python familiar syntax better performance, achieved using just-in-time (JIT) compilation multiple dispatch, based on one or more dynamic (runtime) types builtin parallel programming and distributed arrays IPython notebook support (IJulia) integrated package ecosystem Python language interop: PyCall.jl 9

Jupyter notebook is a web application for creating and sharing documents containing code, e.g. Python or Julia scientific equations visualizations, images or videos explanatory text (markdown syntax) can be used with local interpreter kernels or on remote notebook servers (github, nbviewer) 10

Jupyter notebook Quick reference jupyter notebook generate-config jupyter kernelspec list Probably add kernel specifictions (kernel.json): { } "display_name": "Julia 0.4.3, "argv": [ /usr/local/applications/julia-0.4.3.app/contents/resources/julia/bin/julia, "-i", "-F", "/usr/local/lib/julia/v0.4/ijulia/src/kernel.jl", "{connection_file}" ], "language": "julia" 11

% jupyter notebook specgram.ipynb 12

Jupyter notebook File Edit View Insert Cell Kernel New Notebook Open Make a Copy Rename Save and Checkpoint Revert to Checkpoint Print Preview Download as Trusted Notebook Close and Halt Cut Cells Copy Cells Paste Cells Above Paste Cells Below Delete Cells Undo Delete Cells Split Cell Merge Cell Above Merge Cell Below Move Cell Up Move Cell Down Edit Notebook Metadata Find and Replace Toggle Header Toggle Toolbar Cell Toolbar Insert Cell Above Insert Cell Below Download Formats IPython Notebook (.ipynb) Python (.py) HTML (.html) Markdown (.md) rest (.rst) PDF via LaTeX (.pdf) Run Cells Run Cells and Select Below Run Cells and Insert Below Run All Run All Above Run All Below Cell Type Current Outputs All Output Interrupt Restart Restart & Clear Output Restart & Run All Reconnect Change kernel 13

14

15

Markdown syntax *italics* and _italics_ **bold** and bold inline equation: $A = \pi*r^{2}$ image:![](path/to/image.png) superscript^2^ horizontal rule (or slide break): ~~strikethrough~~ *** [link](pgi-jcns.fz-juelich.de) > block quote # Header 1 * unordered list 1. ordered list ## Header 2 * item 2 2. item 2 ### Header 3 + sub-item 1 + sub-item 1 #### Header 4 + sub-item 2 + sub-item 2 ##### Header 5 ###### Header 6 Table Header Second Header ------------- ------------- endash: Table Cell Cell 2 emdash: Cell 3 Cell 4 ellipsis:... 16

Jupyter notebook Demos 17

Development tools You can use your favorite editor and start Python in a shell. But the impatient user should choose a more convenient environment: PyCharm 18

% ipython 19

% jupyter qtconsole 20

% spyder 21

PyCharm.app 22

Best practices for using Python and Julia small examples can be very helpful for beginners and there are many let the system find your executable by looking through the PATH variable: #!/path/to/name #!/usr/bin/env NAME only import methods you really need: from module import * don t rewrite stuff in the standard library again use packages that support Python 3 and Julia 0.4+ respectively 23

An Overview of software developed by the Scientific IT Systems group GR framework a universal framework for crossplatform visualization applications for creating publication quality 2D graphs and/or complex 3D scenes (GR3) GR3 sample applications PyMolDyn a molecule viewer based on GR3 capable of computing molecular cavities 24

20 GR demos 10 0-10 - 20-6 - 3 0 3 6 25

GR3 sample applications 26

PyMolDyn demo 27

Future workshop topics GR framework tutorial introduction convenience MATLAB like layers for Python (gr.pygr) and Julia (GR.jl, Plots.jl) using GR3 (Florian Rhiem) Julia tutorial: Julia for Python programmers 28

Questions? 29