SlideShare a Scribd company logo
Your Own Interactive
Computing Platform
2017/10/16 at TKU
Yung-Yu Chen
https://www.linkedin.com/in/yungyuc/
Computing for Everything
❖ Solve problems that can only be solved by computers.
❖ Save resources, shorten cycles, better this world.
❖ Let machines repeat it.
DeepMind AI Reduces Google Data Centre Cooling Bill by 40%
❖ https://deepmind.com/blog/deepmind-ai-reduces-
google-data-centre-cooling-bill-40/
Black Hole Simulation
https://go.nasa.gov/2xhd5xD
Supersonic Jet in Cross Flow
density contours
Optical Proximity Correction
Optical proximity correction for semiconductor manufacturing

https://commons.wikimedia.org/wiki/File:Optical_proximity_correction_structures.svg
Your interactive computing
Python as Your Computing Platform
❖ Interactive analysis and visualization.
❖ Data preparation and processing.
❖ Workflow automation.
❖ Distributed processing and parallel computing.
Interactive
❖ http://jupyter.org: run Python everywhere and code it
through browser.
❖ https://notebooks.azure.com: Azure sets it up for you
already
❖ https://matplotlib.org: de facto 2D plotting library
❖ https://www.vtk.org: versatile 3D visualization toolbox
❖ https://www.paraview.org: if you only want a
frontend
Data Manipulation
❖ http://pandas.pydata.org: de facto tool for data
analytics
❖ Comma-Separated Value: “csv” standard module.
❖ http://www.pytables.org: HDF5 hierarchical data
access.
❖ http://unidata.github.io/netcdf4-python/: netCDF, yet
another data storage based on HDF5.
Workflow Automation
❖ Offload routine to computers.
❖ https://docs.python.org/3/library/argparse.html:
standard command-line argument processing
❖ https://github.com/saltstack/salt: cloud-oriented
automation for management and configuration
❖ AWS, GCE, Azure all offer SDK for Python.
❖ Lead to system admin and/or devop.
Concurrency
❖ https://docs.python.org/3/library/asyncio.html
❖ support native asynchronous constructs
❖ https://docs.python.org/3/library/multiprocessing.html
❖ parallel computing and distributed processing using multiple
processes
❖ http://zeromq.org/bindings:python
❖ socket communication
❖ http://pythonhosted.org/mpi4py/
❖ use MPI in Python
Interact
How to Learn
❖ Download Anaconda and set it up: https://
www.anaconda.com/download
❖ Share your notebooks at Anaconda Cloud: https://
anaconda.org
❖ Free for public projects
WWI. source: https://www.youtube.com/watch?v=K0Wp7Y3Tbiw
HPC (high-performance computing) is hard.

Physics is harder.

Don’t rely on the Schlieffen Plan.
Optimization
❖ Memory access is expensive.
❖ Branching may be expensive too.
❖ Think like a machine: see through high-level source
code all the way to assembly.
❖ If you don’t write your own compiler, learn C++.
“There are only two hard things in Computer Science:
cache invalidation and naming things.”
Phil Karlton
HPC Architecture
❖ Scientific computing takes tremendous computing
power. We are interested in big problems.
❖ Some may be divided to smaller, self-contained sub-
problems, e.g., data analytics.
❖ Some are unavoidably big. A reasonably big problem
may use thousands of CPU cores for days.
❖ Accelerators like GPGPU sometimes speed up, but at a
cost of complicated code.
Python for Building Platform
❖ It's impossible to get it right the first time.
❖ Architecture design takes many iterations.
❖ Python allows quick prototyping.
❖ There is almost always a package for you.
❖ Python is either the best or the second best language for
anything.
NumPy
❖ N-dimensional array (ndarray).
❖ ndarray is typed and offers very fast speed. Oftentimes
faster than naive C code.
❖ Efficient data storage and flexible access to memory.
❖ Linear algebra (MKL is supported), FFT, etc.
❖ SciPy: application-specific toolbox.
Python Is Designed for C/C++
❖ Everything may be replaced by C/C++.
❖ Python is a C library for a dynamically-typed runtime.
❖ Python is slow, but using Python makes the whole HPC system faster.
❖ Performance hotspots.
❖ High-level abstraction in low-level code.
❖ Plain C: Python C API or Cython.
❖ C++: pybind11 (C++11) or boost.python (pre-C++11).
❖ Fortran: f2py (part of numpy).
Two Types of Platform
❖ Top-down: lay out everything in Python and replace hotspots
using C/C++
❖ Pro: Fast development. Reach results early.
❖ Con: Python dynamicity weakens robustness.
❖ Bottom-up: lay out core parts in C++ and glue in Python
❖ Pro: Highly robust (if coded right.)
❖ Con: Hard to get it right and take long time to code.
❖ Equally high-performance. Python scripts work as input files.
Beyond the Concepts: Real Work
❖ What problems do you want to solve?
❖ Software skills:
❖ Coding and HPC: Python, C, C++.
❖ Testing.
❖ Version control.
❖ Operation and automation, including building system.
❖ Debugging.
❖ Documenting.

More Related Content

What's hot (13)

PDF
Infrastructure-as-Code with Pulumi - Better than all the others (like Ansible)?
Jonas Hecht
 
PDF
BASTA 2020 VS Code Data Visualisation
Max Kleiner
 
PDF
"Computer, end program": Virtualization and the Cloud
Sameer Verma
 
PPTX
Hiphop - PHP
Ratheesh kumar.R
 
PDF
Post-K: Building the Arm HPC Ecosystem
Linaro
 
PDF
Infrastructure as "Code" with Pulumi
Venura Athukorala
 
PDF
How to Measure Latency
ScyllaDB
 
PDF
Ceph Day London 2014 - Ceph at IBM
Ceph Community
 
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
PDF
Programming Languages & Tools for Higher Performance & Productivity
Linaro
 
PDF
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
inovex GmbH
 
PPTX
Map and Reduce
Christopher Schleiden
 
PDF
AddisDev Meetup ii: Golang and Flow-based Programming
Samuel Lampa
 
Infrastructure-as-Code with Pulumi - Better than all the others (like Ansible)?
Jonas Hecht
 
BASTA 2020 VS Code Data Visualisation
Max Kleiner
 
"Computer, end program": Virtualization and the Cloud
Sameer Verma
 
Hiphop - PHP
Ratheesh kumar.R
 
Post-K: Building the Arm HPC Ecosystem
Linaro
 
Infrastructure as "Code" with Pulumi
Venura Athukorala
 
How to Measure Latency
ScyllaDB
 
Ceph Day London 2014 - Ceph at IBM
Ceph Community
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
Programming Languages & Tools for Higher Performance & Productivity
Linaro
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
inovex GmbH
 
Map and Reduce
Christopher Schleiden
 
AddisDev Meetup ii: Golang and Flow-based Programming
Samuel Lampa
 

Similar to Your interactive computing (20)

PDF
Engineer Engineering Software
Yung-Yu Chen
 
PDF
Harmonic Stack for Speed
Yung-Yu Chen
 
PDF
Exploring the Programming Models for the LUMI Supercomputer
George Markomanolis
 
PDF
Craftsmanship in Computational Work
Yung-Yu Chen
 
PPTX
carrow - Go bindings to Apache Arrow via C++-API
Yoni Davidson
 
PDF
Introduction to Google Colaboratory.pdf
Yomna Mahmoud Ibrahim Hassan
 
PDF
Introduction to HPC Programming Models - EUDAT Summer School (Stefano Markidi...
EUDAT
 
ODP
The Andc Cluster
Sudhang Shankar
 
PDF
Meetup 2020 - Back to the Basics part 101 : IaC
DamienCarpy
 
PDF
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
Altinity Ltd
 
PPTX
Scientific Computing @ Fred Hutch
Dirk Petersen
 
PDF
Scaling systems for research computing
The BioTeam Inc.
 
PDF
Concurrent Programming OpenMP @ Distributed System Discussion
CherryBerry2
 
PDF
01 high bandwidth acquisitioncomputing compressionall in a box
Yutaka Kawai
 
PDF
Practical virtual network functions with Snabb (SDN Barcelona VI)
Igalia
 
PDF
Data Policies for the Kafka-API with WebAssembly | Alexander Gallego, Vectorized
HostedbyConfluent
 
PDF
Ali alshehri c++_comparison between c++&python
AliAAAlshehri
 
PPTX
Open stack summit-2015-dp
Dirk Petersen
 
PPTX
Introduction to Java Part-2
RatnaJava
 
PDF
PyData Boston 2013
Travis Oliphant
 
Engineer Engineering Software
Yung-Yu Chen
 
Harmonic Stack for Speed
Yung-Yu Chen
 
Exploring the Programming Models for the LUMI Supercomputer
George Markomanolis
 
Craftsmanship in Computational Work
Yung-Yu Chen
 
carrow - Go bindings to Apache Arrow via C++-API
Yoni Davidson
 
Introduction to Google Colaboratory.pdf
Yomna Mahmoud Ibrahim Hassan
 
Introduction to HPC Programming Models - EUDAT Summer School (Stefano Markidi...
EUDAT
 
The Andc Cluster
Sudhang Shankar
 
Meetup 2020 - Back to the Basics part 101 : IaC
DamienCarpy
 
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
Altinity Ltd
 
Scientific Computing @ Fred Hutch
Dirk Petersen
 
Scaling systems for research computing
The BioTeam Inc.
 
Concurrent Programming OpenMP @ Distributed System Discussion
CherryBerry2
 
01 high bandwidth acquisitioncomputing compressionall in a box
Yutaka Kawai
 
Practical virtual network functions with Snabb (SDN Barcelona VI)
Igalia
 
Data Policies for the Kafka-API with WebAssembly | Alexander Gallego, Vectorized
HostedbyConfluent
 
Ali alshehri c++_comparison between c++&python
AliAAAlshehri
 
Open stack summit-2015-dp
Dirk Petersen
 
Introduction to Java Part-2
RatnaJava
 
PyData Boston 2013
Travis Oliphant
 
Ad

More from Yung-Yu Chen (7)

PDF
Write Python for Speed
Yung-Yu Chen
 
PDF
SimpleArray between Python and C++
Yung-Yu Chen
 
PDF
Write code and find a job
Yung-Yu Chen
 
PDF
Notes about moving from python to c++ py contw 2020
Yung-Yu Chen
 
PDF
On the necessity and inapplicability of python
Yung-Yu Chen
 
PDF
Take advantage of C++ from Python
Yung-Yu Chen
 
PDF
Start Wrap Episode 11: A New Rope
Yung-Yu Chen
 
Write Python for Speed
Yung-Yu Chen
 
SimpleArray between Python and C++
Yung-Yu Chen
 
Write code and find a job
Yung-Yu Chen
 
Notes about moving from python to c++ py contw 2020
Yung-Yu Chen
 
On the necessity and inapplicability of python
Yung-Yu Chen
 
Take advantage of C++ from Python
Yung-Yu Chen
 
Start Wrap Episode 11: A New Rope
Yung-Yu Chen
 
Ad

Recently uploaded (20)

PDF
2025-06-10 TWDB Agency Updates & Legislative Outcomes
tagdpa
 
PPTX
Microbiome_Engineering_Poster_Fixed.pptx
SupriyaPolisetty1
 
PPTX
LESSON 2 PSYCHOSOCIAL DEVELOPMENT.pptx L
JeanCarolColico1
 
PDF
Unit-5 ppt.pdf unit 5 organic chemistry 3
visionshukla007
 
PPTX
Akshay tunneling .pptx_20250331_165945_0000.pptx
akshaythaker18
 
PDF
Treatment and safety of drinking water .
psuvethapalani
 
PDF
soil and environmental microbiology.pdf
Divyaprabha67
 
PPTX
CNS.pptx Central nervous system meninges ventricles of brain it's structure a...
Ashwini I Chuncha
 
PDF
Unit-3 ppt.pdf organic chemistry - 3 unit 3
visionshukla007
 
PDF
Global Congress on Forensic Science and Research
infoforensicscience2
 
PPTX
Q1 - W1 - D2 - Models of matter for science.pptx
RyanCudal3
 
PPTX
Q1_Science 8_Week3-Day 1.pptx science lesson
AizaRazonado
 
PDF
FYS 100 final presentation on Afro cubans
RowanSales
 
PPTX
abdominal compartment syndrome presentation and treatment.pptx
LakshmiMounicaGrandh
 
PPTX
Bacillus thuringiensis.crops & golden rice
priyadharshini87125
 
PDF
Adding Geochemistry To Understand Recharge Areas - Kinney County, Texas - Jim...
Texas Alliance of Groundwater Districts
 
PDF
Preserving brand authenticity amid AI-driven misinformation: Sustaining consu...
Selcen Ozturkcan
 
PPTX
Diagnostic Features of Common Oral Ulcerative Lesions.pptx
Dr Palak borade
 
PPTX
Immunopharmaceuticals and microbial Application
xxkaira1
 
PDF
Plant growth promoting bacterial non symbiotic
psuvethapalani
 
2025-06-10 TWDB Agency Updates & Legislative Outcomes
tagdpa
 
Microbiome_Engineering_Poster_Fixed.pptx
SupriyaPolisetty1
 
LESSON 2 PSYCHOSOCIAL DEVELOPMENT.pptx L
JeanCarolColico1
 
Unit-5 ppt.pdf unit 5 organic chemistry 3
visionshukla007
 
Akshay tunneling .pptx_20250331_165945_0000.pptx
akshaythaker18
 
Treatment and safety of drinking water .
psuvethapalani
 
soil and environmental microbiology.pdf
Divyaprabha67
 
CNS.pptx Central nervous system meninges ventricles of brain it's structure a...
Ashwini I Chuncha
 
Unit-3 ppt.pdf organic chemistry - 3 unit 3
visionshukla007
 
Global Congress on Forensic Science and Research
infoforensicscience2
 
Q1 - W1 - D2 - Models of matter for science.pptx
RyanCudal3
 
Q1_Science 8_Week3-Day 1.pptx science lesson
AizaRazonado
 
FYS 100 final presentation on Afro cubans
RowanSales
 
abdominal compartment syndrome presentation and treatment.pptx
LakshmiMounicaGrandh
 
Bacillus thuringiensis.crops & golden rice
priyadharshini87125
 
Adding Geochemistry To Understand Recharge Areas - Kinney County, Texas - Jim...
Texas Alliance of Groundwater Districts
 
Preserving brand authenticity amid AI-driven misinformation: Sustaining consu...
Selcen Ozturkcan
 
Diagnostic Features of Common Oral Ulcerative Lesions.pptx
Dr Palak borade
 
Immunopharmaceuticals and microbial Application
xxkaira1
 
Plant growth promoting bacterial non symbiotic
psuvethapalani
 

Your interactive computing

  • 1. Your Own Interactive Computing Platform 2017/10/16 at TKU Yung-Yu Chen https://www.linkedin.com/in/yungyuc/
  • 2. Computing for Everything ❖ Solve problems that can only be solved by computers. ❖ Save resources, shorten cycles, better this world. ❖ Let machines repeat it.
  • 3. DeepMind AI Reduces Google Data Centre Cooling Bill by 40% ❖ https://deepmind.com/blog/deepmind-ai-reduces- google-data-centre-cooling-bill-40/
  • 5. Supersonic Jet in Cross Flow density contours
  • 6. Optical Proximity Correction Optical proximity correction for semiconductor manufacturing
 https://commons.wikimedia.org/wiki/File:Optical_proximity_correction_structures.svg
  • 8. Python as Your Computing Platform ❖ Interactive analysis and visualization. ❖ Data preparation and processing. ❖ Workflow automation. ❖ Distributed processing and parallel computing.
  • 9. Interactive ❖ http://jupyter.org: run Python everywhere and code it through browser. ❖ https://notebooks.azure.com: Azure sets it up for you already ❖ https://matplotlib.org: de facto 2D plotting library ❖ https://www.vtk.org: versatile 3D visualization toolbox ❖ https://www.paraview.org: if you only want a frontend
  • 10. Data Manipulation ❖ http://pandas.pydata.org: de facto tool for data analytics ❖ Comma-Separated Value: “csv” standard module. ❖ http://www.pytables.org: HDF5 hierarchical data access. ❖ http://unidata.github.io/netcdf4-python/: netCDF, yet another data storage based on HDF5.
  • 11. Workflow Automation ❖ Offload routine to computers. ❖ https://docs.python.org/3/library/argparse.html: standard command-line argument processing ❖ https://github.com/saltstack/salt: cloud-oriented automation for management and configuration ❖ AWS, GCE, Azure all offer SDK for Python. ❖ Lead to system admin and/or devop.
  • 12. Concurrency ❖ https://docs.python.org/3/library/asyncio.html ❖ support native asynchronous constructs ❖ https://docs.python.org/3/library/multiprocessing.html ❖ parallel computing and distributed processing using multiple processes ❖ http://zeromq.org/bindings:python ❖ socket communication ❖ http://pythonhosted.org/mpi4py/ ❖ use MPI in Python
  • 14. How to Learn ❖ Download Anaconda and set it up: https:// www.anaconda.com/download ❖ Share your notebooks at Anaconda Cloud: https:// anaconda.org ❖ Free for public projects
  • 15. WWI. source: https://www.youtube.com/watch?v=K0Wp7Y3Tbiw HPC (high-performance computing) is hard.
 Physics is harder.
 Don’t rely on the Schlieffen Plan.
  • 16. Optimization ❖ Memory access is expensive. ❖ Branching may be expensive too. ❖ Think like a machine: see through high-level source code all the way to assembly. ❖ If you don’t write your own compiler, learn C++. “There are only two hard things in Computer Science: cache invalidation and naming things.” Phil Karlton
  • 17. HPC Architecture ❖ Scientific computing takes tremendous computing power. We are interested in big problems. ❖ Some may be divided to smaller, self-contained sub- problems, e.g., data analytics. ❖ Some are unavoidably big. A reasonably big problem may use thousands of CPU cores for days. ❖ Accelerators like GPGPU sometimes speed up, but at a cost of complicated code.
  • 18. Python for Building Platform ❖ It's impossible to get it right the first time. ❖ Architecture design takes many iterations. ❖ Python allows quick prototyping. ❖ There is almost always a package for you. ❖ Python is either the best or the second best language for anything.
  • 19. NumPy ❖ N-dimensional array (ndarray). ❖ ndarray is typed and offers very fast speed. Oftentimes faster than naive C code. ❖ Efficient data storage and flexible access to memory. ❖ Linear algebra (MKL is supported), FFT, etc. ❖ SciPy: application-specific toolbox.
  • 20. Python Is Designed for C/C++ ❖ Everything may be replaced by C/C++. ❖ Python is a C library for a dynamically-typed runtime. ❖ Python is slow, but using Python makes the whole HPC system faster. ❖ Performance hotspots. ❖ High-level abstraction in low-level code. ❖ Plain C: Python C API or Cython. ❖ C++: pybind11 (C++11) or boost.python (pre-C++11). ❖ Fortran: f2py (part of numpy).
  • 21. Two Types of Platform ❖ Top-down: lay out everything in Python and replace hotspots using C/C++ ❖ Pro: Fast development. Reach results early. ❖ Con: Python dynamicity weakens robustness. ❖ Bottom-up: lay out core parts in C++ and glue in Python ❖ Pro: Highly robust (if coded right.) ❖ Con: Hard to get it right and take long time to code. ❖ Equally high-performance. Python scripts work as input files.
  • 22. Beyond the Concepts: Real Work ❖ What problems do you want to solve? ❖ Software skills: ❖ Coding and HPC: Python, C, C++. ❖ Testing. ❖ Version control. ❖ Operation and automation, including building system. ❖ Debugging. ❖ Documenting.